http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387
--- Comment #2 from Nistor, Mihail-Marian <m_nistor at yahoo dot com> --- More details about how to reproduce the first problem. By using the gcc version - GNU C 4.8.1 20130531 (Wed Sep 4 08:04:01 CDT 2013) I have defined a local variable (vf1) that has a vector resister as storage class, the C definition is below: register vector float vf1 = {0.1f, 0.2f, 0.3f, 0.4f}; A piece of dump from .debug_info is below: <2><24f>: Abbrev Number: 7 (DW_TAG_variable) <250> DW_AT_name : vf1 <254> DW_AT_decl_file : 1 <255> DW_AT_decl_line : 13 <256> DW_AT_type : <0x2ee> <25a> DW_AT_location : 2 byte block: 90 64 (DW_OP_regx: 100 (r100)) // the correct expression should be: (DW_OP_regx: 1124 (r1124)) A piece of dump from .debug_frame is below: 000000d0 00000034 000000c0 FDE cie=000000c0 pc=0010018c..001002fc DW_CFA_advance_loc: 4 to 00100190 DW_CFA_def_cfa_offset: 192 DW_CFA_advance_loc: 84 to 001001e4 DW_CFA_offset_extended_sf: r65 at cfa+4 DW_CFA_offset: r31 at cfa-4 DW_CFA_offset_extended: r100 at cfa-160 // the correct expression should be: r1124 at cfa-160 As you can see, the compiler uses a wrong DWARF register index for vector register, in this case the compiler should generate 1124 (r1124) instead of 100 (r100), so the ppc gcc compiler is not compatible with the PPC ABI. Please let me know if you need more information to reproduce the second problem.