diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-10-24 16:40:29 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-10-24 16:40:29 -0200 |
commit | 18cd7adac6e5745cad93fecacbe6a2ed16dd3e18 (patch) | |
tree | 5f21e7ec2add2058933cebff6e575a107a2e2771 /lvm.c | |
parent | 41223a01eccafa03990ca6d89124b0955001a9ce (diff) | |
download | lua-18cd7adac6e5745cad93fecacbe6a2ed16dd3e18.tar.gz lua-18cd7adac6e5745cad93fecacbe6a2ed16dd3e18.tar.bz2 lua-18cd7adac6e5745cad93fecacbe6a2ed16dd3e18.zip |
optimization to handle <a.x> (new opcode).
Diffstat (limited to 'lvm.c')
-rw-r--r-- | lvm.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lvm.c,v 1.10 1997/10/16 10:59:34 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.11 1997/10/24 17:17:24 roberto Exp roberto $ |
3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -335,6 +335,20 @@ StkId luaV_execute (Closure *cl, StkId base) | |||
335 | luaV_gettable(); | 335 | luaV_gettable(); |
336 | break; | 336 | break; |
337 | 337 | ||
338 | case GETDOTTEDW: | ||
339 | aux = next_word(pc); goto getdotted; | ||
340 | |||
341 | case GETDOTTED: | ||
342 | aux = *pc++; goto getdotted; | ||
343 | |||
344 | case GETDOTTED0: case GETDOTTED1: case GETDOTTED2: case GETDOTTED3: | ||
345 | case GETDOTTED4: case GETDOTTED5: case GETDOTTED6: case GETDOTTED7: | ||
346 | aux -= GETDOTTED0; | ||
347 | getdotted: | ||
348 | *luaD_stack.top++ = consts[aux]; | ||
349 | luaV_gettable(); | ||
350 | break; | ||
351 | |||
338 | case PUSHSELFW: | 352 | case PUSHSELFW: |
339 | aux = next_word(pc); goto pushself; | 353 | aux = next_word(pc); goto pushself; |
340 | 354 | ||