[gcc/devel/c++-modules] Make STATIC_CHAIN_REGNUM a call used register.

Nathan Sidwell nathan@gcc.gnu.org
Tue Mar 10 13:03:41 GMT 2020


https://gcc.gnu.org/g:c7dbc54958321d296ca4e283f26f279f6a5342a7

commit c7dbc54958321d296ca4e283f26f279f6a5342a7
Author: Jeff Law <law@redhat.com>
Date:   Sat Feb 29 13:45:37 2020 -0700

    Make STATIC_CHAIN_REGNUM a call used register.
    
            * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
            * config/v850/v850.c (v850_asm_trampoline_template): Update
            accordingly.

Diff:
---
 gcc/ChangeLog          | 6 ++++++
 gcc/config/v850/v850.c | 2 +-
 gcc/config/v850/v850.h | 5 +++--
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7d95db8623f..2a69c680a9b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-28  Jeff Law  <law@redhat.com>
+
+	* config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
+	* config/v850/v850.c (v850_asm_trampoline_template): Update
+	accordingly.
+
 2020-02-28  Michael Meissner  <meissner@linux.ibm.com>
 
 	PR target/93937
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 074adf87687..4b0e28c1786 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -2961,7 +2961,7 @@ static void
 v850_asm_trampoline_template (FILE *f)
 {
   fprintf (f, "\tjarl .+4,r12\n");
-  fprintf (f, "\tld.w 12[r12],r20\n");
+  fprintf (f, "\tld.w 12[r12],r19\n");
   fprintf (f, "\tld.w 16[r12],r12\n");
   fprintf (f, "\tjmp [r12]\n");
   fprintf (f, "\tnop\n");
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 823bc5e17e3..7ae583c7df2 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -438,8 +438,9 @@ enum reg_class
 /* Base register for access to arguments of the function.  */
 #define ARG_POINTER_REGNUM 35
 
-/* Register in which static-chain is passed to a function.  */
-#define STATIC_CHAIN_REGNUM 20
+/* Register in which static-chain is passed to a function.
+   This must be a call used register.  */
+#define STATIC_CHAIN_REGNUM 19
 
 /* If defined, this macro specifies a table of register pairs used to
    eliminate unneeded registers that point into the stack frame.  If


More information about the Gcc-cvs mailing list