aboutsummaryrefslogtreecommitdiff
path: root/lvm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* call hooks for Lua functions called by 'luaV_execute'Roberto Ierusalimschy2018-02-061-2/+5
|
* warnings in VS (implicit casts from ptrdiff_t to int)Roberto Ierusalimschy2018-01-291-2/+2
|
* OP_CONCAT does not move its result (to simplify its execution)Roberto Ierusalimschy2018-01-271-17/+7
|
* 'OP_TAILCALL' calling C functions finishes the call and returnsRoberto Ierusalimschy2018-01-141-5/+10
| | | | (instead of waiting for following 'OP_RETURN')
* 'luaD_tryfuncTM' can ensure it does not change the stackRoberto Ierusalimschy2018-01-101-4/+2
|
* avoid jumping into a variable scope (C++ does not allow that)Roberto Ierusalimschy2018-01-091-8/+8
|
* typos in commentsRoberto Ierusalimschy2017-12-301-2/+2
|
* keep control of stack top in Lua functions concentrated in 'luaV_execute'Roberto Ierusalimschy2017-12-281-17/+29
|
* new macros 'isOT'/'isIT'Roberto Ierusalimschy2017-12-221-4/+4
| | | | | (plus exchanged parameters of OP_VARARG to make it similar to other 'isOT' instructions)
* when running Lua code, there is no need to keep 'L->top' "correct";Roberto Ierusalimschy2017-12-201-20/+6
| | | | set it only when needed.
* no need to save 'pc' in case of allocation errorsRoberto Ierusalimschy2017-12-191-3/+1
| | | | (allocation errors do not call message handlers)
* new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variableRoberto Ierusalimschy2017-12-181-1/+27
| | | | with increment of 1)
* new opcodes BANDK/BORK/BXORK. (They do not use immediate operandsRoberto Ierusalimschy2017-12-131-1/+35
| | | | | because, too often, masks in bitwise operations are integers larger than one byte.)
* 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)