Commit f58bd252 by Segher Boessenkool Committed by Segher Boessenkool

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
parent b74c94ff
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>
PR tree-optimization/89653
......
......@@ -36269,10 +36269,20 @@ rs6000_init_dwarf_reg_sizes_extra (tree address)
unsigned int
rs6000_dbx_register_number (unsigned int regno, unsigned int format)
{
/* Except for the above, we use the internal number for non-DWARF
debug information, and also for .eh_frame. */
/* We use the GCC 7 (and before) internal number for non-DWARF debug
information, and also for .eh_frame. */
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
numbering for .debug_info and .debug_frame. */
......@@ -36299,6 +36309,12 @@ rs6000_dbx_register_number (unsigned int regno, unsigned int format)
return 356;
if (regno == VSCR_REGNO)
return 67;
if (regno == TFHAR_REGNO)
return 228;
if (regno == TFIAR_REGNO)
return 229;
if (regno == TEXASR_REGNO)
return 230;
#endif
return regno;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment