aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-03-29 14:39:25 -0800
committerJim Wilson <wilson@gcc.gnu.org>1993-03-29 14:39:25 -0800
commit6559c3f4f6d034adfccbc7ac871455cf18f6d709 (patch)
treeceb7fef5c8e0313278a585f1a46c40c2eb0370b0 /gcc/config/sparc
parent563465600f687174e56efd0cbbb600eebe11980a (diff)
downloadgcc-6559c3f4f6d034adfccbc7ac871455cf18f6d709.zip
gcc-6559c3f4f6d034adfccbc7ac871455cf18f6d709.tar.gz
gcc-6559c3f4f6d034adfccbc7ac871455cf18f6d709.tar.bz2
(movsi+2): Add f/f constraint case.
From-SVN: r3919
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/sparc.md9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 87d1a2e..e781e13 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -806,20 +806,21 @@
;; in an fp register, or an fp number is an integer register.
(define_insn ""
- [(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand" "=r,r,r,f,Q,Q")
- (match_operand:SI 1 "move_operand" "rI,K,Q,!Q,rJ,!f"))]
+ [(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand" "=r,f,r,r,f,Q,Q")
+ (match_operand:SI 1 "move_operand" "rI,!f,K,Q,!Q,rJ,!f"))]
"register_operand (operands[0], SImode)
|| register_operand (operands[1], SImode)
|| operands[1] == const0_rtx"
"@
mov %1,%0
+ fmovs %1,%0
sethi %%hi(%a1),%0
ld %1,%0
ld %1,%0
st %r1,%0
st %r1,%0"
- [(set_attr "type" "move,move,load,load,store,store")
- (set_attr "length" "*,1,*,*,*,*")])
+ [(set_attr "type" "move,fp,move,load,load,store,store")
+ (set_attr "length" "*,*,1,*,*,*,*")])
;; Special pic pattern, for loading the address of a label into a register.
;; It clobbers o7 because the call puts the return address (i.e. pc value)