From: Segher Boessenkool Date: Sun, 4 Aug 2019 19:23:59 +0000 (+0200) Subject: backport: rs6000.c (rs6000_dbx_register_number): Return the correct numbers for TFHAR... X-Git-Tag: releases/gcc-9.2.0~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=691a9e8841b8f25c13477bbee1a4f22a5603add3;p=thirdparty%2Fgcc.git backport: rs6000.c (rs6000_dbx_register_number): Return the correct numbers for TFHAR, TFIAR, TEXASR. Backport from trunk 2019-05-02 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the correct numbers for TFHAR, TFIAR, TEXASR. From-SVN: r274097 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a2d0d2552a91..1869bb971341 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-08-04 Segher Boessenkool + + Backport from trunk + 2019-05-02 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the + correct numbers for TFHAR, TFIAR, TEXASR. + 2019-08-03 Iain Sandoe Backport from mainline diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 0442b091781d..cb8d737976b2 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -36287,10 +36287,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. */ @@ -36317,6 +36327,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; }