arm.c (arm_reload_in_hi): Ensure that the scratch register does not overlap the final result register.
* arm.c (arm_reload_in_hi): Ensure that the scratch register does not overlap the final result register. From-SVN: r62981
This commit is contained in:
parent
97a6e368a6
commit
3a1944a602
2 changed files with 13 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2003-02-16 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.c (arm_reload_in_hi): Ensure that the scratch register does
|
||||
not overlap the final result register.
|
||||
|
||||
2003-02-16 Arend Bayer <arend.bayer@web.de>
|
||||
Richard Henderson <rth@redhat.com>
|
||||
|
||||
|
|
|
@ -5845,7 +5845,14 @@ arm_reload_in_hi (operands)
|
|||
}
|
||||
}
|
||||
|
||||
scratch = gen_rtx_REG (SImode, REGNO (operands[2]));
|
||||
/* Operands[2] may overlap operands[0] (though it won't overlap
|
||||
operands[1]), that's why we asked for a DImode reg -- so we can
|
||||
use the bit that does not overlap. */
|
||||
if (REGNO (operands[2]) == REGNO (operands[0]))
|
||||
scratch = gen_rtx_REG (SImode, REGNO (operands[2]) + 1);
|
||||
else
|
||||
scratch = gen_rtx_REG (SImode, REGNO (operands[2]));
|
||||
|
||||
emit_insn (gen_zero_extendqisi2 (scratch,
|
||||
gen_rtx_MEM (QImode,
|
||||
plus_constant (base,
|
||||
|
|
Loading…
Add table
Reference in a new issue