mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
tcg/arm: don't try to load constants using pc
There is statistically almost 0 chances to use this code, so remove it. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
914ccf51b0
commit
c66b5c2cb6
1 changed files with 0 additions and 7 deletions
|
@ -396,19 +396,12 @@ static inline void tcg_out_dat_imm(TCGContext *s,
|
||||||
static inline void tcg_out_movi32(TCGContext *s,
|
static inline void tcg_out_movi32(TCGContext *s,
|
||||||
int cond, int rd, int32_t arg)
|
int cond, int rd, int32_t arg)
|
||||||
{
|
{
|
||||||
int offset = (uint32_t) arg - ((uint32_t) s->code_ptr + 8);
|
|
||||||
|
|
||||||
/* TODO: This is very suboptimal, we can easily have a constant
|
/* TODO: This is very suboptimal, we can easily have a constant
|
||||||
* pool somewhere after all the instructions. */
|
* pool somewhere after all the instructions. */
|
||||||
|
|
||||||
if (arg < 0 && arg > -0x100)
|
if (arg < 0 && arg > -0x100)
|
||||||
return tcg_out_dat_imm(s, cond, ARITH_MVN, rd, 0, (~arg) & 0xff);
|
return tcg_out_dat_imm(s, cond, ARITH_MVN, rd, 0, (~arg) & 0xff);
|
||||||
|
|
||||||
if (offset < 0x100 && offset > -0x100)
|
|
||||||
return offset >= 0 ?
|
|
||||||
tcg_out_dat_imm(s, cond, ARITH_ADD, rd, 15, offset) :
|
|
||||||
tcg_out_dat_imm(s, cond, ARITH_SUB, rd, 15, -offset);
|
|
||||||
|
|
||||||
if (use_armv7_instructions) {
|
if (use_armv7_instructions) {
|
||||||
/* use movw/movt */
|
/* use movw/movt */
|
||||||
/* movw */
|
/* movw */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue