aboutsummaryrefslogtreecommitdiff
path: root/lvm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* detailsRoberto Ierusalimschy2018-08-171-6/+6
| | | | | Minor optimizations in 'lvm.c'. (Not exactly optimizations, but more chances for optimizations.)
* Fixed bug in OP_IDIVIRoberto Ierusalimschy2018-07-091-2/+2
| | | | | Opocode was using 'luai_numdiv' (float division) instead of 'luai_numidiv' (integer division).
* in generational mode, an emergency collection can turn any object blackRoberto Ierusalimschy2018-06-181-3/+3
| | | | | | during any memory allocation + 'luaT_getvarargs' may reallocate the stack, and therefore the top must be correct.
* field 'sizearray' in struct 'Table' changed to 'alimit', which canRoberto Ierusalimschy2018-06-151-2/+2
| | | | be used as a hint for '#t'
* no more 'luaH_emptyobject' and comparisons of addresses of global variablesRoberto Ierusalimschy2018-06-011-5/+5
| | | | | (instead, use a different kind of nil to signal the fake entry returned when a key is not found in a table)
* new macros 'likely'/'unlikely' with hints for jump predictionsRoberto Ierusalimschy2018-05-301-11/+11
| | | | (used only in errors for now)
* in 'luaD_poscall', there is no need to compute 'firstResult' when 'nres==0'Roberto Ierusalimschy2018-05-221-9/+16
|
* minimizing the code ran by 'vmfetch' + no more 'vra'Roberto Ierusalimschy2018-05-021-113/+109
| | | | (the code is simpler without 'vra' and conversion is a no-op)
* no more nil-in-tableRoberto Ierusalimschy2018-04-041-14/+1
|
* using unsigned comparison in 'l_intfitsf' (avoids one comparison)Roberto Ierusalimschy2018-04-021-9/+13
|
* cannot use 'defined' inside a macro +Roberto Ierusalimschy2018-03-161-3/+8
| | | | call to 'luaT_keydef' must be protected
* new experimental syntax using reserved word 'undef'Roberto Ierusalimschy2018-03-071-1/+13
|
* 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
|