aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2002-02-16 18:54:33 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2002-02-16 13:54:33 -0500
commit1a42b0728f2c4f18053fe101262d02ff5add340e (patch)
tree7a8cfc7c7440a5b5a3310d6cae5a000c7ed7e0dd /gcc
parentc2ea1ac6b63f3c8e4cb03c5a156137f059f88293 (diff)
downloadgcc-1a42b0728f2c4f18053fe101262d02ff5add340e.zip
gcc-1a42b0728f2c4f18053fe101262d02ff5add340e.tar.gz
gcc-1a42b0728f2c4f18053fe101262d02ff5add340e.tar.bz2
alpha.md (*movsi_nt_vms_nofix): Was *movesi_nt_vms; now only if !TARGET_FIX.
* config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movesi_nt_vms; now only if !TARGET_FIX. (*movsi_nt_vms_fix): New pattern. From-SVN: r49807
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/alpha/alpha.md24
2 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 52cabed..c960356 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sat Feb 16 13:48:50 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movesi_nt_vms;
+ now only if !TARGET_FIX.
+ (*movsi_nt_vms_fix): New pattern.
+
2002-02-16 Douglas B Rupp <rupp@gnat.com>
* config/alpha/alpha.c: Implement null frame procedure types on VMS.
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index b987de8..2ca8984 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -5292,10 +5292,11 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
itofs %1,%0"
[(set_attr "type" "ilog,iadd,iadd,ild,ist,fcpys,fld,fst,ftoi,itof")])
-(define_insn "*movsi_nt_vms"
+(define_insn "*movsi_nt_vms_nofix"
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,m,*f,*f,m")
(match_operand:SI 1 "input_operand" "rJ,K,L,s,m,rJ,*fJ,m,*f"))]
"(TARGET_ABI_WINDOWS_NT || TARGET_ABI_OPEN_VMS)
+ && !TARGET_FIX
&& (register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))"
"@
@@ -5310,6 +5311,27 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
st%, %R1,%0"
[(set_attr "type" "ilog,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst")])
+(define_insn "*movsi_nt_vms_fix"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,m,*f,*f,m,r,*f")
+ (match_operand:SI 1 "input_operand" "rJ,K,L,s,m,rJ,*fJ,m,*f,*f,r"))]
+ "(TARGET_ABI_WINDOWS_NT || TARGET_ABI_OPEN_VMS)
+ && TARGET_FIX
+ && (register_operand (operands[0], SImode)
+ || reg_or_0_operand (operands[1], SImode))"
+ "@
+ bis $31,%1,%0
+ lda %0,%1
+ ldah %0,%h1
+ lda %0,%1
+ ldl %0,%1
+ stl %r1,%0
+ cpys %R1,%R1,%0
+ ld%, %0,%1
+ st%, %R1,%0
+ ftois %1,%0
+ itofs %1,%0"
+ [(set_attr "type" "ilog,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst,ftoi,itof")])
+
(define_insn "*movhi_nobwx"
[(set (match_operand:HI 0 "register_operand" "=r,r")
(match_operand:HI 1 "input_operand" "rJ,n"))]