]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert "gcc: xtensa: fix PR target/108876"
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 23 Feb 2023 06:07:58 +0000 (22:07 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Thu, 23 Feb 2023 09:30:22 +0000 (01:30 -0800)
This reverts commit b2ef02e8cbbaf95fee98be255f697f47193960ec.

gcc/config/xtensa/xtensa.cc
gcc/config/xtensa/xtensa.md

index 5c1c713e122d9be81c211bc5740c832769760d0d..d0320efe21d488912a597ac728712b7b2693b9a6 100644 (file)
@@ -3548,6 +3548,8 @@ 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)
        {
index b8a8aaf976404a6b637b8f8902b1d589711ea92b..d3996b26cb5c1d1e6b6bba8e3a24ab6b8bc3b246 100644 (file)
    (set_attr "length"  "3")])
 
 (define_expand "sibcall"
-  [(parallel [
-    (call (match_operand 0 "memory_operand" "")
-         (match_operand 1 "" ""))
-    (use (reg:SI A0_REG))])]
+  [(call (match_operand 0 "memory_operand" "")
+        (match_operand 1 "" ""))]
   "!TARGET_WINDOWED_ABI"
 {
   xtensa_prepare_expand_call (0, operands);
 
 (define_insn "sibcall_internal"
   [(call (mem:SI (match_operand:SI 0 "call_insn_operand" "nic"))
-        (match_operand 1 "" "i"))
-   (use (reg:SI A0_REG))]
+        (match_operand 1 "" "i"))]
   "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
 {
   return xtensa_emit_sibcall (0, operands);
    (set_attr "length"  "3")])
 
 (define_expand "sibcall_value"
-  [(parallel [
-    (set (match_operand 0 "register_operand" "")
-        (call (match_operand 1 "memory_operand" "")
-              (match_operand 2 "" "")))
-    (use (reg:SI A0_REG))])]
+  [(set (match_operand 0 "register_operand" "")
+       (call (match_operand 1 "memory_operand" "")
+             (match_operand 2 "" "")))]
   "!TARGET_WINDOWED_ABI"
 {
   xtensa_prepare_expand_call (1, operands);
 (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")))
-   (use (reg:SI A0_REG))]
+             (match_operand 2 "" "i")))]
   "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
 {
   return xtensa_emit_sibcall (1, operands);