[Bug rtl-optimization/18463] [4.0 Regression] Moving floating point through an integer register

steven at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Nov 13 19:35:00 GMT 2004


------- Additional Comments From steven at gcc dot gnu dot org  2004-11-13 19:34 -------
CSE is trying to reconstruct the addressing mode, but it has 
 
(plus:SI (ashift:SI (reg/v:SI 61 [ n ]) (const_int 2 [0x2])) 
         (reg/v/f:SI 59 [ a ])) 
 
According to hp, the canonical form would be with a mult. 
 
Breakpoint 9, ix86_decompose_address (addr=0x401d515c, out=0xbfffec48) 
    at ../../mainline/gcc/config/i386/i386.c:4567 
4567    { 
1: debug_rtx (addr) = (plus:SI (ashift:SI (reg/v:SI 61 [ n ]) 
        (const_int 2 [0x2])) 
    (reg/v/f:SI 59 [ a ])) 
void 
(gdb) bt 
#0  ix86_decompose_address (addr=0x401d5078, out=0xbfffec78) 
    at ../../mainline/gcc/config/i386/i386.c:4567 
#1  0x082ee548 in legitimate_address_p (mode=3221220472, addr=0x401d5078, 
strict=0) 
    at ../../mainline/gcc/config/i386/i386.c:5064 
#2  0x0828ec5e in memory_address_p (mode=3221220472, addr=0xbfffec78) 
    at ../../mainline/gcc/recog.c:1268 
#3  0x0828ed5f in general_operand (op=0x401d5084, mode=SFmode) at ../../
mainline/gcc/recog.c:979 
#4  0x0828f029 in nonimmediate_operand (op=0x401d5084, mode=3221220472) 
    at ../../mainline/gcc/recog.c:1143 
#5  0x08226803 in recog_16 (x0=0x401d50b4, insn=0x4016c230, pnum_clobbers=0x0) 
    at insn-recog.c:16332 
#6  0x0828e07c in recog_memoized_1 (insn=0x4016c230) at ../../mainline/gcc/
recog.c:123 
#7  0x08121594 in cse_insn (insn=0x4016c230, libcall_insn=0x0) at ../../
mainline/gcc/cse.c:4783 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18463



More information about the Gcc-bugs mailing list