[Bug middle-end/48353] New: Bootstrap fail due to invalid register pair being assigned to pseudo

krebbel at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Mar 30 07:18:00 GMT 2011


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

           Summary: Bootstrap fail due to invalid register pair being
                    assigned to pseudo
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: krebbel@gcc.gnu.org


Created attachment 23811
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23811
testcase

Compiling the attached testcase with -O2 produces an invalid divide
instruction:

dsgfr   %r7,%r1

The first parameter needs to an even numbered register.

from ira dump:

      Try Assign 103(a10), cost=226: reassign to 7
changing reg in insn 50
 Register 93 now in 3.

 Register 103 now in 7.

(insn 50 40 62 4 (set (reg:TI 7 %r7 [103])
        (ior:TI (ashift:TI (zero_extend:TI (mod:DI (reg:DI 8 %r8 [99])
                        (sign_extend:DI (reg/v:SI 1 %r1 [orig:49 copy_nregs ]
[49]))))
                (const_int 64 [0x40]))
            (zero_extend:TI (div:DI (reg:DI 8 %r8 [99])
                    (sign_extend:DI (reg/v:SI 1 %r1 [orig:49 copy_nregs ]
[49])))))) t.c:32 380 {divmodtisi3}
     (nil))



More information about the Gcc-bugs mailing list