From 91dad09f65984048ae43c8894d18acb785c7092b Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 10 Sep 2019 13:20:03 -0300 Subject: Removed arithmetic opcodes with immediate operand The difference in performance between immediate operands and K operands does not seem to justify all those extra opcodes. We only keep OP_ADDI, due to its ubiquity and because the difference is a little more relevant. (Later, OP_SUBI will be implemented by OP_ADDI, negating the constant.) --- lvm.c | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'lvm.c') diff --git a/lvm.c b/lvm.c index 46150ef0..e22a0da8 100644 --- a/lvm.c +++ b/lvm.c @@ -1271,30 +1271,6 @@ void luaV_execute (lua_State *L, CallInfo *ci) { op_arithI(L, l_addi, luai_numadd, TM_ADD, GETARG_k(i)); vmbreak; } - vmcase(OP_SUBI) { - op_arithI(L, l_subi, luai_numsub, TM_SUB, 0); - vmbreak; - } - vmcase(OP_MULI) { - op_arithI(L, l_muli, luai_nummul, TM_MUL, GETARG_k(i)); - vmbreak; - } - vmcase(OP_MODI) { - op_arithI(L, luaV_mod, luaV_modf, TM_MOD, 0); - vmbreak; - } - vmcase(OP_POWI) { - op_arithfI(L, luai_numpow, TM_POW); - vmbreak; - } - vmcase(OP_DIVI) { - op_arithfI(L, luai_numdiv, TM_DIV); - vmbreak; - } - vmcase(OP_IDIVI) { - op_arithI(L, luaV_idiv, luai_numidiv, TM_IDIV, 0); - vmbreak; - } vmcase(OP_ADDK) { op_arithK(L, l_addi, luai_numadd, GETARG_k(i)); vmbreak; -- cgit v1.2.3-55-g6feb