diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-12-11 17:08:02 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-12-11 17:08:02 -0500 |
commit | 555919ac3ca07295751472e0e88b8c0a3f05345f (patch) | |
tree | c6806973049c73f9aca2141f431c5c967cdecc4e /gcc | |
parent | 44afaf6deae43c560c3bf50c3e87532ff55104c3 (diff) | |
download | gcc-555919ac3ca07295751472e0e88b8c0a3f05345f.zip gcc-555919ac3ca07295751472e0e88b8c0a3f05345f.tar.gz gcc-555919ac3ca07295751472e0e88b8c0a3f05345f.tar.bz2 |
(mov[hq]i unnamed): Split up for TARGET_BYTE_OPS and not.
From-SVN: r13284
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/alpha.md | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 178634b..a4dfb33 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -3613,10 +3613,26 @@ [(set_attr "type" "ilog,ilog,ilog,iadd,iadd,ldsym,ld,st,fcpys,fcpys,ld,st")]) (define_insn "" + [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,r,f,f") + (match_operand:HI 1 "input_operand" "r,J,I,n,f,J"))] + "! TARGET_BYTE_OPS + && (register_operand (operands[0], HImode) + || register_operand (operands[1], HImode))" + "@ + bis %1,%1,%0 + bis $31,$31,%0 + bis $31,%1,%0 + lda %0,%L1 + cpys %1,%1,%0 + cpys $f31,$f31,%0" + [(set_attr "type" "ilog,ilog,ilog,iadd,fcpys,fcpys")]) + +(define_insn "" [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,r,r,m,f,f") (match_operand:HI 1 "input_operand" "r,J,I,n,m,rJ,f,J"))] - "register_operand (operands[0], HImode) - || reg_or_0_operand (operands[1], HImode)" + "TARGET_BYTE_OPS + && (register_operand (operands[0], HImode) + || reg_or_0_operand (operands[1], HImode))" "@ bis %1,%1,%0 bis $31,$31,%0 @@ -3629,10 +3645,26 @@ [(set_attr "type" "ilog,ilog,ilog,iadd,ld,st,fcpys,fcpys")]) (define_insn "" + [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,r,f,f") + (match_operand:QI 1 "input_operand" "r,J,I,n,f,J"))] + "! TARGET_BYTE_OPS + && (register_operand (operands[0], QImode) + || register_operand (operands[1], QImode))" + "@ + bis %1,%1,%0 + bis $31,$31,%0 + bis $31,%1,%0 + lda %0,%L1 + cpys %1,%1,%0 + cpys $f31,$f31,%0" + [(set_attr "type" "ilog,ilog,ilog,iadd,fcpys,fcpys")]) + +(define_insn "" [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,r,r,m,f,f") (match_operand:QI 1 "input_operand" "r,J,I,n,m,rJ,f,J"))] - "register_operand (operands[0], QImode) - || reg_or_0_operand (operands[1], QImode)" + "TARGET_BYTE_OPS + && (register_operand (operands[0], QImode) + || reg_or_0_operand (operands[1], QImode))" "@ bis %1,%1,%0 bis $31,$31,%0 |