This reverts commit b2ef02e8cbbaf95fee98be255f697f47193960ec. --- gcc/config/xtensa/xtensa.cc | 2 ++ gcc/config/xtensa/xtensa.md | 20 +++++++------------- 2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc index 5c1c713e122d..d0320efe21d4 100644 --- a/gcc/config/xtensa/xtensa.cc +++ b/gcc/config/xtensa/xtensa.cc @@ -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) { diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index b8a8aaf97640..d3996b26cb5c 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -2369,10 +2369,8 @@ (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); @@ -2380,8 +2378,7 @@ (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); @@ -2391,11 +2388,9 @@ (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); @@ -2404,8 +2399,7 @@ (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); -- 2.30.2