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

Mikael Pettersson <mikpe at it dot uu.se> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikpe at it dot uu.se

--- Comment #8 from Mikael Pettersson <mikpe at it dot uu.se> 2011-11-05 
16:03:17 UTC ---
The bug still occurs with gcc-4.7-20111029 for arm-linux-gnueabi.

The problem is that dwarf2cfi.c:expand_builtin_init_dwarf_reg_sizes loops from
0 to FIRST_PSEUDO_REGISTER-1 assuming each value maps to a DWARF register. 
However, arm_dbx_register_number is a partial function which does
gcc_unreachable for several points in this range.  A quick check showed that
CC_REGNUM, FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, the range of Cirrus FP
regnums, and (in my config) the high VFP regnums all caused gcc_unreachable.

I think the high VFP regnums issue is a fixable bug, the Cirrus regnums could
be mapped to the unspecified vendor range, and CC_REGNUM could be mapped to
CPSR (called SPSR in aadwarf?).  I don't know what FRAME_POINTER or ARG_POINTER
should map to though, since they're presumably eliminated virtual registers.

Reply via email to