Browse Source

remove excessive and buggy patterns from JIT_OP_EXPAND_INT and

JIT_OP_EXPAND_UINT rules
cache-refactoring
Aleksey Demakov 18 years ago
parent
commit
5691831f5f
  1. 7
      ChangeLog
  2. 18
      jit/jit-rules-x86.ins

7
ChangeLog

@ -1,3 +1,10 @@
2006-10-23 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-rules-x86.ins: JIT_OP_EXPAND_INT and JIT_OP_EXPAND_UINT
rules were broken for local byte or short values. Fixed by removing
the local pattern altogether as the reg pattern produces the same
code but without the bug.
2006-10-18 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-reg-alloc.c (clobbers_register, bind_value): enable

18
jit/jit-rules-x86.ins

@ -118,16 +118,6 @@ JIT_OP_LOW_WORD:
}
JIT_OP_EXPAND_INT:
[=lreg, imm] -> {
x86_mov_reg_imm(inst, $1, $2);
x86_mov_reg_reg(inst, %1, $1, 4);
x86_shift_reg_imm(inst, X86_SAR, %1, 31);
}
[=lreg, local] -> {
x86_mov_reg_membase(inst, $1, X86_EBP, $2, 4);
x86_mov_reg_reg(inst, %1, $1, 4);
x86_shift_reg_imm(inst, X86_SAR, %1, 31);
}
[=lreg, reg] -> {
if($1 != $2)
{
@ -138,14 +128,6 @@ JIT_OP_EXPAND_INT:
}
JIT_OP_EXPAND_UINT:
[=lreg, imm] -> {
x86_mov_reg_imm(inst, $1, $2);
x86_clear_reg(inst, %1);
}
[=lreg, local] -> {
x86_mov_reg_membase(inst, $1, X86_EBP, $2, 4);
x86_clear_reg(inst, %1);
}
[=lreg, reg] -> {
if($1 != $2)
{

Loading…
Cancel
Save