diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-09-13 16:50:08 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-09-13 16:50:08 -0300 |
commit | 80d9b09f351c7a9be557116e9c79ae11e9b3f032 (patch) | |
tree | a6ae7cce019e85c2f79987035c77d4e4213d07a9 /lopcodes.h | |
parent | 029d269f4d1afd0e9ea0f889eb3e65a7f0fab0f9 (diff) | |
download | lua-80d9b09f351c7a9be557116e9c79ae11e9b3f032.tar.gz lua-80d9b09f351c7a9be557116e9c79ae11e9b3f032.tar.bz2 lua-80d9b09f351c7a9be557116e9c79ae11e9b3f032.zip |
jumps do not close upvalues (to be faster and simpler);
explicit instruction to close upvalues; command 'break' not
handled like a 'goto' (to optimize removal of uneeded 'close'
instructions)
Diffstat (limited to 'lopcodes.h')
-rw-r--r-- | lopcodes.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lopcodes.h,v 1.155 2017/06/29 15:38:41 roberto Exp roberto $ | 2 | ** $Id: lopcodes.h,v 1.156 2017/08/14 18:33: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 | */ |
@@ -217,7 +217,8 @@ OP_LEN,/* A B R(A) := length of R(B) */ | |||
217 | 217 | ||
218 | OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */ | 218 | OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */ |
219 | 219 | ||
220 | OP_JMP,/* A sBx pc+=sBx; if (A) close all upvalues >= R(A - 1) */ | 220 | OP_CLOSE,/* A close all upvalues >= R(A) */ |
221 | OP_JMP,/* sBx pc+=sBx */ | ||
221 | OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */ | 222 | OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */ |
222 | OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */ | 223 | OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */ |
223 | OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */ | 224 | OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */ |