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.c | |
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.c')
-rw-r--r-- | lopcodes.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lopcodes.c,v 1.59 2017/06/29 15:38:41 roberto Exp roberto $ | 2 | ** $Id: lopcodes.c,v 1.60 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 | */ |
@@ -54,6 +54,7 @@ LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = { | |||
54 | "NOT", | 54 | "NOT", |
55 | "LEN", | 55 | "LEN", |
56 | "CONCAT", | 56 | "CONCAT", |
57 | "CLOSE", | ||
57 | "JMP", | 58 | "JMP", |
58 | "EQ", | 59 | "EQ", |
59 | "LT", | 60 | "LT", |
@@ -115,7 +116,8 @@ LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { | |||
115 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ | 116 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ |
116 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ | 117 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ |
117 | ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ | 118 | ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ |
118 | ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ | 119 | ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */ |
120 | ,opmode(0, 0, OpArgU, OpArgN, iAsBx) /* OP_JMP */ | ||
119 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ | 121 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ |
120 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ | 122 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ |
121 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ | 123 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ |