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

           Summary: [regression] unable to find a register to spill in
                    class ‘GENERAL_REGS’
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: kr...@kde.org


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

compile the attached testcase with
g++ -msse4 -O1 no_register_error.cpp -c

to get the problem:
no_register_error.cpp: In function ‘int main()’:
no_register_error.cpp:77:1: error: unable to find a register to spill in class
‘GENERAL_REGS’
no_register_error.cpp:77:1: error: this is the insn:
(insn 63 62 64 4 (set (strict_low_part (subreg:HI (reg/v:V2DI 128 [ b ]) 0))
        (mem/s/j:HI (plus:DI (plus:DI (mult:DI (reg:DI 38 r9 [orig:159 indexes
] [159])
                        (const_int 2 [0x2]))
                    (reg/f:DI 20 frame))
                (const_int -64 [0xffffffffffffffc0])) [0 array S2 A16]))
no_register_error.cpp:45 82 {*movstricthi_1}
     (expr_list:REG_DEAD (reg:DI 38 r9 [orig:159 indexes ] [159])
        (nil)))
no_register_error.cpp:77: confused by earlier errors, bailing out

The same code worked fine with previous version. I also tested the latest GCC
4.6.1 snapshot and the problem remains.

Reply via email to