Roberto Ierusalimschy
|
14c3aa12b5
|
more direct implementation for tail calls.
|
7 years ago |
Roberto Ierusalimschy
|
f3ca52bfa9
|
in order comparison opcodes, fast track for floats too
|
7 years ago |
Roberto Ierusalimschy
|
4c0e36a46e
|
new instruction 'OP_EQK' (for equality with constants)
|
7 years ago |
Roberto Ierusalimschy
|
5440b42f43
|
using 'trap' to stop 'luaV_execute' when necessary (tracing and
to update its copy of 'base' when the stack is reallocated)
|
7 years ago |
Roberto Ierusalimschy
|
32fef60743
|
detail ('Protect' defined as an expression)
|
7 years ago |
Roberto Ierusalimschy
|
26679ea35b
|
new function 'luaV_flttointeger' to convert floats to integers (without
string coercions) + string operands to bitwise operations handled
by string metamethods
|
7 years ago |
Roberto Ierusalimschy
|
c3e5946fb2
|
new format for JUMP instructions (to allow larger offsets)
|
7 years ago |
Roberto Ierusalimschy
|
ad0704e40c
|
back to 'CallInfo' (no gains with its removal)
|
7 years ago |
Roberto Ierusalimschy
|
93fd67b793
|
no more 'CallInfo' structure
|
7 years ago |
Roberto Ierusalimschy
|
7612f7735d
|
removing uses of 'CallInfo'
|
7 years ago |
Roberto Ierusalimschy
|
472c560705
|
no more useful fields in CallInfo
|
7 years ago |
Roberto Ierusalimschy
|
54eb35a8aa
|
more fields moved out of 'CallInfo'
|
7 years ago |
Roberto Ierusalimschy
|
b9e76be8a6
|
using 'L->func' when possible
|
7 years ago |
Roberto Ierusalimschy
|
c5482468fd
|
baby steps to remove 'CallInfo': keeping 'L->func' correct
|
7 years ago |
Roberto Ierusalimschy
|
a1ef58b3a5
|
eplicit 1-bit opcode operand 'k'
|
7 years ago |
Roberto Ierusalimschy
|
8fbe9e3470
|
new opcodes with immediate integer operand for all arithmetic operations
|
7 years ago |
Roberto Ierusalimschy
|
bc1b0733b8
|
avoid the use of bit 'Bk' ('B' will lose this bit soon)
|
7 years ago |
Roberto Ierusalimschy
|
722bdbe17d
|
no more 'getBMode'-'getCMode' (imprecise + we will need more space
for op mode) + better control of op modes
|
7 years ago |
Roberto Ierusalimschy
|
1b10033583
|
new function 'luaT_trybiniTM'
to handle tag methods for instructions with immediate integer arguments
|
7 years ago |
Roberto Ierusalimschy
|
00e728af88
|
binary operators use R instead of RK
faster + nobody uses RK(B), so B can be smaller (freeing one bit
for more opcodes, soon)
|
7 years ago |
Roberto Ierusalimschy
|
abb17cf19b
|
new opcode OP_LOADF (load immediate float)
|
7 years ago |
Roberto Ierusalimschy
|
80d9b09f35
|
jumps do not close upvalues (to be faster and simpler);
explicit instruction to close upvalues; command 'break' not
handled like a 'goto' (to optimize removal of uneeded 'close'
instructions)
|
7 years ago |
Roberto Ierusalimschy
|
ac65bab25f
|
jumps in 'for' loops don't need to be signed
|
7 years ago |
Roberto Ierusalimschy
|
4dff277255
|
coercion string->number in arithmetic operations moved to string
library
|
7 years ago |
Roberto Ierusalimschy
|
07db10813c
|
'OP_VARARG' has the vararg parameter as an operand
|
7 years ago |
Roberto Ierusalimschy
|
f96497397a
|
new type 'StackValue' for stack elements
(we may want to put extra info there in the future)
|
7 years ago |
Roberto Ierusalimschy
|
d13a3fb070
|
detail
(removed empty spaces at the end of lines)
|
8 years ago |
Roberto Ierusalimschy
|
b029e7ea20
|
macro 'luaV_fastget' may need protection ({}) to be used inside
'if's
|
8 years ago |
Roberto Ierusalimschy
|
c25380c28d
|
details (using proper version of 'setobj')
|
8 years ago |
Roberto Ierusalimschy
|
de74289049
|
table field names for dedicated opcodes can be restricted to
small strings for slightly faster access
|
8 years ago |
Roberto Ierusalimschy
|
92b3deaffa
|
details in OP_CALL + comments
|
8 years ago |
Roberto Ierusalimschy
|
6d95de83c6
|
no more field 'base' in CallInfo (base is always equal to 'func + 1',
with old/new vararg implementation)
|
8 years ago |
Roberto Ierusalimschy
|
5c8770f896
|
back to old-style vararg system (with vararg table collecting extra
arguments)
|
8 years ago |
Roberto Ierusalimschy
|
7647d5d13d
|
revamp of fast track for table access (table set uses the same
macros as table get + new macro for integer keys)
|
8 years ago |
Roberto Ierusalimschy
|
7184f6343a
|
more integer fast tracks (for OP_LT, OP_LE, OP_SETTABLE, and OP_GETTABLE)
|
8 years ago |
Roberto Ierusalimschy
|
ab5a650029
|
details (direct access to 'Ck' bit in instructions)
|
8 years ago |
Roberto Ierusalimschy
|
e8757a73e6
|
'luaV_execute' keeps local copy of program counter and hook mask,
to avoid excessive access to globals.
|
8 years ago |
Roberto Ierusalimschy
|
2376eb6347
|
barrier for prototype's cache (with new gray list 'protogray' to keep
prototypes to have their caches visited again) + constant 'MAXMISS'
|
8 years ago |
Roberto Ierusalimschy
|
8634b2a011
|
added 'cachemiss' field to prototype to avoid wasting time checking
hits that fail too often
|
8 years ago |
Roberto Ierusalimschy
|
502a1d1108
|
new opcodes for table access with constant keys (strings and integers)
|
8 years ago |
Roberto Ierusalimschy
|
173e41b2eb
|
new opcode OP_ADDI (for immediate integer operand) (Experimental)
|
8 years ago |
Roberto Ierusalimschy
|
cb3d5dce30
|
opcodes 'OP_GETTABUP'/'OP_SETTABUP' operate only with string keys,
so they can use fast-track table access
|
8 years ago |
Roberto Ierusalimschy
|
6a98aa0bb0
|
new opcode LOADI (for loading immediate integers)
|
8 years ago |
Roberto Ierusalimschy
|
a3d36fe283
|
Upvalues collected like everything else (with mark-sweep) instead
of reference count (simpler and better for generational mode)
|
8 years ago |
Roberto Ierusalimschy
|
2331e1beec
|
small changes in 'luaC_upvalbarrier'
|
8 years ago |
Roberto Ierusalimschy
|
fd51651684
|
new macro 'vmfetch' to help changing code to computed goto's (macro
abstracts the code to run before each instruction)
|
9 years ago |
Roberto Ierusalimschy
|
1a44e82200
|
'luaV_fastget' only treats the real fast case (table with a non-nil
value at given key, so that it does not need to check metamethods)
|
9 years ago |
Roberto Ierusalimschy
|
a272fa66f0
|
bug: Metatable may access its own dealocated field when
it has a self reference in __newindex + some refactoring
|
9 years ago |
Roberto Ierusalimschy
|
c5112f7b15
|
details (comments)
|
9 years ago |
Roberto Ierusalimschy
|
d103312661
|
details (typos in comments)
|
9 years ago |