mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
xtensa: Fix conflicting hard regno between indirect sibcall fixups and EH_RETURN_STACKADJ_RTX
The hard register A10 was already allocated for EH_RETURN_STACKADJ_RTX. (although exception handling and sibling call may not apply at the same time, but for safety) gcc/ChangeLog: * config/xtensa/xtensa.md: Change hard register number used in the split patterns for indirect sibling call fixups from 10 to 11, the last free one for the CALL0 ABI.
This commit is contained in:
committed by
Max Filippov
parent
48e9954d08
commit
2fa8c4a659
@@ -25,7 +25,7 @@
|
||||
(A7_REG 7)
|
||||
(A8_REG 8)
|
||||
(A9_REG 9)
|
||||
(A10_REG 10)
|
||||
(A11_REG 11)
|
||||
|
||||
(UNSPEC_NOP 2)
|
||||
(UNSPEC_PLT 3)
|
||||
@@ -2295,9 +2295,9 @@
|
||||
"reload_completed
|
||||
&& !TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)
|
||||
&& ! call_used_or_fixed_reg_p (REGNO (operands[0]))"
|
||||
[(set (reg:SI A10_REG)
|
||||
[(set (reg:SI A11_REG)
|
||||
(match_dup 0))
|
||||
(call (mem:SI (reg:SI A10_REG))
|
||||
(call (mem:SI (reg:SI A11_REG))
|
||||
(match_dup 1))])
|
||||
|
||||
(define_expand "sibcall_value"
|
||||
@@ -2328,10 +2328,10 @@
|
||||
"reload_completed
|
||||
&& !TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)
|
||||
&& ! call_used_or_fixed_reg_p (REGNO (operands[1]))"
|
||||
[(set (reg:SI A10_REG)
|
||||
[(set (reg:SI A11_REG)
|
||||
(match_dup 1))
|
||||
(set (match_dup 0)
|
||||
(call (mem:SI (reg:SI A10_REG))
|
||||
(call (mem:SI (reg:SI A11_REG))
|
||||
(match_dup 2)))])
|
||||
|
||||
(define_insn "entry"
|
||||
|
||||
Reference in New Issue
Block a user