aboutsummaryrefslogtreecommitdiff
path: root/lvm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* using jump tables when availableRoberto Ierusalimschy2018-03-021-1/+14
|
* better names for macros for tags and types.Roberto Ierusalimschy2018-02-261-5/+5
| | | | | rttype -> rawtt; ttyperaw -> withvariant; ttype -> ttypetag; tnov -> ttype
* first version of empty entries in tablesRoberto Ierusalimschy2018-02-231-10/+11
| | | | (so that, in the future, tables can contain regular nil entries)
* conditional jumps "deunified"Roberto Ierusalimschy2018-02-211-15/+28
| | | | (if a jump table is used, the unification may harm jump prediction.)
* new opcodes OP_GTI/OP_GEIRoberto Ierusalimschy2018-02-211-17/+28
|
* simpler implementation for 'LTintfloat'/'LEintfloat'Roberto Ierusalimschy2018-02-211-45/+71
| | | | + 'LTfloatint'/'LEfloatint'
* small reorganization of 'luaV_flttointeger'/'luaV_tointeger'Roberto Ierusalimschy2018-02-211-21/+27
|
* more generic way to handle 'gclist'Roberto Ierusalimschy2018-02-191-3/+3
|
* correct way to check stack space for vararg functionsRoberto Ierusalimschy2018-02-171-4/+4
|
* some simplifications/optimizations in returns from Lua functionsRoberto Ierusalimschy2018-02-151-34/+26
|
* vararg back to '...' (but with another implementation)Roberto Ierusalimschy2018-02-091-13/+27
| | | | new implementation should have zero overhead for non-vararg functions
* new opcode 'PREPVARARG'Roberto Ierusalimschy2018-02-071-4/+19
| | | | (avoids test for vararg function in all function calls)
* 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
|