diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-26 14:46:44 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-26 14:46:44 -0300 |
| commit | fb7e5b76c9d41108c399cf4d16470018b717007b (patch) | |
| tree | cfc2b875d139727f1847100d8ae0950bee3d4f56 /lopcodes.h | |
| parent | c1dc08e8e8e22af9902a6341b4a9a9a7811954cc (diff) | |
| download | lua-fb7e5b76c9d41108c399cf4d16470018b717007b.tar.gz lua-fb7e5b76c9d41108c399cf4d16470018b717007b.tar.bz2 lua-fb7e5b76c9d41108c399cf4d16470018b717007b.zip | |
Clearer code for controlling maximum registers
Plus, added a test to check that limit.
Diffstat (limited to 'lopcodes.h')
| -rw-r--r-- | lopcodes.h | 17 |
1 files changed, 12 insertions, 5 deletions
| @@ -23,9 +23,9 @@ iAsBx sBx (signed)(17) | A(8) | Op(7) | | |||
| 23 | iAx Ax(25) | Op(7) | | 23 | iAx Ax(25) | Op(7) | |
| 24 | isJ sJ (signed)(25) | Op(7) | | 24 | isJ sJ (signed)(25) | Op(7) | |
| 25 | 25 | ||
| 26 | A signed argument is represented in excess K: the represented value is | 26 | A signed argument is represented in excess K: The represented value is |
| 27 | the written unsigned value minus K, where K is half the maximum for the | 27 | the written unsigned value minus K, where K is half (rounded down) the |
| 28 | corresponding unsigned argument. | 28 | maximum value for the corresponding unsigned argument. |
| 29 | ===========================================================================*/ | 29 | ===========================================================================*/ |
| 30 | 30 | ||
| 31 | 31 | ||
| @@ -177,9 +177,16 @@ enum OpMode {iABC, iABx, iAsBx, iAx, isJ}; /* basic instruction formats */ | |||
| 177 | 177 | ||
| 178 | 178 | ||
| 179 | /* | 179 | /* |
| 180 | ** invalid register that fits in 8 bits | 180 | ** Maximum size for the stack of a Lua function. It must fit in 8 bits. |
| 181 | ** The highest valid register is one less than this value. | ||
| 181 | */ | 182 | */ |
| 182 | #define NO_REG MAXARG_A | 183 | #define MAX_FSTACK MAXARG_A |
| 184 | |||
| 185 | /* | ||
| 186 | ** Invalid register (one more than last valid register). | ||
| 187 | */ | ||
| 188 | #define NO_REG MAX_FSTACK | ||
| 189 | |||
| 183 | 190 | ||
| 184 | 191 | ||
| 185 | /* | 192 | /* |
