From 31e66838d81d958b22fcac02d7bca2093feeac34 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 5 Jan 2015 00:04:40 +0100 Subject: [PATCH 1/2] x86: Minor interpreter optimization. --- src/vm_x86.dasc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc index 3e59d95b..f86ee4de 100644 --- a/src/vm_x86.dasc +++ b/src/vm_x86.dasc @@ -5320,8 +5320,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | jnz <4 | movzx RA, PC_RA | not RAa - | lea RA, [BASE+RA*8] - | mov LFUNC:KBASE, [RA-8] // Need to prepare KBASE. + | mov LFUNC:KBASE, [BASE+RA*8-8] // Need to prepare KBASE. | mov KBASE, LFUNC:KBASE->pc | mov KBASE, [KBASE+PC2PROTO(k)] | jmp <4 From 4d9e8e245a96b2ef30c9ec34ab1c98bca3dcccb8 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 5 Jan 2015 00:05:38 +0100 Subject: [PATCH 2/2] ARM: Minor interpreter optimization. --- src/vm_arm.dasc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 2d600d22..62579eab 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc @@ -539,9 +539,8 @@ static void build_subroutines(BuildCtx *ctx) |1: | beq ->cont_ffi_callback // cont = 1: return from FFI callback. | // cont = 0: tailcall from C function. - | ldr CARG3, [BASE, FRAME_FUNC] - | sub CARG4, CARG4, #16 - | sub RC, CARG4, BASE + | sub CARG4, CARG4, #16 + | sub RC, CARG4, BASE | b ->vm_call_tail |.endif |