aboutsummaryrefslogtreecommitdiff
path: root/ltests.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-27 11:24:27 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-27 11:24:27 -0300
commit9904c253da9690728710082cfb94654709ab89e7 (patch)
treef556ebbf8d99baa37ea8e39608a3d6bea77f8267 /ltests.c
parentfb7e5b76c9d41108c399cf4d16470018b717007b (diff)
downloadlua-9904c253da9690728710082cfb94654709ab89e7.tar.gz
lua-9904c253da9690728710082cfb94654709ab89e7.tar.bz2
lua-9904c253da9690728710082cfb94654709ab89e7.zip
Flexible limit for use of registers by constructors
Instead of a fixed limit of 50 registers (which, in a bad worst case, can limit the nesting of constructors to 5 levels), the compiler computes an individual limit for each constructor based on how many registers are available when it runs. This limit then controls the frequency of SETLIST instructions.
Diffstat (limited to 'ltests.c')
-rw-r--r--ltests.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/ltests.c b/ltests.c
index 1f69fe03..2b8db375 100644
--- a/ltests.c
+++ b/ltests.c
@@ -835,7 +835,6 @@ static int get_limits (lua_State *L) {
835 setnameval(L, "MAXARG_Ax", MAXARG_Ax); 835 setnameval(L, "MAXARG_Ax", MAXARG_Ax);
836 setnameval(L, "MAXARG_Bx", MAXARG_Bx); 836 setnameval(L, "MAXARG_Bx", MAXARG_Bx);
837 setnameval(L, "OFFSET_sBx", OFFSET_sBx); 837 setnameval(L, "OFFSET_sBx", OFFSET_sBx);
838 setnameval(L, "LFPF", LFIELDS_PER_FLUSH);
839 setnameval(L, "NUM_OPCODES", NUM_OPCODES); 838 setnameval(L, "NUM_OPCODES", NUM_OPCODES);
840 return 1; 839 return 1;
841} 840}