From 54747d29c306c460665222b470be14a67cc609de Mon Sep 17 00:00:00 2001 From: Aleksey Demakov Date: Thu, 8 Jun 2006 18:32:12 +0000 Subject: [PATCH] fix problem with long constants introduced by previous commit --- jit/jit-rules-x86.ins | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/jit/jit-rules-x86.ins b/jit/jit-rules-x86.ins index c776736..4b7f845 100644 --- a/jit/jit-rules-x86.ins +++ b/jit/jit-rules-x86.ins @@ -2402,11 +2402,9 @@ JIT_OP_STORE_RELATIVE_INT: ternary } JIT_OP_STORE_RELATIVE_LONG: ternary - [reg, imm, imm, scratch("?")] -> { - x86_mov_reg_mem(inst, $4, $2, 4); - x86_mov_membase_reg(inst, $1, $3, $4, 4); - x86_mov_reg_mem(inst, $4, $2 + 4, 4); - x86_mov_membase_reg(inst, $1, $3 + 4, $4, 4); + [reg, imm, imm] -> { + x86_mov_membase_imm(inst, $1, $3, *(int *)($2), 4); + x86_mov_membase_imm(inst, $1, $3 + 4, *(int *)($2 + 4), 4); } [reg, local, imm, scratch("?")] -> { x86_mov_reg_membase(inst, $4, X86_EBP, $2, 4); @@ -2653,11 +2651,9 @@ JIT_OP_STORE_ELEMENT_INT: ternary } JIT_OP_STORE_ELEMENT_LONG: ternary - [reg, reg, imm, scratch("?")] -> { - x86_mov_reg_mem(inst, $4, $3, 4); - x86_mov_memindex_reg(inst, $1, 0, $2, 3, $4, 4); - x86_mov_reg_mem(inst, $4, $3 + 4, 4); - x86_mov_memindex_reg(inst, $1, 4, $2, 3, $4, 4); + [reg, reg, imm] -> { + x86_mov_memindex_imm(inst, $1, 0, $2, 3, *(int *)($3), 4); + x86_mov_memindex_imm(inst, $1, 4, $2, 3, *(int *)($3 + 4), 4); } [reg, reg, local, scratch("?")] -> { x86_mov_reg_membase(inst, $4, X86_EBP, $3, 4); -- 2.47.3