diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-11-07 10:57:57 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-11-07 10:57:57 -0300 |
commit | 1499680f9e3d694462ac645ed8162f310509c64c (patch) | |
tree | 271fbec82fd9159a819066a0f7f9f6b17ba0cf7e /lopcodes.h | |
parent | bdcfae2e1c860e0726259a6195dbb5d6c2b1e23f (diff) | |
download | lua-1499680f9e3d694462ac645ed8162f310509c64c.tar.gz lua-1499680f9e3d694462ac645ed8162f310509c64c.tar.bz2 lua-1499680f9e3d694462ac645ed8162f310509c64c.zip |
Comments in 'lopcodes.h'
Both 'R' and 'K' are arrays, so the comments should use square
brackets to index them.
Diffstat (limited to 'lopcodes.h')
-rw-r--r-- | lopcodes.h | 184 |
1 files changed, 92 insertions, 92 deletions
@@ -183,9 +183,9 @@ enum OpMode {iABC, iABx, iAsBx, iAx, isJ}; /* basic instruction formats */ | |||
183 | 183 | ||
184 | 184 | ||
185 | /* | 185 | /* |
186 | ** R(x) - register | 186 | ** R[x] - register |
187 | ** K(x) - constant (in constant table) | 187 | ** K[x] - constant (in constant table) |
188 | ** RK(x) == if k(i) then K(x) else R(x) | 188 | ** RK(x) == if k(i) then K[x] else R[x] |
189 | */ | 189 | */ |
190 | 190 | ||
191 | 191 | ||
@@ -197,109 +197,109 @@ typedef enum { | |||
197 | /*---------------------------------------------------------------------- | 197 | /*---------------------------------------------------------------------- |
198 | name args description | 198 | name args description |
199 | ------------------------------------------------------------------------*/ | 199 | ------------------------------------------------------------------------*/ |
200 | OP_MOVE,/* A B R(A) := R(B) */ | 200 | OP_MOVE,/* A B R[A] := R[B] */ |
201 | OP_LOADI,/* A sBx R(A) := sBx */ | 201 | OP_LOADI,/* A sBx R[A] := sBx */ |
202 | OP_LOADF,/* A sBx R(A) := (lua_Number)sBx */ | 202 | OP_LOADF,/* A sBx R[A] := (lua_Number)sBx */ |
203 | OP_LOADK,/* A Bx R(A) := K(Bx) */ | 203 | OP_LOADK,/* A Bx R[A] := K[Bx] */ |
204 | OP_LOADKX,/* A R(A) := K(extra arg) */ | 204 | OP_LOADKX,/* A R[A] := K[extra arg] */ |
205 | OP_LOADBOOL,/* A B C R(A) := (Bool)B; if (C) pc++ */ | 205 | OP_LOADBOOL,/* A B C R[A] := (Bool)B; if (C) pc++ */ |
206 | OP_LOADNIL,/* A B R(A), R(A+1), ..., R(A+B) := nil */ | 206 | OP_LOADNIL,/* A B R[A], R[A+1], ..., R[A+B] := nil */ |
207 | OP_GETUPVAL,/* A B R(A) := UpValue[B] */ | 207 | OP_GETUPVAL,/* A B R[A] := UpValue[B] */ |
208 | OP_SETUPVAL,/* A B UpValue[B] := R(A) */ | 208 | OP_SETUPVAL,/* A B UpValue[B] := R[A] */ |
209 | 209 | ||
210 | OP_GETTABUP,/* A B C R(A) := UpValue[B][K(C):string] */ | 210 | OP_GETTABUP,/* A B C R[A] := UpValue[B][K[C]:string] */ |
211 | OP_GETTABLE,/* A B C R(A) := R(B)[R(C)] */ | 211 | OP_GETTABLE,/* A B C R[A] := R[B][R[C]] */ |
212 | OP_GETI,/* A B C R(A) := R(B)[C] */ | 212 | OP_GETI,/* A B C R[A] := R[B][C] */ |
213 | OP_GETFIELD,/* A B C R(A) := R(B)[K(C):string] */ | 213 | OP_GETFIELD,/* A B C R[A] := R[B][K[C]:string] */ |
214 | 214 | ||
215 | OP_SETTABUP,/* A B C UpValue[A][K(B):string] := RK(C) */ | 215 | OP_SETTABUP,/* A B C UpValue[A][K[B]:string] := RK(C) */ |
216 | OP_SETTABLE,/* A B C R(A)[R(B)] := RK(C) */ | 216 | OP_SETTABLE,/* A B C R[A][R[B]] := RK(C) */ |
217 | OP_SETI,/* A B C R(A)[B] := RK(C) */ | 217 | OP_SETI,/* A B C R[A][B] := RK(C) */ |
218 | OP_SETFIELD,/* A B C R(A)[K(B):string] := RK(C) */ | 218 | OP_SETFIELD,/* A B C R[A][K[B]:string] := RK(C) */ |
219 | 219 | ||
220 | OP_NEWTABLE,/* A B C R(A) := {} */ | 220 | OP_NEWTABLE,/* A B C R[A] := {} */ |
221 | 221 | ||
222 | OP_SELF,/* A B C R(A+1) := R(B); R(A) := R(B)[RK(C):string] */ | 222 | OP_SELF,/* A B C R[A+1] := R[B]; R[A] := R[B][RK(C):string] */ |
223 | 223 | ||
224 | OP_ADDI,/* A B sC R(A) := R(B) + sC */ | 224 | OP_ADDI,/* A B sC R[A] := R[B] + sC */ |
225 | 225 | ||
226 | OP_ADDK,/* A B C R(A) := R(B) + K(C) */ | 226 | OP_ADDK,/* A B C R[A] := R[B] + K[C] */ |
227 | OP_SUBK,/* A B C R(A) := R(B) - K(C) */ | 227 | OP_SUBK,/* A B C R[A] := R[B] - K[C] */ |
228 | OP_MULK,/* A B C R(A) := R(B) * K(C) */ | 228 | OP_MULK,/* A B C R[A] := R[B] * K[C] */ |
229 | OP_MODK,/* A B C R(A) := R(B) % K(C) */ | 229 | OP_MODK,/* A B C R[A] := R[B] % K[C] */ |
230 | OP_POWK,/* A B C R(A) := R(B) ^ K(C) */ | 230 | OP_POWK,/* A B C R[A] := R[B] ^ K[C] */ |
231 | OP_DIVK,/* A B C R(A) := R(B) / K(C) */ | 231 | OP_DIVK,/* A B C R[A] := R[B] / K[C] */ |
232 | OP_IDIVK,/* A B C R(A) := R(B) // K(C) */ | 232 | OP_IDIVK,/* A B C R[A] := R[B] // K[C] */ |
233 | 233 | ||
234 | OP_BANDK,/* A B C R(A) := R(B) & K(C):integer */ | 234 | OP_BANDK,/* A B C R[A] := R[B] & K[C]:integer */ |
235 | OP_BORK,/* A B C R(A) := R(B) | K(C):integer */ | 235 | OP_BORK,/* A B C R[A] := R[B] | K[C]:integer */ |
236 | OP_BXORK,/* A B C R(A) := R(B) ~ K(C):integer */ | 236 | OP_BXORK,/* A B C R[A] := R[B] ~ K[C]:integer */ |
237 | 237 | ||
238 | OP_SHRI,/* A B sC R(A) := R(B) >> sC */ | 238 | OP_SHRI,/* A B sC R[A] := R[B] >> sC */ |
239 | OP_SHLI,/* A B sC R(A) := sC << R(B) */ | 239 | OP_SHLI,/* A B sC R[A] := sC << R[B] */ |
240 | 240 | ||
241 | OP_ADD,/* A B C R(A) := R(B) + R(C) */ | 241 | OP_ADD,/* A B C R[A] := R[B] + R[C] */ |
242 | OP_SUB,/* A B C R(A) := R(B) - R(C) */ | 242 | OP_SUB,/* A B C R[A] := R[B] - R[C] */ |
243 | OP_MUL,/* A B C R(A) := R(B) * R(C) */ | 243 | OP_MUL,/* A B C R[A] := R[B] * R[C] */ |
244 | OP_MOD,/* A B C R(A) := R(B) % R(C) */ | 244 | OP_MOD,/* A B C R[A] := R[B] % R[C] */ |
245 | OP_POW,/* A B C R(A) := R(B) ^ R(C) */ | 245 | OP_POW,/* A B C R[A] := R[B] ^ R[C] */ |
246 | OP_DIV,/* A B C R(A) := R(B) / R(C) */ | 246 | OP_DIV,/* A B C R[A] := R[B] / R[C] */ |
247 | OP_IDIV,/* A B C R(A) := R(B) // R(C) */ | 247 | OP_IDIV,/* A B C R[A] := R[B] // R[C] */ |
248 | 248 | ||
249 | OP_BAND,/* A B C R(A) := R(B) & R(C) */ | 249 | OP_BAND,/* A B C R[A] := R[B] & R[C] */ |
250 | OP_BOR,/* A B C R(A) := R(B) | R(C) */ | 250 | OP_BOR,/* A B C R[A] := R[B] | R[C] */ |
251 | OP_BXOR,/* A B C R(A) := R(B) ~ R(C) */ | 251 | OP_BXOR,/* A B C R[A] := R[B] ~ R[C] */ |
252 | OP_SHL,/* A B C R(A) := R(B) << R(C) */ | 252 | OP_SHL,/* A B C R[A] := R[B] << R[C] */ |
253 | OP_SHR,/* A B C R(A) := R(B) >> R(C) */ | 253 | OP_SHR,/* A B C R[A] := R[B] >> R[C] */ |
254 | 254 | ||
255 | OP_MMBIN,/* A B C call C metamethod over R(A) and R(B) */ | 255 | OP_MMBIN,/* A B C call C metamethod over R[A] and R[B] */ |
256 | OP_MMBINI,/* A sB C call C metamethod over R(A) and sB */ | 256 | OP_MMBINI,/* A sB C call C metamethod over R[A] and sB */ |
257 | OP_MMBINK,/* A B C call C metamethod over R(A) and K(B) */ | 257 | OP_MMBINK,/* A B C call C metamethod over R[A] and K[B] */ |
258 | 258 | ||
259 | OP_UNM,/* A B R(A) := -R(B) */ | 259 | OP_UNM,/* A B R[A] := -R[B] */ |
260 | OP_BNOT,/* A B R(A) := ~R(B) */ | 260 | OP_BNOT,/* A B R[A] := ~R[B] */ |
261 | OP_NOT,/* A B R(A) := not R(B) */ | 261 | OP_NOT,/* A B R[A] := not R[B] */ |
262 | OP_LEN,/* A B R(A) := length of R(B) */ | 262 | OP_LEN,/* A B R[A] := length of R[B] */ |
263 | 263 | ||
264 | OP_CONCAT,/* A B R(A) := R(A).. ... ..R(A + B - 1) */ | 264 | OP_CONCAT,/* A B R[A] := R[A].. ... ..R[A + B - 1] */ |
265 | 265 | ||
266 | OP_CLOSE,/* A close all upvalues >= R(A) */ | 266 | OP_CLOSE,/* A close all upvalues >= R[A] */ |
267 | OP_TBC,/* A mark variable A "to be closed" */ | 267 | OP_TBC,/* A mark variable A "to be closed" */ |
268 | OP_JMP,/* k sJ pc += sJ (k is used in code generation) */ | 268 | OP_JMP,/* sJ pc += sJ */ |
269 | OP_EQ,/* A B if ((R(A) == R(B)) ~= k) then pc++ */ | 269 | OP_EQ,/* A B if ((R[A] == R[B]) ~= k) then pc++ */ |
270 | OP_LT,/* A B if ((R(A) < R(B)) ~= k) then pc++ */ | 270 | OP_LT,/* A B if ((R[A] < R[B]) ~= k) then pc++ */ |
271 | OP_LE,/* A B if ((R(A) <= R(B)) ~= k) then pc++ */ | 271 | OP_LE,/* A B if ((R[A] <= R[B]) ~= k) then pc++ */ |
272 | 272 | ||
273 | OP_EQK,/* A B if ((R(A) == K(B)) ~= k) then pc++ */ | 273 | OP_EQK,/* A B if ((R[A] == K[B]) ~= k) then pc++ */ |
274 | OP_EQI,/* A sB if ((R(A) == sB) ~= k) then pc++ */ | 274 | OP_EQI,/* A sB if ((R[A] == sB) ~= k) then pc++ */ |
275 | OP_LTI,/* A sB if ((R(A) < sB) ~= k) then pc++ */ | 275 | OP_LTI,/* A sB if ((R[A] < sB) ~= k) then pc++ */ |
276 | OP_LEI,/* A sB if ((R(A) <= sB) ~= k) then pc++ */ | 276 | OP_LEI,/* A sB if ((R[A] <= sB) ~= k) then pc++ */ |
277 | OP_GTI,/* A sB if ((R(A) > sB) ~= k) then pc++ */ | 277 | OP_GTI,/* A sB if ((R[A] > sB) ~= k) then pc++ */ |
278 | OP_GEI,/* A sB if ((R(A) >= sB) ~= k) then pc++ */ | 278 | OP_GEI,/* A sB if ((R[A] >= sB) ~= k) then pc++ */ |
279 | 279 | ||
280 | OP_TEST,/* A if (not R(A) == k) then pc++ */ | 280 | OP_TEST,/* A if (not R[A] == k) then pc++ */ |
281 | OP_TESTSET,/* A B if (not R(B) == k) then pc++ else R(A) := R(B) */ | 281 | OP_TESTSET,/* A B if (not R[B] == k) then pc++ else R[A] := R[B] */ |
282 | 282 | ||
283 | OP_CALL,/* A B C R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */ | 283 | OP_CALL,/* A B C R[A], ... ,R[A+C-2] := R[A](R[A+1], ... ,R[A+B-1]) */ |
284 | OP_TAILCALL,/* A B C return R(A)(R(A+1), ... ,R(A+B-1)) */ | 284 | OP_TAILCALL,/* A B C return R[A](R[A+1], ... ,R[A+B-1]) */ |
285 | 285 | ||
286 | OP_RETURN,/* A B C return R(A), ... ,R(A+B-2) (see note) */ | 286 | OP_RETURN,/* A B C return R[A], ... ,R[A+B-2] (see note) */ |
287 | OP_RETURN0,/* return */ | 287 | OP_RETURN0,/* return */ |
288 | OP_RETURN1,/* A return R(A) */ | 288 | OP_RETURN1,/* A return R[A] */ |
289 | 289 | ||
290 | OP_FORLOOP,/* A Bx update counters; if loop continues then pc-=Bx; */ | 290 | OP_FORLOOP,/* A Bx update counters; if loop continues then pc-=Bx; */ |
291 | OP_FORPREP,/* A Bx <check values and prepare counters>; | 291 | OP_FORPREP,/* A Bx <check values and prepare counters>; |
292 | if not to run then pc+=Bx+1; */ | 292 | if not to run then pc+=Bx+1; */ |
293 | 293 | ||
294 | OP_TFORPREP,/* A Bx create upvalue for R(A + 3); pc+=Bx */ | 294 | OP_TFORPREP,/* A Bx create upvalue for R[A + 3]; pc+=Bx */ |
295 | OP_TFORCALL,/* A C R(A+4), ... ,R(A+3+C) := R(A)(R(A+1), R(A+2)); */ | 295 | OP_TFORCALL,/* A C R[A+4], ... ,R[A+3+C] := R[A](R[A+1], R[A+2]); */ |
296 | OP_TFORLOOP,/* A Bx if R(A+2) ~= nil then { R(A)=R(A+2); pc -= Bx } */ | 296 | OP_TFORLOOP,/* A Bx if R[A+2] ~= nil then { R[A]=R[A+2]; pc -= Bx } */ |
297 | 297 | ||
298 | OP_SETLIST,/* A B C R(A)[(C-1)*FPF+i] := R(A+i), 1 <= i <= B */ | 298 | OP_SETLIST,/* A B C R[A][(C-1)*FPF+i] := R[A+i], 1 <= i <= B */ |
299 | 299 | ||
300 | OP_CLOSURE,/* A Bx R(A) := closure(KPROTO[Bx]) */ | 300 | OP_CLOSURE,/* A Bx R[A] := closure(KPROTO[Bx]) */ |
301 | 301 | ||
302 | OP_VARARG,/* A C R(A), R(A+1), ..., R(A+C-2) = vararg */ | 302 | OP_VARARG,/* A C R[A], R[A+1], ..., R[A+C-2] = vararg */ |
303 | 303 | ||
304 | OP_VARARGPREP,/*A (adjust vararg parameters) */ | 304 | OP_VARARGPREP,/*A (adjust vararg parameters) */ |
305 | 305 | ||