summaryrefslogtreecommitdiff
path: root/gcc/config/i860/i860.c
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-05-15 20:24:03 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-05-15 20:24:03 +0000
commitf3717e12791b1186021c2e8af466739ed76f055c (patch)
treee424d78a7e5f1757103956766b2584068cac118c /gcc/config/i860/i860.c
parentcae056354a75e905633d9ae5a969283e2624da8a (diff)
downloadgcc-f3717e12791b1186021c2e8af466739ed76f055c.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@991 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i860/i860.c')
-rw-r--r--gcc/config/i860/i860.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/i860/i860.c b/gcc/config/i860/i860.c
index 51175c78c00..f4ecdb25e47 100644
--- a/gcc/config/i860/i860.c
+++ b/gcc/config/i860/i860.c
@@ -669,12 +669,14 @@ singlemove_string (operands)
}
if (GET_CODE (operands[1]) == CONST_INT)
{
+ if (operands[1] == const0_rtx)
+ return "mov %?r0,%0";
if((INTVAL (operands[1]) & 0xffff0000) == 0)
return "or %L1,%?r0,%0";
+ if((INTVAL (operands[1]) & 0xffff8000) == 0xffff8000)
+ return "adds %1,%?r0,%0";
if((INTVAL (operands[1]) & 0x0000ffff) == 0)
return "orh %H1,%?r0,%0";
- if (operands[1] == const0_rtx)
- return "mov %?r0,%0";
}
return "mov %1,%0";
}
@@ -1196,7 +1198,7 @@ output_size_for_block_move (size, reg, align)
#if 1
cc_status.flags &= ~ CC_KNOW_HI_R31;
- output_asm_insn ("mov %1,%0", xoperands);
+ output_asm_insn (singlemove_string (xoperands), xoperands);
#else
if (GET_CODE (size) == REG)
output_asm_insn ("sub %2,%1,%0", xoperands);
@@ -1621,7 +1623,7 @@ sfmode_constant_to_ulong (x)
abort ();
#if TARGET_FLOAT_FORMAT != HOST_FLOAT_FORMAT
-# error IEEE emulation needed
+ error IEEE emulation needed
#endif
REAL_VALUE_FROM_CONST_DOUBLE (d, x);
u2.f = d;