[Bug target/27619] wrong code for mixed-mode division with -mpowerpc64 -O1
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue May 16 17:16:00 GMT 2006
------- Comment #3 from rguenth at gcc dot gnu dot org 2006-05-16 17:16 -------
-m64 asm:
.L.main:
mflr %r0
std %r0,16(%r1)
stdu %r1,-128(%r1)
ld %r9,.LC0@toc(%r2)
lwa %r0,0(%r9)
sradi %r9,%r0,53
rldicl %r11,%r0,0,53
addi %r9,%r9,1
addi %r11,%r11,2047
cmpldi %cr7,%r9,2
or %r11,%r11,%r0
rldicr %r11,%r11,0,52
bge %cr7,.L3
mr %r11,%r0
.L3:
std %r11,112(%r1)
lfd %f0,112(%r1)
fcfid %f0,%f0
frsp %f13,%f0
ld %r9,.LC1@toc(%r2)
lfs %f0,0(%r9)
fdivs %f13,%f13,%f0
lfs %f0,.LC3@toc(%r2)
fcmpu %cr7,%f13,%f0
beq %cr7,.L2
bl abort
nop
.L2:
li %r3,0
addi %r1,%r1,128
ld %r0,16(%r1)
mtlr %r0
blr
.long 0
.byte 0,0,0,1,128,0,0,0
.size main,.-.L.main
.globl i
.section ".data"
.align 2
.type i, @object
.size i, 4
i:
.long 274
.globl f
.align 2
.type f, @object
.size f, 4
f:
.long 1065353216
-mpowerpc64:
main:
stwu %r1,-16(%r1)
mflr %r0
stw %r0,20(%r1)
lis %r9,i@ha
lwa %r0,i@l(%r9)
sradi %r9,%r0,53
rldicl %r11,%r0,0,53
addi %r9,%r9,1
addi %r11,%r11,2047
cmpldi %cr7,%r9,2
or %r11,%r11,%r0
rldicr %r11,%r11,0,52
bge %cr7,.L3
mr %r11,%r0
.L3:
std %r11,8(%r1)
lfd %f0,8(%r1)
fcfid %f0,%f0
frsp %f13,%f0
lis %r9,f@ha
lfs %f0,f@l(%r9)
fdivs %f13,%f13,%f0
lis %r9,.LC1@ha
lfs %f0,.LC1@l(%r9)
fcmpu %cr7,%f13,%f0
beq %cr7,.L2
bl abort
.L2:
li %r3,0
lwz %r0,20(%r1)
mtlr %r0
addi %r1,%r1,16
blr
.size main,.-main
.globl i
.section .sdata,"aw",@progbits
.align 2
.type i, @object
.size i, 4
i:
.long 274
.globl f
.align 2
.type f, @object
.size f, 4
f:
.long 1065353216
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27619
More information about the Gcc-bugs
mailing list