------- Comment #8 from rask at gcc dot gnu dot org 2007-11-22 13:54 -------
Created an attachment (id=14607)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14607&action=view)
patch v2 for GC 4.2.2
Weird. I don't understand why GCC 4.2.2 is having problems with that. This
patch tries to fix fr30_move_double(), which has been broken ever since it was
added seven and a half years ago. The instruction sequence now looks like this:
ldi:32 a, r3 ; 13 movsi_internal/4 [length = 6]
ldi:8 #248, r1 ; 52 movsi_internal/1 [length = 2]
extsb r1 ; 53 extendqisi2 [length = 2]
addn fp, r1 ; 16 addsi_regs [length = 2]
mov r1, r2 ; 74 movsi_internal/5 [length = 2]
ld @r1, r1 ; 75 movsi_internal/7 [length = 2]
addn 4, r2 ; 76 addsi_small_int/1 [length = 2]
ld @r2, r2 ; 77 movsi_internal/7 [length = 2]
st r1, @r3 ; 78 movsi_internal/6 [length = 2]
mov r3, r0 ; 79 movsi_internal/5 [length = 2]
addn 4, r0 ; 80 addsi_small_int/1 [length = 2]
st r2, @r0 ; 81 movsi_internal/6 [length = 2]
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34174