aboutsummaryrefslogtreecommitdiff
path: root/lvm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* new opcodes OP_SHLI/OP_SHRIRoberto Ierusalimschy2017-12-041-2/+30
|
* small peephole optimizationsRoberto Ierusalimschy2017-11-301-5/+5
|
* new opcodes OP_RETURN0/OP_RETURN1Roberto Ierusalimschy2017-11-291-13/+56
|
* 'luaV_execute' gets call info as extra argument (it is alwaysRoberto Ierusalimschy2017-11-291-3/+2
| | | | available on call sites)
* conditional jumps unified in label "condjump' + new variable 'vra'Roberto Ierusalimschy2017-11-281-128/+106
| | | | to avoid excessive use of macro 's2v'
* using register 'k' for conditions in tests (we only need one bit there)Roberto Ierusalimschy2017-11-281-44/+44
|
* new opcodes 'OP_LTI' and 'OP_LEI'Roberto Ierusalimschy2017-11-271-8/+45
|
* small simplifications around 'luaT_callorderTM'Roberto Ierusalimschy2017-11-231-17/+6
|
* no more 'stackless' implementation; 'luaV_execute' calls itselfRoberto Ierusalimschy2017-11-231-38/+22
| | | | | recursively to execute function calls. 'unroll' continues all executions suspended by an yield (through a long jump)
* using 'A' for register instead of 'B' in relational opcodesRoberto Ierusalimschy2017-11-221-25/+20
| | | | ('R(A)' is already created by default for all instructions.)
* new opcode 'OP_EQI' for equality with immediate numbersRoberto Ierusalimschy2017-11-221-1/+12
|
* more direct implementation for tail calls.Roberto Ierusalimschy2017-11-211-25/+17
|
* in order comparison opcodes, fast track for floats tooRoberto Ierusalimschy2017-11-201-18/+42
|
* new instruction 'OP_EQK' (for equality with constants)Roberto Ierusalimschy2017-11-161-1/+11
|
* using 'trap' to stop 'luaV_execute' when necessary (tracing andRoberto Ierusalimschy2017-11-131-17/+30
| | | | to update its copy of 'base' when the stack is reallocated)
* detail ('Protect' defined as an expression)Roberto Ierusalimschy2017-11-081-36/+45
|
* new function 'luaV_flttointeger' to convert floats to integers (withoutRoberto Ierusalimschy2017-11-081-25/+35
| | | | | string coercions) + string operands to bitwise operations handled by string metamethods
* new format for JUMP instructions (to allow larger offsets)Roberto Ierusalimschy2017-11-071-2/+2
|
* back to 'CallInfo' (no gains with its removal)Roberto Ierusalimschy2017-11-071-67/+66
|
* no more 'CallInfo' structureRoberto Ierusalimschy2017-11-041-7/+2
|
* removing uses of 'CallInfo'Roberto Ierusalimschy2017-11-031-13/+11
|
* no more useful fields in CallInfoRoberto Ierusalimschy2017-11-031-22/+25
|
* more fields moved out of 'CallInfo'Roberto Ierusalimschy2017-11-031-25/+29
|
* using 'L->func' when possibleRoberto Ierusalimschy2017-11-011-13/+12
|
* baby steps to remove 'CallInfo': keeping 'L->func' correctRoberto Ierusalimschy2017-10-311-1/+2
|
* eplicit 1-bit opcode operand 'k'Roberto Ierusalimschy2017-10-041-11/+11
|
* new opcodes with immediate integer operand for all arithmetic operationsRoberto Ierusalimschy2017-10-041-2/+89
|
* avoid the use of bit 'Bk' ('B' will lose this bit soon)Roberto Ierusalimschy2017-10-011-4/+4
|
* no more 'getBMode'-'getCMode' (imprecise + we will need more spaceRoberto Ierusalimschy2017-09-281-11/+8
| | | | for op mode) + better control of op modes
* new function 'luaT_trybiniTM'Roberto Ierusalimschy2017-09-271-10/+3
| | | | to handle tag methods for instructions with immediate integer arguments
* binary operators use R instead of RKRoberto Ierusalimschy2017-09-261-33/+31
| | | | | faster + nobody uses RK(B), so B can be smaller (freeing one bit for more opcodes, soon)
* new opcode OP_LOADF (load immediate float)Roberto Ierusalimschy2017-09-191-1/+6
|
* jumps do not close upvalues (to be faster and simpler);Roberto Ierusalimschy2017-09-131-5/+6
| | | | | | explicit instruction to close upvalues; command 'break' not handled like a 'goto' (to optimize removal of uneeded 'close' instructions)
* jumps in 'for' loops don't need to be signedRoberto Ierusalimschy2017-08-141-5/+5
|
* coercion string->number in arithmetic operations moved to stringRoberto Ierusalimschy2017-07-071-11/+10
| | | | library
* 'OP_VARARG' has the vararg parameter as an operandRoberto Ierusalimschy2017-06-291-2/+2
|
* new type 'StackValue' for stack elementsRoberto Ierusalimschy2017-06-291-102/+107
| | | | (we may want to put extra info there in the future)
* detailRoberto Ierusalimschy2017-06-091-2/+2
| | | | (removed empty spaces at the end of lines)
* macro 'luaV_fastget' may need protection ({}) to be used insideRoberto Ierusalimschy2017-06-011-5/+9
| | | | 'if's
* details (using proper version of 'setobj')Roberto Ierusalimschy2017-05-231-3/+3
|
* table field names for dedicated opcodes can be restricted toRoberto Ierusalimschy2017-05-181-5/+5
| | | | small strings for slightly faster access
* details in OP_CALL + commentsRoberto Ierusalimschy2017-05-181-9/+12
|
* no more field 'base' in CallInfo (base is always equal to 'func + 1',Roberto Ierusalimschy2017-05-131-12/+11
| | | | with old/new vararg implementation)
* back to old-style vararg system (with vararg table collecting extraRoberto Ierusalimschy2017-05-131-15/+3
| | | | arguments)
* revamp of fast track for table access (table set uses the sameRoberto Ierusalimschy2017-05-111-51/+36
| | | | macros as table get + new macro for integer keys)
* more integer fast tracks (for OP_LT, OP_LE, OP_SETTABLE, and OP_GETTABLE)Roberto Ierusalimschy2017-05-101-17/+51
|
* details (direct access to 'Ck' bit in instructions)Roberto Ierusalimschy2017-05-081-3/+3
|
* 'luaV_execute' keeps local copy of program counter and hook mask,Roberto Ierusalimschy2017-05-051-29/+62
| | | | to avoid excessive access to globals.
* barrier for prototype's cache (with new gray list 'protogray' to keepRoberto Ierusalimschy2017-05-041-7/+5
| | | | prototypes to have their caches visited again) + constant 'MAXMISS'
* added 'cachemiss' field to prototype to avoid wasting time checkingRoberto Ierusalimschy2017-04-301-3/+9
| | | | hits that fail too often