This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Add CFI to x86 ceil / floor / trunc (bug 16681)
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 16 Jun 2014 22:17:48 +0000
- Subject: Add CFI to x86 ceil / floor / trunc (bug 16681)
- Authentication-results: sourceware.org; auth=none
This patch adds CFI to the sysdeps/i386/fpu/ implementations of ceil,
floor and trunc functions, for consistency with other x86 .S files in
glibc which have CFI for stack adjustments.
Tested x86.
2014-06-16 Joseph Myers <joseph@codesourcery.com>
[BZ #16681]
* sysdeps/i386/fpu/s_ceil.S (__ceil): Add CFI.
* sysdeps/i386/fpu/s_ceilf.S (__ceilf): Likewise.
* sysdeps/i386/fpu/s_ceill.S (__ceill): Likewise.
* sysdeps/i386/fpu/s_floor.S (__floor): Likewise.
* sysdeps/i386/fpu/s_floorf.S (__floorf): Likewise.
* sysdeps/i386/fpu/s_floorl.S (__floorl): Likewise.
* sysdeps/i386/fpu/s_trunc.S (__trunc): Likewise.
* sysdeps/i386/fpu/s_truncf.S (__truncf): Likewise.
* sysdeps/i386/fpu/s_truncl.S (__truncl): Likewise.
diff --git a/sysdeps/i386/fpu/s_ceil.S b/sysdeps/i386/fpu/s_ceil.S
index b015912..f32fa26 100644
--- a/sysdeps/i386/fpu/s_ceil.S
+++ b/sysdeps/i386/fpu/s_ceil.S
@@ -10,6 +10,7 @@ RCSID("$NetBSD: s_ceil.S,v 1.4 1995/05/08 23:52:13 jtc Exp $")
ENTRY(__ceil)
fldl 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -27,6 +28,7 @@ ENTRY(__ceil)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__ceil)
weak_alias (__ceil, ceil)
diff --git a/sysdeps/i386/fpu/s_ceilf.S b/sysdeps/i386/fpu/s_ceilf.S
index 352d40d..4fe703b 100644
--- a/sysdeps/i386/fpu/s_ceilf.S
+++ b/sysdeps/i386/fpu/s_ceilf.S
@@ -10,6 +10,7 @@ RCSID("$NetBSD: s_ceilf.S,v 1.3 1995/05/08 23:52:44 jtc Exp $")
ENTRY(__ceilf)
flds 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -27,6 +28,7 @@ ENTRY(__ceilf)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__ceilf)
weak_alias (__ceilf, ceilf)
diff --git a/sysdeps/i386/fpu/s_ceill.S b/sysdeps/i386/fpu/s_ceill.S
index 0128966..4b272c5 100644
--- a/sysdeps/i386/fpu/s_ceill.S
+++ b/sysdeps/i386/fpu/s_ceill.S
@@ -11,6 +11,7 @@ RCSID("$NetBSD: $")
ENTRY(__ceill)
fldt 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -28,6 +29,7 @@ ENTRY(__ceill)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__ceill)
weak_alias (__ceill, ceill)
diff --git a/sysdeps/i386/fpu/s_floor.S b/sysdeps/i386/fpu/s_floor.S
index 20a8660..2d6287d 100644
--- a/sysdeps/i386/fpu/s_floor.S
+++ b/sysdeps/i386/fpu/s_floor.S
@@ -10,6 +10,7 @@ RCSID("$NetBSD: s_floor.S,v 1.4 1995/05/09 00:01:59 jtc Exp $")
ENTRY(__floor)
fldl 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -27,6 +28,7 @@ ENTRY(__floor)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__floor)
weak_alias (__floor, floor)
diff --git a/sysdeps/i386/fpu/s_floorf.S b/sysdeps/i386/fpu/s_floorf.S
index eca93a2..e969fbe 100644
--- a/sysdeps/i386/fpu/s_floorf.S
+++ b/sysdeps/i386/fpu/s_floorf.S
@@ -10,6 +10,7 @@ RCSID("$NetBSD: s_floorf.S,v 1.3 1995/05/09 00:04:32 jtc Exp $")
ENTRY(__floorf)
flds 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -27,6 +28,7 @@ ENTRY(__floorf)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__floorf)
weak_alias (__floorf, floorf)
diff --git a/sysdeps/i386/fpu/s_floorl.S b/sysdeps/i386/fpu/s_floorl.S
index c2bf091..1206554 100644
--- a/sysdeps/i386/fpu/s_floorl.S
+++ b/sysdeps/i386/fpu/s_floorl.S
@@ -11,6 +11,7 @@ RCSID("$NetBSD: $")
ENTRY(__floorl)
fldt 4(%esp)
subl $8,%esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp) /* store fpu control word */
@@ -28,6 +29,7 @@ ENTRY(__floorl)
fldcw 4(%esp) /* restore original control word */
addl $8,%esp
+ cfi_adjust_cfa_offset (-8)
ret
END (__floorl)
weak_alias (__floorl, floorl)
diff --git a/sysdeps/i386/fpu/s_trunc.S b/sysdeps/i386/fpu/s_trunc.S
index 5a14864..a5f8fc7 100644
--- a/sysdeps/i386/fpu/s_trunc.S
+++ b/sysdeps/i386/fpu/s_trunc.S
@@ -22,6 +22,7 @@
ENTRY(__trunc)
fldl 4(%esp)
subl $8, %esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp)
movl $0xc00, %edx
orl 4(%esp), %edx
@@ -30,6 +31,7 @@ ENTRY(__trunc)
frndint
fldcw 4(%esp)
addl $8, %esp
+ cfi_adjust_cfa_offset (-8)
ret
END(__trunc)
weak_alias (__trunc, trunc)
diff --git a/sysdeps/i386/fpu/s_truncf.S b/sysdeps/i386/fpu/s_truncf.S
index d3b9385..746d52f 100644
--- a/sysdeps/i386/fpu/s_truncf.S
+++ b/sysdeps/i386/fpu/s_truncf.S
@@ -22,6 +22,7 @@
ENTRY(__truncf)
flds 4(%esp)
subl $8, %esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp)
movl $0xc00, %edx
orl 4(%esp), %edx
@@ -30,6 +31,7 @@ ENTRY(__truncf)
frndint
fldcw 4(%esp)
addl $8, %esp
+ cfi_adjust_cfa_offset (-8)
ret
END(__truncf)
weak_alias (__truncf, truncf)
diff --git a/sysdeps/i386/fpu/s_truncl.S b/sysdeps/i386/fpu/s_truncl.S
index 4bef0f4..d573855 100644
--- a/sysdeps/i386/fpu/s_truncl.S
+++ b/sysdeps/i386/fpu/s_truncl.S
@@ -22,6 +22,7 @@
ENTRY(__truncl)
fldt 4(%esp)
subl $8, %esp
+ cfi_adjust_cfa_offset (8)
fstcw 4(%esp)
movl $0xc00, %edx
orl 4(%esp), %edx
@@ -30,6 +31,7 @@ ENTRY(__truncl)
frndint
fldcw 4(%esp)
addl $8, %esp
+ cfi_adjust_cfa_offset (-8)
ret
END(__truncl)
weak_alias (__truncl, truncl)
--
Joseph S. Myers
joseph@codesourcery.com