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 '')
| -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 | ||
