aboutsummaryrefslogtreecommitdiff
path: root/lopcodes.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-09-26 15:14:45 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-09-26 15:14:45 -0300
commit00e728af885d2781e365071557530a6685110d7e (patch)
tree3e864db8a1ffa0dcb8b60a8b5c18418709ca6fc2 /lopcodes.h
parent13256a4173af4004518d65211b4bf1aebcd5fc25 (diff)
downloadlua-00e728af885d2781e365071557530a6685110d7e.tar.gz
lua-00e728af885d2781e365071557530a6685110d7e.tar.bz2
lua-00e728af885d2781e365071557530a6685110d7e.zip
binary operators use R instead of RK
faster + nobody uses RK(B), so B can be smaller (freeing one bit for more opcodes, soon)
Diffstat (limited to 'lopcodes.h')
-rw-r--r--lopcodes.h32
1 files changed, 16 insertions, 16 deletions
diff --git a/lopcodes.h b/lopcodes.h
index 9e0ce498..d28948d8 100644
--- a/lopcodes.h
+++ b/lopcodes.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lopcodes.h,v 1.159 2017/09/18 16:07:54 roberto Exp roberto $ 2** $Id: lopcodes.h,v 1.160 2017/09/19 18:38:14 roberto Exp roberto $
3** Opcodes for Lua virtual machine 3** Opcodes for Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -198,18 +198,18 @@ OP_NEWTABLE,/* A B C R(A) := {} (size = B,C) */
198OP_SELF,/* A B C R(A+1) := R(B); R(A) := R(B)[RK(C):string] */ 198OP_SELF,/* A B C R(A+1) := R(B); R(A) := R(B)[RK(C):string] */
199 199
200OP_ADDI,/* A B C R(A) := R(B) + C */ 200OP_ADDI,/* A B C R(A) := R(B) + C */
201OP_ADD,/* A B C R(A) := RK(B) + RK(C) */ 201OP_ADD,/* A B C R(A) := R(B) + R(C) */
202OP_SUB,/* A B C R(A) := RK(B) - RK(C) */ 202OP_SUB,/* A B C R(A) := R(B) - R(C) */
203OP_MUL,/* A B C R(A) := RK(B) * RK(C) */ 203OP_MUL,/* A B C R(A) := R(B) * R(C) */
204OP_MOD,/* A B C R(A) := RK(B) % RK(C) */ 204OP_MOD,/* A B C R(A) := R(B) % R(C) */
205OP_POW,/* A B C R(A) := RK(B) ^ RK(C) */ 205OP_POW,/* A B C R(A) := R(B) ^ R(C) */
206OP_DIV,/* A B C R(A) := RK(B) / RK(C) */ 206OP_DIV,/* A B C R(A) := R(B) / R(C) */
207OP_IDIV,/* A B C R(A) := RK(B) // RK(C) */ 207OP_IDIV,/* A B C R(A) := R(B) // R(C) */
208OP_BAND,/* A B C R(A) := RK(B) & RK(C) */ 208OP_BAND,/* A B C R(A) := R(B) & R(C) */
209OP_BOR,/* A B C R(A) := RK(B) | RK(C) */ 209OP_BOR,/* A B C R(A) := R(B) | R(C) */
210OP_BXOR,/* A B C R(A) := RK(B) ~ RK(C) */ 210OP_BXOR,/* A B C R(A) := R(B) ~ R(C) */
211OP_SHL,/* A B C R(A) := RK(B) << RK(C) */ 211OP_SHL,/* A B C R(A) := R(B) << R(C) */
212OP_SHR,/* A B C R(A) := RK(B) >> RK(C) */ 212OP_SHR,/* A B C R(A) := R(B) >> R(C) */
213OP_UNM,/* A B R(A) := -R(B) */ 213OP_UNM,/* A B R(A) := -R(B) */
214OP_BNOT,/* A B R(A) := ~R(B) */ 214OP_BNOT,/* A B R(A) := ~R(B) */
215OP_NOT,/* A B R(A) := not R(B) */ 215OP_NOT,/* A B R(A) := not R(B) */
@@ -219,9 +219,9 @@ OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */
219 219
220OP_CLOSE,/* A close all upvalues >= R(A) */ 220OP_CLOSE,/* A close all upvalues >= R(A) */
221OP_JMP,/* sBx pc+=sBx */ 221OP_JMP,/* sBx pc+=sBx */
222OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */ 222OP_EQ,/* A B C if ((R(B) == R(C)) ~= A) then pc++ */
223OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */ 223OP_LT,/* A B C if ((R(B) < R(C)) ~= A) then pc++ */
224OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */ 224OP_LE,/* A B C if ((R(B) <= R(C)) ~= A) then pc++ */
225 225
226OP_TEST,/* A C if not (R(A) <=> C) then pc++ */ 226OP_TEST,/* A C if not (R(A) <=> C) then pc++ */
227OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */ 227OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */