aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-14 01:19:38 +0000
committerRichard Stallman <rms@gnu.org>1993-11-14 01:19:38 +0000
commit2927b46038ea420bfd3815ba37ccb7f36a2933be (patch)
treec11f5aaf0c5cd76784e7029575df326bec0cdc3b
parentef60d3134a55565e5f4aba74f1a398b9fc66e150 (diff)
downloadgcc-2927b46038ea420bfd3815ba37ccb7f36a2933be.zip
gcc-2927b46038ea420bfd3815ba37ccb7f36a2933be.tar.gz
gcc-2927b46038ea420bfd3815ba37ccb7f36a2933be.tar.bz2
(movsi): Handle moves to fp reg.
Handle const_double as operand 1. From-SVN: r6082
-rw-r--r--gcc/config/ns32k/ns32k.md10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/config/ns32k/ns32k.md b/gcc/config/ns32k/ns32k.md
index 66f5655..5b8f9cc 100644
--- a/gcc/config/ns32k/ns32k.md
+++ b/gcc/config/ns32k/ns32k.md
@@ -314,8 +314,8 @@
"lprd sp,%0")
(define_insn "movsi"
- [(set (match_operand:SI 0 "general_operand" "=g<,g<,*f,g")
- (match_operand:SI 1 "general_operand" "g,?xy,g,*f"))]
+ [(set (match_operand:SI 0 "general_operand" "=g<,g<,*f,g,x")
+ (match_operand:SI 1 "general_operand" "g,?xy,g,*f,rmn"))]
""
"*
{
@@ -332,6 +332,12 @@
return \"movf %1,tos\;movd tos,%0\";
return \"movf %1,%0\";
}
+ if (GET_CODE (operands[0]) == REG
+ && REGNO (operands[0]) == FRAME_POINTER_REGNUM)
+ return \"lprd fp,%1\";
+ if (GET_CODE (operands[1]) == CONST_DOUBLE)
+ operands[1]
+ = gen_rtx (CONST_INT, VOIDmode, CONST_DOUBLE_LOW (operands[1]));
if (GET_CODE (operands[1]) == CONST_INT)
{
int i = INTVAL (operands[1]);