public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-6266] gcc: xtensa: fix PR target/108876
@ 2023-02-21 21:54 Max Filippov
  0 siblings, 0 replies; only message in thread
From: Max Filippov @ 2023-02-21 21:54 UTC (permalink / raw)
  To: gcc-cvs

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

commit r13-6266-gb2ef02e8cbbaf95fee98be255f697f47193960ec
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Tue Feb 21 11:49:35 2023 -0800

    gcc: xtensa: fix PR target/108876
    
    gcc/
            PR target/108876
            * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
            for A0_REG.
            * config/xtensa/xtensa.md (sibcall, sibcall_internal)
            (sibcall_value, sibcall_value_internal): Add 'use' expression
            for A0_REG.

Diff:
---
 gcc/config/xtensa/xtensa.cc |  2 --
 gcc/config/xtensa/xtensa.md | 20 +++++++++++++-------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc
index d0320efe21d..5c1c713e122 100644
--- a/gcc/config/xtensa/xtensa.cc
+++ b/gcc/config/xtensa/xtensa.cc
@@ -3548,8 +3548,6 @@ xtensa_expand_epilogue (bool sibcall_p)
 			      gen_frame_mem (SImode, x));
 	    }
 	}
-      if (sibcall_p)
-	emit_use (gen_rtx_REG (SImode, A0_REG));
 
       if (cfun->machine->current_frame_size > 0)
 	{
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index d3996b26cb5..b8a8aaf9764 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -2369,8 +2369,10 @@
    (set_attr "length"	"3")])
 
 (define_expand "sibcall"
-  [(call (match_operand 0 "memory_operand" "")
-	 (match_operand 1 "" ""))]
+  [(parallel [
+    (call (match_operand 0 "memory_operand" "")
+	  (match_operand 1 "" ""))
+    (use (reg:SI A0_REG))])]
   "!TARGET_WINDOWED_ABI"
 {
   xtensa_prepare_expand_call (0, operands);
@@ -2378,7 +2380,8 @@
 
 (define_insn "sibcall_internal"
   [(call (mem:SI (match_operand:SI 0 "call_insn_operand" "nic"))
-	 (match_operand 1 "" "i"))]
+	 (match_operand 1 "" "i"))
+   (use (reg:SI A0_REG))]
   "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
 {
   return xtensa_emit_sibcall (0, operands);
@@ -2388,9 +2391,11 @@
    (set_attr "length"	"3")])
 
 (define_expand "sibcall_value"
-  [(set (match_operand 0 "register_operand" "")
-	(call (match_operand 1 "memory_operand" "")
-	      (match_operand 2 "" "")))]
+  [(parallel [
+    (set (match_operand 0 "register_operand" "")
+	 (call (match_operand 1 "memory_operand" "")
+	       (match_operand 2 "" "")))
+    (use (reg:SI A0_REG))])]
   "!TARGET_WINDOWED_ABI"
 {
   xtensa_prepare_expand_call (1, operands);
@@ -2399,7 +2404,8 @@
 (define_insn "sibcall_value_internal"
   [(set (match_operand 0 "register_operand" "=a")
 	(call (mem:SI (match_operand:SI 1 "call_insn_operand" "nic"))
-	      (match_operand 2 "" "i")))]
+	      (match_operand 2 "" "i")))
+   (use (reg:SI A0_REG))]
   "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
 {
   return xtensa_emit_sibcall (1, operands);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-21 21:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-21 21:54 [gcc r13-6266] gcc: xtensa: fix PR target/108876 Max Filippov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).