Commit Graph

778 Commits

Author SHA1 Message Date
Mike Pall
fb8b87e818 More tuning of loop unrolling heuristics. 2011-05-04 23:21:46 +02:00
Mike Pall
b4006ba9a8 Fix stack slot updates for down-recursion. 2011-05-04 21:34:21 +02:00
Mike Pall
139175f8c4 Tune loop unrolling heuristics. Increase trace recorder limits. 2011-05-03 21:14:18 +02:00
Mike Pall
c77ca54564 FFI: Compile C function calls with 64 bit args/results in 32 bit mode. 2011-04-29 19:40:50 +02:00
Mike Pall
eb7b452d53 x86: Pop unused FP result from x87 stack. 2011-04-29 19:35:25 +02:00
Mike Pall
b4cfaa62ac Improve target OS selection for buildvm. 2011-04-29 09:23:00 +02:00
Mike Pall
0ba34ffe50 ARM: Fix ABI and build issues for iOS. Now works on iOS 3.0+. 2011-04-28 19:41:34 +02:00
Mike Pall
0b606061db ARM: Use own lj_bswap(). Reduce min. req. version of GCC to 4.2. 2011-04-28 12:33:31 +02:00
Mike Pall
5d096dcfde FFI: Add ffi.istype() function. 2011-04-20 01:53:26 +02:00
Mike Pall
9ea679410c Workaround to compile with Clang. Fix Clang warnings. 2011-04-19 17:12:41 +02:00
Mike Pall
e94a12f4f6 Fix compiler warning. 2011-04-19 16:19:34 +02:00
Mike Pall
b3d10cdf62 ARM: Workaround for unaligned accesses. 2011-04-19 16:09:07 +02:00
Mike Pall
4fbacaf887 ARM: Allow compilation in thumb mode (CCOPT_ARM=-mthumb). 2011-04-18 23:44:06 +02:00
Mike Pall
a1ffb6114f ARM: Add missing FFI functionality. Enable FFI for ARM. 2011-04-18 21:24:47 +02:00
Mike Pall
38a842a474 Add common TARGET_FLAGS option to Makefile. 2011-04-17 12:48:01 +02:00
Mike Pall
54994ef7be ARM: Enable ARM port. 2011-04-17 02:36:10 +02:00
Mike Pall
7bb4b0f570 ARM: Normalize results of math.floor()/ceil() fast functions. 2011-04-17 02:31:00 +02:00
Mike Pall
32db4525d9 ARM: Misc. fixes for interpreter. 2011-04-16 23:32:44 +02:00
Mike Pall
add553edd8 ARM: Add integer variant of modulo operator. 2011-04-16 23:29:57 +02:00
Mike Pall
d636a3decd ARM: Add partial support for FFI. 2011-04-16 23:28:51 +02:00
Mike Pall
fc40214279 ARM: Add coroutine.resume/wrap_aux/yield() fast functions. 2011-04-16 23:26:11 +02:00
Mike Pall
5f08a50506 FFI: Fix arithmetic ctype metamethods for references. 2011-04-15 19:02:47 +02:00
Mike Pall
31e0774a9e FFI: Fix cdata finalization. 2011-04-13 21:37:54 +02:00
Mike Pall
1fa0cc09b3 PPC: Fix L->status for resume after yield. 2011-04-13 02:28:25 +02:00
Mike Pall
0001a7fced ARM: Add BC_VARG and BC_TSETM. 2011-04-13 02:24:56 +02:00
Mike Pall
7aa7069271 ARM: Add dispatch targets for hooks. 2011-04-13 02:24:18 +02:00
Mike Pall
46d97d28f0 ARM: Add modulo subroutine and temp. math.floor()/math.ceil(). 2011-04-13 02:22:59 +02:00
Mike Pall
3b6f37dd2c FFI: Add ctype metamethods and ffi.metatype(). 2011-04-12 19:16:39 +02:00
Mike Pall
fa5cd010e8 Add support for tailcalls from internal C functions.
PPC: Fix __call metamethod for tailcalls.
2011-04-12 19:13:11 +02:00
Mike Pall
23f847f4ed Optimize lookups in empty proxy tables. 2011-04-10 21:43:21 +02:00
Mike Pall
a1f66abe4e Avoid phantom stores to proxy tables. 2011-04-10 21:41:58 +02:00
Mike Pall
efcaef22bd Inline lj_gc_barrierback(). 2011-04-10 20:45:36 +02:00
Mike Pall
d85b7e636e Fix recording of JLOOP with higher maxslot. 2011-04-10 18:00:08 +02:00
Mike Pall
f69524f7f1 PPC: Misc. fixes for interpreter. 2011-04-10 17:04:10 +02:00
Mike Pall
54e986a51d ARM: Misc. fixes for interpreter. 2011-04-10 17:00:32 +02:00
Mike Pall
040c8c5737 ARM: Add string.* fast functions and GC steps. 2011-04-10 16:59:38 +02:00
Mike Pall
da1ef8c3b0 ARM: Add rawget() fast function. 2011-04-10 16:59:00 +02:00
Mike Pall
89022b4c3e Use lj_vm_tobit() on targets without FPU. 2011-04-10 16:58:22 +02:00
Mike Pall
f089f3954c ARM: Add bit.* fast functions and lj_vm_tobit(). 2011-04-10 16:56:13 +02:00
Mike Pall
27bf481669 ARM: Misc. fixes for interpreter. 2011-04-08 03:03:10 +02:00
Mike Pall
b56784aae2 ARM: Add BC_CAT and lj_cont_cat. 2011-04-08 03:01:37 +02:00
Mike Pall
b1912f3325 ARM: Add missing metamethod handlers and continuations. 2011-04-08 02:57:22 +02:00
Mike Pall
aee129a789 ARM: Add tailcall instructions. 2011-04-08 02:54:11 +02:00
Mike Pall
16e0ecaf54 ARM: Add table.getn() fast function. 2011-04-08 02:52:24 +02:00
Mike Pall
9e18260fb4 ARM: Add upvalue get/set and closure-related instructions. 2011-04-08 02:50:56 +02:00
Mike Pall
3af41060c7 ARM: Add test/copy and comparison instructions. 2011-04-08 02:48:55 +02:00
Mike Pall
83e302938b ARM: Add math.* fast functions. 2011-04-08 02:47:19 +02:00
Mike Pall
1f4f805c96 ARM: Add getmetatable(), setmetatable() and tonumber() fast functions. 2011-04-08 02:42:04 +02:00
Mike Pall
0046f955eb ARM: Handle stack growth during function calls. 2011-04-08 02:44:56 +02:00
Mike Pall
1a56dacbcf ARM: Add build rules (still disabled). 2011-04-07 16:08:34 +02:00
Mike Pall
ee644872e3 FFI: Register the FFI library as a loaded module in luaopen_ffi().
Allows loading it on startup like other libraries in lib_init.c.
2011-04-06 01:31:21 +02:00
Mike Pall
66a1006175 Fuse XLOAD/XSTORE operands more aggressively. 2011-04-05 16:32:27 +02:00
Mike Pall
3acd4892e9 Add FOLD rule for FLOAT->NUM->FLOAT conversions. 2011-04-05 16:31:48 +02:00
Mike Pall
48438b9e13 Fix code generation for PHIs with type IRT_FLOAT. 2011-04-05 16:29:40 +02:00
Mike Pall
5b7a8baea4 x64: Fix getmetatable(lightuserdata). 2011-04-05 13:00:13 +02:00
Mike Pall
314995aebf ARM: Finish basic table indexing and add metamethod handlers. 2011-04-05 00:25:31 +02:00
Mike Pall
a7874cb299 ARM: Add assert() and type() fast functions. 2011-04-05 00:24:23 +02:00
Mike Pall
43d7db62d1 ARM: Add pcall() and xpcall() fast functions and unwinders. 2011-04-05 00:23:05 +02:00
Mike Pall
959683c77c PPC: Minor cleanups of interpreter. 2011-04-04 02:00:38 +02:00
Mike Pall
6511941348 ARM: Add fast functions pairs()/next() and ipairs() + iterator. 2011-04-04 01:56:41 +02:00
Mike Pall
5b146f61b5 ARM: Add tostring() fast function. 2011-04-04 01:55:41 +02:00
Mike Pall
6110faadd8 ARM: Add basic infrastructure for fast functions. 2011-04-04 01:54:56 +02:00
Mike Pall
dd4a043b78 ARM: Add table indexing with string keys. Add get global. 2011-04-04 01:51:29 +02:00
Mike Pall
0e7009ddc8 ARM: Add table constructors. 2011-04-04 01:49:24 +02:00
Mike Pall
81fa9e34cd ARM: Add call and iterator call instructions. 2011-04-04 01:47:23 +02:00
Mike Pall
85fff386ef ARM: Add missing parts of return handling. 2011-04-04 01:46:08 +02:00
Mike Pall
f1c79f80c2 ARM: Minor fixes and cleanups for type checks. 2011-04-04 01:44:54 +02:00
Mike Pall
5b06b298a2 ARM: Add binary arithmetic instructions. 2011-03-30 21:56:05 +02:00
Mike Pall
a0e4711055 ARM: Add basic loop and branch instructions. 2011-03-30 21:54:33 +02:00
Mike Pall
7b0a125cf7 ARM: Add basic unary bytecode instructions. 2011-03-29 02:31:47 +02:00
Mike Pall
ca494b72a9 ARM: Add support to call Lua functions and return from them. 2011-03-29 02:30:41 +02:00
Mike Pall
c04a252a06 ARM: Add support to call C functions. 2011-03-29 02:29:27 +02:00
Mike Pall
cff08b2315 ARM: Add entry and exit points into VM. Add type check macros. 2011-03-29 02:24:35 +02:00
Mike Pall
3bcb48c6a1 ARM: Add frame unwind info for assembler part. 2011-03-29 02:23:05 +02:00
Mike Pall
71f976b02e ARM: Add instruction/call decode + dispatch macros. 2011-03-29 02:26:09 +02:00
Mike Pall
98e3c8a8ff ARM: Add register assignments, type definitions and stack layout. 2011-03-29 02:18:36 +02:00
Mike Pall
4c9a10f3ad Avoid compiler warning. 2011-03-28 19:22:17 +02:00
Mike Pall
492efb7e7e Clean up DynASM glue macros. Thanks to Josh Haberman. 2011-03-28 15:06:30 +02:00
Mike Pall
32aef8aee4 ARM: Add skeleton for ARM interpreter. 2011-03-26 18:42:41 +01:00
Mike Pall
b6ed984843 ARM: Add support for ARM relocations to buildvm. 2011-03-26 18:40:11 +01:00
Mike Pall
7088abce8f DUALNUM: Fix narrowing of unary minus. 2011-03-19 17:46:10 +01:00
Mike Pall
a1c887e3b9 Fix data-flow analysis for BC_ITERC. 2011-03-19 17:30:15 +01:00
Mike Pall
642ae06916 x64: Use external unwinding for lua_yield(). 2011-03-18 23:38:05 +01:00
Mike Pall
063182d79c FFI: Fix marking of ffi.gc() finalizer table. 2011-03-17 17:31:48 +01:00
Mike Pall
ac3b1dcfc5 x64: Workaround for libgcc unwind bug (still present in RHEL 5.5). 2011-03-17 16:06:41 +01:00
Mike Pall
6299485000 DUALNUM: Narrow result of math.floor() and math.ceil(). 2011-03-15 18:15:42 +01:00
Mike Pall
dcbae09b1d DUALNUM: Narrow unary minus. 2011-03-15 18:14:18 +01:00
Mike Pall
a226fb4cc7 FFI: Force snapshot after C call to preserve semantics. 2011-03-15 14:56:42 +01:00
Mike Pall
7fb1075903 DUALNUM: Add integer variant of MIN/MAX. 2011-03-11 23:28:46 +01:00
Mike Pall
889368e921 Get rid of the remaining silly cast macros from Lua. 2011-03-10 02:13:43 +01:00
Mike Pall
bfce3c1127 DUALNUM: Handle integer type in JIT compiler. 2011-03-10 01:57:24 +01:00
Mike Pall
3f26e3a89d FFI: Fix and optimize recording of cdata[cdata]. 2011-03-10 01:41:58 +01:00
Mike Pall
1c9981ae4c x86/x64: Fix code generation for fused IR_MUL/IR_MULOV. 2011-03-10 01:09:18 +01:00
Mike Pall
a127eaf8d2 FFI: Fix x86 code generation for ffi.string(). 2011-03-10 00:57:02 +01:00
Mike Pall
30cc4d3bba Fix handling of err_loc() within cpcall frames. 2011-03-09 22:39:17 +01:00
Mike Pall
0125ee8211 DUALNUM: Add extra assertions to interpreter. 2011-03-09 22:38:53 +01:00
Mike Pall
449cee405c Fix code generation for bit.bnot(). 2011-03-07 22:11:01 +01:00
Mike Pall
54978e481b DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV. 2011-03-07 20:21:38 +01:00
Mike Pall
a30f58b54b DUALNUM: Fix x87 code for BC_ISEQN/BC_ISNEN. 2011-03-07 20:12:39 +01:00
Mike Pall
8eb09fe820 Suppress recording of retried fast functions. 2011-03-07 20:03:38 +01:00