aboutsummaryrefslogtreecommitdiff
path: root/lcode.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Added gcc option '-Wconversion'Roberto Ierusalimschy2024-07-271-1/+1
| | | | | No warnings for standard numerical types. Still pending alternative numerical types.
* New instruction format for SETLIST/NEWTABLERoberto Ierusalimschy2024-06-281-2/+4
| | | | | | New instruction format 'ivABC' (a variant of iABC where parameter vC has 10 bits) allows constructors of up to 1024 elements to be coded without EXTRAARG.
* Some 'unsigned int' changed to 'unsigned'Roberto Ierusalimschy2024-03-221-1/+1
| | | | | 'unsigned int' is too long sometimes. (We already write 'long' instead of 'long int'...)
* Several functions turned 'static'Roberto Ierusalimschy2023-05-221-3/+0
| | | | | Several functions that were already being used only inside their own file have been declared as 'static'.
* DetailsRoberto Ierusalimschy2020-02-271-1/+1
| | | | | Several details in code (e.g., moving a variable to the most inner scope that encloses its uses), comments, parameter names, extra tests.
* Simplification in the call to 'constfolding'Roberto Ierusalimschy2019-09-111-2/+10
|
* New kind of expression VKSTRRoberto Ierusalimschy2019-07-171-1/+0
| | | | | | | String literal expressions have their own kind VKSTR, instead of the generic VK. This allows strings to "cross" functions without entering their constant tables (e.g., if they are used only by some nested function).
* Unification of size representation in OP_NEWTABLE and OP_SETLISTRoberto Ierusalimschy2019-07-151-1/+3
| | | | | | Opcodes OP_NEWTABLE and OP_SETLIST use the same representation to store the size of the array part of a table. This new representation can go up to 2^33 (8 + 25 bits).
* OP_NEWTABLE keeps exact size of arraysRoberto Ierusalimschy2019-07-121-0/+1
| | | | | | OP_NEWTABLE is followed by an OP_EXTRAARG, so that it can keep the exact size of the array part of the table to be created. (Functions 'luaO_int2fb'/'luaO_fb2int' were removed.)
* First implementation of constant propagationRoberto Ierusalimschy2019-07-121-0/+1
| | | | | Local constant variables initialized with compile-time constants are optimized away from the code.
* New implementation for constantsRoberto Ierusalimschy2019-07-091-1/+0
| | | | | | | | | VLOCAL expressions keep a reference to their corresponding 'Vardesc', and 'Upvaldesc' (for upvalues) has a field 'ro' (read-only). So, it is easier to check whether a variable is read-only. The decoupling in VLOCAL between 'vidx' ('Vardesc' index) and 'sidx' (stack index) should also help the forthcoming implementation of compile-time constant propagation.
* First take on constant propagationRoberto Ierusalimschy2019-07-011-0/+1
|
* Big revamp in the implmentation of labels/gotosRoberto Ierusalimschy2018-10-291-3/+0
| | | | | | | | Added restriction that, when a label is created, there cannot be another label with the same name visible. That allows backward goto's to be resolved when they are read. Backward goto's get a close if they jump out of the scope of some variable; labels get a close only if previous goto to it jumps out of the scope of some upvalue.
* Removed extra information from RCS keyword stringsRoberto Ierusalimschy2018-08-231-1/+1
| | | | | Version numbers and dates (mostly wrong) from RCS keyword strings removed from all source files; only the file name are kept.
* no more nil-in-tableRoberto Ierusalimschy2018-04-041-2/+1
|
* missing LUAI_FUNC in prototype for 'luaK_patchgoto'Roberto Ierusalimschy2018-03-191-2/+3
|
* new experimental syntax using reserved word 'undef'Roberto Ierusalimschy2018-03-071-1/+3
|
* new auxiliary function 'luaK_isKint' + removal of 'luaK_needclose',Roberto Ierusalimschy2017-12-181-2/+2
| | | | which was not being used anywhere.
* small peephole optimizationsRoberto Ierusalimschy2017-11-301-1/+2
|
* eplicit 1-bit opcode operand 'k'Roberto Ierusalimschy2017-10-041-2/+6
|
* no more 'getBMode'-'getCMode' (imprecise + we will need more spaceRoberto Ierusalimschy2017-09-281-2/+2
| | | | for op mode) + better control of op modes
* jumps do not close upvalues (to be faster and simpler);Roberto Ierusalimschy2017-09-131-2/+4
| | | | | | explicit instruction to close upvalues; command 'break' not handled like a 'goto' (to optimize removal of uneeded 'close' instructions)
* new opcode LOADI (for loading immediate integers)Roberto Ierusalimschy2017-04-201-3/+2
|
* 'getcode' -> 'getinstruction'Roberto Ierusalimschy2016-01-051-2/+3
|
* first implementation of '<<', '>>', and '~' (bitwise not)Roberto Ierusalimschy2013-12-301-2/+3
|
* first implementation of bitwise operators '&' (band), '|' (bor),Roberto Ierusalimschy2013-12-181-1/+2
| | | | and '~' (bxor)
* new order for binary operations (grouping them by type of result)Roberto Ierusalimschy2013-12-161-2/+4
|
* new operation '//' (integer division)Roberto Ierusalimschy2013-04-261-2/+2
|
* default increment for 'for' loop is an integer (1, not 1.0)Roberto Ierusalimschy2013-04-251-2/+2
|
* 'luaK_goiffalse' exportedRoberto Ierusalimschy2011-08-301-1/+2
|
* new instruction OP_LOADKX (to replace OP_LOADK with extra argument)Roberto Ierusalimschy2011-04-071-4/+2
|
* new scheme to close upvalues in 'break'; jump instructions mayRoberto Ierusalimschy2011-02-011-1/+2
| | | | do the close, avoiding the need for a OP_CLOSE instruction
* better organization for fields in struct 'expdesc'Roberto Ierusalimschy2010-07-021-2/+2
|
* better line numbers for function calls and unary/binary operators +Roberto Ierusalimschy2010-04-171-3/+4
| | | | null statement + no more "ambiguous syntax" restriction
* new instructions to optimize indexing on upvaluesRoberto Ierusalimschy2010-02-261-1/+2
|
* limit of constants per function changed to 2^26 using extra argumentsRoberto Ierusalimschy2009-09-231-2/+4
| | | | to opcodes LOADK, GETGLOBAL, and SETGLOBAL
* small optimization (reorder of BinOpr enum to unify some casesRoberto Ierusalimschy2009-06-181-4/+4
| | | | in switches)
* new function 'luaK_codek' (detail)Roberto Ierusalimschy2009-06-101-1/+2
|
* some cleaningRoberto Ierusalimschy2008-10-281-1/+3
|
* unused macroRoberto Ierusalimschy2006-03-211-2/+1
|
* more privacyRoberto Ierusalimschy2005-11-081-3/+1
|
* numeral expressions keep their values in struct 'expdesc'Roberto Ierusalimschy2005-10-031-3/+3
|
* new method to handle tests without values (negative values)Roberto Ierusalimschy2005-08-291-1/+2
|
* detailsRoberto Ierusalimschy2005-05-201-2/+2
|
* added LUAI_FUNC to functions not in the APIRoberto Ierusalimschy2005-04-251-31/+31
|
* new operation *t (for size of t) (may yet be removed...)Roberto Ierusalimschy2005-03-161-2/+2
|
* new `mod' (`%') operatorRoberto Ierusalimschy2005-03-081-2/+2
|
* small optimization for boolean constants + new format for SETLIST opcodeRoberto Ierusalimschy2004-10-041-1/+2
|
* new way to use `vararg' parameters (with `...')Roberto Ierusalimschy2004-05-311-2/+5
|
* OP_TFORLOOP uses extra stack spaceRoberto Ierusalimschy2002-12-111-1/+2
|