------- Comment #3 from ami_stuff at o2 dot pl 2009-09-02 15:32 -------
GCC 4.5.0 (20090827) - additional move.l compared to GCC 4.4.2 (20090825):
#NO_APP
.text
.even
.globl _MUL64
_MUL64:
movem.l #16128,-(sp)
move.l 28(sp),a0
move.l 32(sp),a1
#APP
;# 45 "xxxx2.c" 1
| Inlined umul_ppmm
move.l a0,d0
move.l a1,d1
move.l d0,d2
swap d0
move.l d1,d3
swap d1
move.w d2,d4
mulu d3,d4
mulu d1,d2
mulu d0,d3
mulu d0,d1
move.l d4,d0
eor.w d0,d0
swap d0
add.l d0,d2
add.l d3,d2
jcc 1f
add.l #65536,d1
1: swap d2
moveq #0,d0
move.w d2,d0
move.w d4,d2
move.l d2,d6
add.l d1,d0
move.l d0,d5
#NO_APP
move.l d5,d2
tst.l a0
jge L2
sub.l a1,d2
L2:
tst.l a1
jge L3
sub.l a0,d2
L3:
move.l d2,d0
clr.l d1
move.l d0,d2
move.l d1,d3
or.l d6,d3
move.l d2,d6
move.l d3,d7
move.l d2,d0
move.l d7,d1
movem.l (sp)+,#252
rts
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40977