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: unassig...@gcc.gnu.org
        ReportedBy: kreb...@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))

Reply via email to