summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/powerpc32/fpu/s_ceil.S')
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_ceil.S27
1 files changed, 5 insertions, 22 deletions
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S b/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
index d211314bbf..22cf76e54c 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
@@ -26,20 +26,12 @@
TWO52.0:
.long 0x43300000
.long 0
- .type NEGZERO.0,@object
- .size NEGZERO.0,8
-NEGZERO.0:
- .long 0x80000000
- .long 0
.section .rodata.cst8,"aM",@progbits,8
.align 3
.LC0: /* 2**52 */
.long 0x43300000
.long 0
-.LC1: /* -0.0 */
- .long 0x80000000
- .long 0
.section ".text"
ENTRY (__ceil)
@@ -64,27 +56,18 @@ ENTRY (__ceil)
ble- cr6,.L4
fadd fp1,fp1,fp13 /* x+= TWO52; */
fsub fp1,fp1,fp13 /* x-= TWO52; */
-.L9:
+ fabs fp1,fp1 /* if (x == 0.0) */
+ /* x = 0.0; */
mtfsf 0x01,fp11 /* restore previous rounding mode. */
blr
.L4:
bge- cr6,.L9 /* if (x < 0.0) */
fsub fp1,fp1,fp13 /* x-= TWO52; */
fadd fp1,fp1,fp13 /* x+= TWO52; */
- fcmpu cr5,fp1,fp12 /* if (x > 0.0) */
+ fnabs fp1,fp1 /* if (x == 0.0) */
+ /* x = -0.0; */
+.L9:
mtfsf 0x01,fp11 /* restore previous rounding mode. */
- bnelr+ cr5
-#ifdef SHARED
- mflr r11
- bl _GLOBAL_OFFSET_TABLE_@local-4
- mflr r10
- lwz r9,.LC1@got(10)
- mtlr r11
- lfd fp1,0(r9)
-#else
- lis r9,.LC1@ha
- lfd fp1,.LC1@l(r9)
-#endif
blr
END (__ceil)