https://gcc.gnu.org/g:6f640cba222d198bcd5a523df621e6d12b7e3901
commit 6f640cba222d198bcd5a523df621e6d12b7e3901 Author: Michael Meissner <meiss...@linux.ibm.com> Date: Thu May 30 08:34:30 2024 -0400 Add wt to move constraints. 2024-05-30 Michael Meissner <meiss...@linux.ibm.com> gcc/ * config/rs6000/rs6000.md (mov<mode>_internal): Add wt to various move constraints to support -m*spr debug switches. (movcc_<mode>): Likewise. (movsf_hardfloat): Likewise. (movsd_hardfloat): Likewise. (mov<mode>_hardfloat64): Likewise. (mov<mode>_softfloat64): Likewise. (*call_indirect_nonlocal_sysv<mode>): Add wt to call constraints. (call_value_indirect_nonlocal_sysv<mode>): Likewise. (call_indirect_aix<mode>): Likewise. (call_value_indirect_aix<mode>): Likewise. (call_indirect_elfv2<mode>): Likewise. (call_indirect_pcrel<mode>): Likewise. (call_value_indirect_elfv2<mode>): Likewise. (call_value_indirect_pcrel): Likewise. (sibcall_indirect_nonlocal_sysv<mode): Likewise. (sibcall_value_indirect_nonlocal_sysv<mode>): Likewise. Diff: --- gcc/config/rs6000/rs6000.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 28f8ebee738..ba22a36b82e 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -8069,7 +8069,7 @@ [(set (match_operand:QHI 0 "nonimmediate_operand" "=r, r, wa, m, ?Z, r, wa, wa, wa, v, ?v, r, - wa, r, *c*l, *h") + wa, r, *wt*c*l, *h") (match_operand:QHI 1 "input_operand" "r, m, ?Z, r, wa, i, wa, O, wM, wB, wS, wa, @@ -8120,7 +8120,7 @@ (define_insn "*movcc_<mode>" [(set (match_operand:CC_any 0 "nonimmediate_operand" - "=y,x,?y,y,r,r,r,r, r,*c*l,r,m") + "=y,x,?y,y,r,r,r,r, r,*wt*c*l,r,m") (match_operand:CC_any 1 "general_operand" " y,r, r,O,x,y,r,I,*h, r,m,r"))] "register_operand (operands[0], <MODE>mode) @@ -8210,7 +8210,7 @@ [(set (match_operand:SF 0 "nonimmediate_operand" "=!r, f, v, wa, m, wY, Z, m, wa, !r, f, wa, - !r, *c*l, !r, *h, wa") + !r, *wt*c*l, !r, *h, wa") (match_operand:SF 1 "input_operand" "m, m, wY, Z, f, v, wa, r, j, j, f, wa, @@ -8256,7 +8256,7 @@ (define_insn "movsd_hardfloat" [(set (match_operand:SD 0 "nonimmediate_operand" "=!r, d, m, ?Z, ?d, ?r, - f, !r, *c*l, !r, *h") + f, !r, *wt*c*l, !r, *h") (match_operand:SD 1 "input_operand" "m, ?Z, r, wx, r, d, f, r, r, *h, 0"))] @@ -8286,7 +8286,7 @@ ;; LIS G-const. F/n-const NOP (define_insn "*mov<mode>_softfloat" [(set (match_operand:FMOVE32 0 "nonimmediate_operand" - "=r, *c*l, r, r, m, r, + "=r, *wt*c*l, r, r, m, r, r, r, r, *h") (match_operand:FMOVE32 1 "input_operand" @@ -8600,7 +8600,7 @@ [(set (match_operand:FMOVE64 0 "nonimmediate_operand" "=m, d, d, <f64_p9>, wY, <f64_av>, Z, <f64_vsx>, <f64_vsx>, !r, - YZ, r, !r, *c*l, !r, + YZ, r, !r, *wt*c*l, !r, *h, r, <f64_dm>, wa") (match_operand:FMOVE64 1 "input_operand" "d, m, d, wY, <f64_p9>, @@ -8652,7 +8652,7 @@ (define_insn "*mov<mode>_softfloat64" [(set (match_operand:FMOVE64 0 "nonimmediate_operand" - "=Y, r, r, *c*l, r, r, + "=Y, r, r, *wt*c*l, r, r, r, r, *h") (match_operand:FMOVE64 1 "input_operand" @@ -11501,7 +11501,7 @@ ;; which indicates how to set cr1 (define_insn "*call_indirect_nonlocal_sysv<mode>" - [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "c,*l,X")) + [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "wtc,*l,X")) (match_operand 1)) (use (match_operand:SI 2 "immediate_operand" "n,n,n")) (clobber (reg:P LR_REGNO))] @@ -11571,7 +11571,7 @@ (define_insn "*call_value_indirect_nonlocal_sysv<mode>" [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:P 1 "indirect_call_operand" "c,*l,X")) + (call (mem:SI (match_operand:P 1 "indirect_call_operand" "wtc,*l,X")) (match_operand:P 2 "unspec_tls" ""))) (use (match_operand:SI 3 "immediate_operand" "n,n,n")) (clobber (reg:P LR_REGNO))] @@ -11688,7 +11688,7 @@ ;; Operand4 is the offset of the stack location holding the current TOC pointer (define_insn "*call_indirect_aix<mode>" - [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "c,*l,X")) + [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "wtc,*l,X")) (match_operand 1)) (use (match_operand:SI 2 "immediate_operand" "n,n,n")) (use (match_operand:P 3 "memory_operand" "<ptrm>,<ptrm>,<ptrm>")) @@ -11707,7 +11707,7 @@ (define_insn "*call_value_indirect_aix<mode>" [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:P 1 "indirect_call_operand" "c,*l,X")) + (call (mem:SI (match_operand:P 1 "indirect_call_operand" "wtc,*l,X")) (match_operand:P 2 "unspec_tls" ""))) (use (match_operand:SI 3 "immediate_operand" "n,n,n")) (use (match_operand:P 4 "memory_operand" "<ptrm>,<ptrm>,<ptrm>")) @@ -11731,7 +11731,7 @@ ;; Operand3 is the offset of the stack location holding the current TOC pointer (define_insn "*call_indirect_elfv2<mode>" - [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "c,*l,X")) + [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "wtc,*l,X")) (match_operand 1)) (use (match_operand:SI 2 "immediate_operand" "n,n,n")) (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 3 "const_int_operand" "n,n,n")] UNSPEC_TOCSLOT)) @@ -11748,7 +11748,7 @@ (const_string "8")))]) (define_insn "*call_indirect_pcrel<mode>" - [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "c,*l,X")) + [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "wtc,*l,X")) (match_operand 1)) (use (match_operand:SI 2 "immediate_operand" "n,n,n")) (clobber (reg:P LR_REGNO))] @@ -11765,7 +11765,7 @@ (define_insn "*call_value_indirect_elfv2<mode>" [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:P 1 "indirect_call_operand" "c,*l,X")) + (call (mem:SI (match_operand:P 1 "indirect_call_operand" "wtc,*l,X")) (match_operand:P 2 "unspec_tls" ""))) (use (match_operand:SI 3 "immediate_operand" "n,n,n")) (set (reg:P TOC_REGNUM) @@ -11785,7 +11785,7 @@ (define_insn "*call_value_indirect_pcrel<mode>" [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:P 1 "indirect_call_operand" "c,*l,X")) + (call (mem:SI (match_operand:P 1 "indirect_call_operand" "wtc,*l,X")) (match_operand:P 2 "unspec_tls" ""))) (use (match_operand:SI 3 "immediate_operand" "n,n,n")) (clobber (reg:P LR_REGNO))] @@ -11929,7 +11929,7 @@ (set_attr "length" "4,8")]) (define_insn "*sibcall_indirect_nonlocal_sysv<mode>" - [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "c,*l,X")) + [(call (mem:SI (match_operand:P 0 "indirect_call_operand" "wtc,*l,X")) (match_operand 1)) (use (match_operand:SI 2 "immediate_operand" "n,n,n")) (simple_return)] @@ -11978,7 +11978,7 @@ (define_insn "*sibcall_value_indirect_nonlocal_sysv<mode>" [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:P 1 "indirect_call_operand" "c,*l,X")) + (call (mem:SI (match_operand:P 1 "indirect_call_operand" "wtc,*l,X")) (match_operand 2))) (use (match_operand:SI 3 "immediate_operand" "n,n,n")) (simple_return)]