diff options
| author | Roberto I <roberto@inf.puc-rio.br> | 2025-11-26 11:18:29 -0300 |
|---|---|---|
| committer | Roberto I <roberto@inf.puc-rio.br> | 2025-11-26 11:18:29 -0300 |
| commit | f33cc4ddec886ea499d7d41dd60cac5ddc5687db (patch) | |
| tree | 917dccdbb60f984b21f5f7e1c0c3aa4f4f758ddc /lopcodes.h | |
| parent | d94f7ba3040eb06895d7305014e88157d3bfd1a1 (diff) | |
| download | lua-f33cc4ddec886ea499d7d41dd60cac5ddc5687db.tar.gz lua-f33cc4ddec886ea499d7d41dd60cac5ddc5687db.tar.bz2 lua-f33cc4ddec886ea499d7d41dd60cac5ddc5687db.zip | |
New conceptual model for vararg
Conceptually, all functions get their vararg arguments in a vararg
table. The storing of vararg arguments in the stack is always treated
as an optimization.
Diffstat (limited to 'lopcodes.h')
| -rw-r--r-- | lopcodes.h | 2 |
1 files changed, 1 insertions, 1 deletions
| @@ -336,7 +336,7 @@ OP_SETLIST,/* A vB vC k R[A][vC+i] := R[A+i], 1 <= i <= vB */ | |||
| 336 | 336 | ||
| 337 | OP_CLOSURE,/* A Bx R[A] := closure(KPROTO[Bx]) */ | 337 | OP_CLOSURE,/* A Bx R[A] := closure(KPROTO[Bx]) */ |
| 338 | 338 | ||
| 339 | OP_VARARG,/* A C R[A], R[A+1], ..., R[A+C-2] = vararg */ | 339 | OP_VARARG,/* A C R[A], ..., R[A+C-2] = vararg, R[B] is vararg param. */ |
| 340 | 340 | ||
| 341 | OP_GETVARG, /* A B C R[A] := R[B][R[C]], R[B] is vararg parameter */ | 341 | OP_GETVARG, /* A B C R[A] := R[B][R[C]], R[B] is vararg parameter */ |
| 342 | 342 | ||
