rs6000: Debug regnums for TM registers
Since GCC 8, we have output incorrect numbers for the transactional memory registers. Also, we didn't output the correct DWARF register numbers for those. The number for sprN is 100+N. This fixes both these issues. * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the correct numbers for TFHAR, TFIAR, TEXASR. From-SVN: r270819
This commit is contained in:
parent
b74c94ff41
commit
f58bd25275
2 changed files with 24 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
|
|
||||||
|
* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
|
||||||
|
correct numbers for TFHAR, TFIAR, TEXASR.
|
||||||
|
|
||||||
2019-05-02 Richard Biener <rguenther@suse.de>
|
2019-05-02 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/89653
|
PR tree-optimization/89653
|
||||||
|
|
|
@ -36269,10 +36269,20 @@ rs6000_init_dwarf_reg_sizes_extra (tree address)
|
||||||
unsigned int
|
unsigned int
|
||||||
rs6000_dbx_register_number (unsigned int regno, unsigned int format)
|
rs6000_dbx_register_number (unsigned int regno, unsigned int format)
|
||||||
{
|
{
|
||||||
/* Except for the above, we use the internal number for non-DWARF
|
/* We use the GCC 7 (and before) internal number for non-DWARF debug
|
||||||
debug information, and also for .eh_frame. */
|
information, and also for .eh_frame. */
|
||||||
if ((format == 0 && write_symbols != DWARF2_DEBUG) || format == 2)
|
if ((format == 0 && write_symbols != DWARF2_DEBUG) || format == 2)
|
||||||
return regno;
|
{
|
||||||
|
/* Translate the regnos to their numbers in GCC 7 (and before). */
|
||||||
|
if (regno == TFHAR_REGNO)
|
||||||
|
regno = 114;
|
||||||
|
else if (regno == TFIAR_REGNO)
|
||||||
|
regno = 115;
|
||||||
|
else if (regno == TEXASR_REGNO)
|
||||||
|
regno = 116;
|
||||||
|
|
||||||
|
return regno;
|
||||||
|
}
|
||||||
|
|
||||||
/* On some platforms, we use the standard DWARF register
|
/* On some platforms, we use the standard DWARF register
|
||||||
numbering for .debug_info and .debug_frame. */
|
numbering for .debug_info and .debug_frame. */
|
||||||
|
@ -36299,6 +36309,12 @@ rs6000_dbx_register_number (unsigned int regno, unsigned int format)
|
||||||
return 356;
|
return 356;
|
||||||
if (regno == VSCR_REGNO)
|
if (regno == VSCR_REGNO)
|
||||||
return 67;
|
return 67;
|
||||||
|
if (regno == TFHAR_REGNO)
|
||||||
|
return 228;
|
||||||
|
if (regno == TFIAR_REGNO)
|
||||||
|
return 229;
|
||||||
|
if (regno == TEXASR_REGNO)
|
||||||
|
return 230;
|
||||||
#endif
|
#endif
|
||||||
return regno;
|
return regno;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue