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)]

Reply via email to