Commit Graph

1362 Commits

Author SHA1 Message Date
Mike Pall
b69c02eb68 Avoid unnecessary vararg loads. 2010-09-14 16:48:25 +02:00
Mike Pall
5b740046f8 PPC: Fix line number in stack overflow error. 2010-09-14 03:13:44 +02:00
Mike Pall
f8b7fb7d2b PPC: Fix write barrier in BC_TSETV. 2010-09-14 01:23:34 +02:00
Mike Pall
2bdf3fcd50 PPC: Fix KBASE restore in BC_CALLT. 2010-09-14 01:20:01 +02:00
Mike Pall
fe159ea2fb PPC: Keep MULTRES in a register. 2010-09-14 00:46:06 +02:00
Mike Pall
a36287b218 PPC: Add better diagnostics to DynASM for reg/imm mismatches. 2010-09-14 00:00:31 +02:00
Mike Pall
3d17f71968 x86/x64: Avoid unnecessary resize in BC_TSETM. 2010-09-13 22:30:23 +02:00
Mike Pall
8a87395d8d PPC: Add support for shifted MULTRES. 2010-09-13 21:50:27 +02:00
Mike Pall
0001916f8d PPC: Add metamethod handlers for indexing instructions. 2010-09-13 21:26:27 +02:00
Mike Pall
7a766c771d PPC: Add missing write barrier to BC_TSETV. 2010-09-13 21:21:39 +02:00
Mike Pall
dcfc385bf3 PPC: Fix write barrier and linkage for BC_USETV/BC_USETS.
Some older linkers can't rearrange to accomodate R_PPC_REL14.
2010-09-13 21:19:33 +02:00
Mike Pall
cd6a45760a PPC: Teach DynASM to reject r0 for some operands. 2010-09-13 21:11:51 +02:00
Mike Pall
32bfececc5 Release all memory when using the builtin allocator.
Blocks >128K are not kept in the segment list and were not destroyed.
2010-09-13 19:48:31 +02:00
Mike Pall
c88169dc46 Record y = select(x, ...) idiom. 2010-09-13 01:23:19 +02:00
Mike Pall
4ba0eb5f80 Record select(). 2010-09-13 01:21:44 +02:00
Mike Pall
847b9cf253 Record vararg expressions with varargs defined off-trace.
Add SLOAD variant to access the frame type/size.
2010-09-13 01:17:38 +02:00
Mike Pall
e32f7d96c1 Fix tailcalls from vararg functions. 2010-09-13 00:55:05 +02:00
Mike Pall
52f75e9a5c Fix off-by-one errors in maxslot calculation of trace recorder. 2010-09-12 03:14:17 +02:00
Mike Pall
4da03965c0 Record vararg expressions with known fixed number of results. 2010-09-12 02:42:02 +02:00
Mike Pall
c2c08ba9b3 Record calls to vararg functions.
This loop is now roughly 1000x faster than the Lua interpreter:
  local function f(a,b,...) end; for i=1,2e8 do f(1,2,i) end
Yet another silly microbenchmark -- I know.
2010-09-12 01:44:13 +02:00
Mike Pall
b72ae54dc0 Fix broken MSVC build. 2010-09-12 01:33:32 +02:00
Mike Pall
90f22760af PPC: Add argument coercion for BC_FORI. 2010-09-11 01:53:59 +02:00
Mike Pall
c330af2452 PPC: Add continuation dispatch and RA/nop continuations. 2010-09-11 01:52:26 +02:00
Mike Pall
cabcce1e1d PPC: Add metamethod handlers for arithmetic instructions. 2010-09-11 01:47:49 +02:00
Mike Pall
e15e4c4d95 PPC: Add metamethod handlers for call instructions. 2010-09-11 01:46:11 +02:00
Mike Pall
daafc0b2a2 Reduce minimum Lua frame size to 1. 2010-09-10 11:43:31 +02:00
Mike Pall
6fd315581c Optimize BC_VARG: use RC for numparams. 2010-09-10 11:34:29 +02:00
Mike Pall
96957a4551 Turn some lua_State fields into 32 bit pointers.
lua_State now fits into one cache line on x64.
2010-09-09 12:28:17 +02:00
Mike Pall
fd63b05253 Use biased integer constant for TSETM array index. 2010-09-09 12:01:29 +02:00
Mike Pall
8a1af8cf89 PPC: Use unsigned compares for pointer comparisons. 2010-09-09 01:14:17 +02:00
Mike Pall
9fd10963b9 PPC: Add upvalue get/set instructions. 2010-09-09 01:08:07 +02:00
Mike Pall
ec8f2918ba PPC: Add closure-related instructions. 2010-09-09 01:06:55 +02:00
Mike Pall
b2aa08c75c PPC: Add helper function for folding arithmetic ops. 2010-09-08 00:14:36 +02:00
Mike Pall
932193baa6 PPC: Add modulo instructions. 2010-09-08 00:12:23 +02:00
Mike Pall
e9e7df5bfe PPC: Add heavily optimized floor/ceil/trunc functions. 2010-09-08 00:09:36 +02:00
Mike Pall
db735e0519 PPC: Add binary arithmetic instructions (except MOD). 2010-09-07 01:24:25 +02:00
Mike Pall
15834c3990 PPC: Add unary instructions. 2010-09-07 01:15:21 +02:00
Mike Pall
341820987b PPC: Add table constructors. 2010-09-06 15:20:58 +02:00
Mike Pall
711e55bdf8 PPC: Add tailcall instructions. 2010-09-04 12:58:36 +02:00
Mike Pall
684acbe930 PPC: Add call and iterator call instructions. 2010-09-03 21:02:55 +02:00
Mike Pall
b4c8b05ad5 PPC: Add table indexing with variable keys or uint8_t. 2010-09-03 19:35:44 +02:00
Mike Pall
5043efae7d PPC: Add table indexing with string keys. Add get/set global. 2010-09-03 19:31:07 +02:00
Mike Pall
f708d31bcc Explicitly indicate tailcall from fast function fallback. 2010-09-02 17:16:56 +02:00
Mike Pall
44fb3ebc64 PPC: Add unary test and copy instructions. 2010-09-01 20:29:29 +02:00
Mike Pall
7457ee869a PPC: Add comparison instructions. 2010-09-01 20:27:39 +02:00
Mike Pall
222e01fa83 PPC: Add loop instructions. 2010-09-01 20:24:08 +02:00
Mike Pall
7ccdc8045b PPC: Unwind the stack after an error is thrown. 2010-09-01 00:27:48 +02:00
Mike Pall
d67eb4de49 PPC: Handle stack growth on return to C. 2010-09-01 00:25:35 +02:00
Mike Pall
d71bd78b8f PPC: Add move and constant instructions. 2010-09-01 00:19:27 +02:00
Mike Pall
8876704e05 Improve coalescing of multiple KPRI instructions to KNIL. 2010-09-01 00:18:00 +02:00