Roberto Ierusalimschy
|
0682fe8169
|
some simplifications/optimizations in returns from Lua functions
|
2018-02-15 13:34:29 -02:00 |
|
Roberto Ierusalimschy
|
b1379936cf
|
vararg back to '...' (but with another implementation)
new implementation should have zero overhead for non-vararg functions
|
2018-02-09 13:16:06 -02:00 |
|
Roberto Ierusalimschy
|
318a9a5859
|
new opcode 'PREPVARARG'
(avoids test for vararg function in all function calls)
|
2018-02-07 13:18:04 -02:00 |
|
Roberto Ierusalimschy
|
73d797ce7e
|
detail
(order of 'OT' and 'IT' bits corresponds with macro 'opmode')
|
2018-02-07 13:04:41 -02:00 |
|
Roberto Ierusalimschy
|
e2b15aa21d
|
janitor work on casts
|
2018-01-28 13:13:26 -02:00 |
|
Roberto Ierusalimschy
|
5bd8d388de
|
OP_CONCAT does not move its result (to simplify its execution)
|
2018-01-27 14:56:33 -02:00 |
|
Roberto Ierusalimschy
|
33e3774f44
|
keep more opcode arguments byte-aligned
|
2018-01-09 09:24:12 -02:00 |
|
Roberto Ierusalimschy
|
4676f6599e
|
new macros 'isOT'/'isIT'
(plus exchanged parameters of OP_VARARG to make it similar to other
'isOT' instructions)
|
2017-12-22 12:16:46 -02:00 |
|
Roberto Ierusalimschy
|
d388c165ef
|
new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variable
with increment of 1)
|
2017-12-18 15:53:50 -02:00 |
|
Roberto Ierusalimschy
|
f8c1c1469a
|
some cleaning on signed opcode parameters
|
2017-12-15 16:53:48 -02:00 |
|
Roberto Ierusalimschy
|
4b6928e7f5
|
(1 << 31) with signed integer has undefined behavior in C
|
2017-12-15 16:35:22 -02:00 |
|
Roberto Ierusalimschy
|
86431a2f1c
|
new opcodes BANDK/BORK/BXORK. (They do not use immediate operands
because, too often, masks in bitwise operations are integers larger
than one byte.)
|
2017-12-13 16:32:09 -02:00 |
|
Roberto Ierusalimschy
|
c7ee7fe026
|
new opcodes OP_SHLI/OP_SHRI
|
2017-12-04 15:41:30 -02:00 |
|
Roberto Ierusalimschy
|
bdc751ce23
|
details (comments)
|
2017-11-30 11:16:43 -02:00 |
|
Roberto Ierusalimschy
|
19c6b375c3
|
detail (spacing)
|
2017-11-30 10:03:00 -02:00 |
|
Roberto Ierusalimschy
|
745eb41993
|
new opcodes OP_RETURN0/OP_RETURN1
|
2017-11-29 14:57:36 -02:00 |
|
Roberto Ierusalimschy
|
ff5fe51044
|
using register 'k' for conditions in tests (we only need one bit there)
|
2017-11-28 10:58:18 -02:00 |
|
Roberto Ierusalimschy
|
093c16b67b
|
new opcodes 'OP_LTI' and 'OP_LEI'
|
2017-11-27 15:44:31 -02:00 |
|
Roberto Ierusalimschy
|
3c230cc825
|
using 'A' for register instead of 'B' in relational opcodes
('R(A)' is already created by default for all instructions.)
|
2017-11-22 17:15:44 -02:00 |
|
Roberto Ierusalimschy
|
41f2936d8f
|
new opcode 'OP_EQI' for equality with immediate numbers
|
2017-11-22 16:41:20 -02:00 |
|
Roberto Ierusalimschy
|
4c0e36a46e
|
new instruction 'OP_EQK' (for equality with constants)
|
2017-11-16 10:59:14 -02:00 |
|
Roberto Ierusalimschy
|
c3e5946fb2
|
new format for JUMP instructions (to allow larger offsets)
|
2017-11-07 15:20:42 -02:00 |
|
Roberto Ierusalimschy
|
a1ef58b3a5
|
eplicit 1-bit opcode operand 'k'
|
2017-10-04 18:56:32 -03:00 |
|
Roberto Ierusalimschy
|
8fbe9e3470
|
new opcodes with immediate integer operand for all arithmetic operations
|
2017-10-04 12:49:24 -03:00 |
|
Roberto Ierusalimschy
|
940472c75c
|
opcode size increased to 7 bits
|
2017-10-02 19:51:32 -03:00 |
|
Roberto Ierusalimschy
|
bc1b0733b8
|
avoid the use of bit 'Bk' ('B' will lose this bit soon)
|
2017-10-01 16:13:43 -03:00 |
|
Roberto Ierusalimschy
|
722bdbe17d
|
no more 'getBMode'-'getCMode' (imprecise + we will need more space
for op mode) + better control of op modes
|
2017-09-28 13:53:29 -03:00 |
|
Roberto Ierusalimschy
|
00e728af88
|
binary operators use R instead of RK
faster + nobody uses RK(B), so B can be smaller (freeing one bit
for more opcodes, soon)
|
2017-09-26 15:14:45 -03:00 |
|
Roberto Ierusalimschy
|
abb17cf19b
|
new opcode OP_LOADF (load immediate float)
|
2017-09-19 15:38:14 -03:00 |
|
Roberto Ierusalimschy
|
e0c0e2ee14
|
comments (documentation about instruction formats)
|
2017-09-18 13:07:54 -03:00 |
|
Roberto Ierusalimschy
|
022e4427cf
|
detail (keep OP_LOADK and OP_LOADKX together)
|
2017-09-15 11:19:06 -03:00 |
|
Roberto Ierusalimschy
|
80d9b09f35
|
jumps do not close upvalues (to be faster and simpler);
explicit instruction to close upvalues; command 'break' not
handled like a 'goto' (to optimize removal of uneeded 'close'
instructions)
|
2017-09-13 16:50:08 -03:00 |
|
Roberto Ierusalimschy
|
ac65bab25f
|
jumps in 'for' loops don't need to be signed
|
2017-08-14 15:33:14 -03:00 |
|
Roberto Ierusalimschy
|
07db10813c
|
'OP_VARARG' has the vararg parameter as an operand
|
2017-06-29 12:38:41 -03:00 |
|
Roberto Ierusalimschy
|
ab5a650029
|
details (direct access to 'Ck' bit in instructions)
|
2017-05-08 13:08:01 -03:00 |
|
Roberto Ierusalimschy
|
502a1d1108
|
new opcodes for table access with constant keys (strings and integers)
|
2017-04-28 17:57:45 -03:00 |
|
Roberto Ierusalimschy
|
173e41b2eb
|
new opcode OP_ADDI (for immediate integer operand) (Experimental)
|
2017-04-26 14:46:52 -03:00 |
|
Roberto Ierusalimschy
|
cb3d5dce30
|
opcodes 'OP_GETTABUP'/'OP_SETTABUP' operate only with string keys,
so they can use fast-track table access
|
2017-04-24 17:26:39 -03:00 |
|
Roberto Ierusalimschy
|
6a98aa0bb0
|
new opcode LOADI (for loading immediate integers)
|
2017-04-20 16:53:55 -03:00 |
|
Roberto Ierusalimschy
|
0d1c6f4188
|
MAXINDEXRK can be redefined (for debugging, to force most values to
go through registers)
|
2016-07-19 14:12:21 -03:00 |
|
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
2014-10-25 09:50:46 -02:00 |
|
Roberto Ierusalimschy
|
b8d412aa07
|
error in comment
|
2014-10-20 16:29:55 -02:00 |
|
Roberto Ierusalimschy
|
1ea2d20f74
|
first implementation of '<<', '>>', and '~' (bitwise not)
|
2013-12-30 18:47:58 -02:00 |
|
Roberto Ierusalimschy
|
c0edab0f6d
|
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
|
2013-12-18 12:12:03 -02:00 |
|
Roberto Ierusalimschy
|
a948054a19
|
new order for binary operations (grouping them by type of result)
|
2013-12-16 17:06:52 -02:00 |
|
Roberto Ierusalimschy
|
a2f5c28a80
|
new operation '//' (integer division)
|
2013-04-26 10:08:29 -03:00 |
|
Roberto Ierusalimschy
|
32a12e2f3f
|
detail (cleaned whitespaces at end of lines)
|
2011-07-15 09:50:29 -03:00 |
|
Roberto Ierusalimschy
|
4758113043
|
change in opcode OP_LOADNIL: B is used as a counter instead of a
register. (Avoids an assignment to R(B), not present in any other
instruction.)
|
2011-04-19 13:22:13 -03:00 |
|
Roberto Ierusalimschy
|
427ee519db
|
new instruction OP_LOADKX (to replace OP_LOADK with extra argument)
|
2011-04-07 15:14:12 -03:00 |
|
Roberto Ierusalimschy
|
f8d677f94c
|
no more 'OP_CLOSE' instructions (use jumps to close upvalues)
|
2011-02-07 10:28:27 -02:00 |
|