diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-05-15 20:24:03 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-05-15 20:24:03 +0000 |
commit | f3717e12791b1186021c2e8af466739ed76f055c (patch) | |
tree | e424d78a7e5f1757103956766b2584068cac118c /gcc/config/i860/i860.c | |
parent | cae056354a75e905633d9ae5a969283e2624da8a (diff) | |
download | gcc-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.c | 10 |
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; |