m68hc11.c (m68hc11_gen_rotate): Set carry before each 16-bit rotation.
* config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before each 16-bit rotation. From-SVN: r64125
This commit is contained in:
parent
88849449f3
commit
ae5b570e57
@ -1,3 +1,8 @@
|
||||
2003-03-10 Stephane Carrez <stcarrez@nerim.fr>
|
||||
|
||||
* config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
|
||||
each 16-bit rotation.
|
||||
|
||||
2003-03-10 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* c-opts.c (add_prefixed_path): Don't use concat. When
|
||||
|
@ -3855,15 +3855,15 @@ m68hc11_gen_rotate (code, insn, operands)
|
||||
|
||||
if (val > 0)
|
||||
{
|
||||
/* Set the carry to bit-15, but don't change D yet. */
|
||||
if (GET_MODE (operands[0]) != QImode)
|
||||
{
|
||||
output_asm_insn ("asra", operands);
|
||||
output_asm_insn ("rola", operands);
|
||||
}
|
||||
|
||||
while (--val >= 0)
|
||||
{
|
||||
/* Set the carry to bit-15, but don't change D yet. */
|
||||
if (GET_MODE (operands[0]) != QImode)
|
||||
{
|
||||
output_asm_insn ("asra", operands);
|
||||
output_asm_insn ("rola", operands);
|
||||
}
|
||||
|
||||
/* Rotate B first to move the carry to bit-0. */
|
||||
if (D_REG_P (operands[0]))
|
||||
output_asm_insn ("rolb", operands);
|
||||
@ -3874,14 +3874,12 @@ m68hc11_gen_rotate (code, insn, operands)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Set the carry to bit-8 of D. */
|
||||
if (val != 0 && GET_MODE (operands[0]) != QImode)
|
||||
{
|
||||
output_asm_insn ("tap", operands);
|
||||
}
|
||||
|
||||
while (++val <= 0)
|
||||
{
|
||||
/* Set the carry to bit-8 of D. */
|
||||
if (GET_MODE (operands[0]) != QImode)
|
||||
output_asm_insn ("tap", operands);
|
||||
|
||||
/* Rotate B first to move the carry to bit-7. */
|
||||
if (D_REG_P (operands[0]))
|
||||
output_asm_insn ("rorb", operands);
|
||||
|
Loading…
Reference in New Issue
Block a user