Commit Graph

760 Commits

Author SHA1 Message Date
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
Mike Pall
f29a9d4341 Fix narrowing of POW. 2011-03-03 17:29:09 +01:00
Mike Pall
1cb58fb7bb Fix code generation for Intel Atom in x64 mode. 2011-03-03 00:49:45 +01:00
Mike Pall
6c43767c23 FFI: Resolve ld script redirection in ffi.load(). 2011-03-01 12:31:16 +01:00
Mike Pall
e1aa8d0d97 FFI: Fix compiled ffi.string() semantics. 2011-02-28 19:47:51 +01:00
Mike Pall
83a37aeca7 FFI: Add ffi.gc() function for finalization of cdata objects. 2011-02-28 16:48:13 +01:00
Mike Pall
cead25f928 DUALNUM: Handle integer type in x86/x64 interpreter and libraries. 2011-02-27 01:36:59 +01:00
Mike Pall
c031d4b6a0 DUALNUM: Handle integer type in FFI. 2011-02-27 01:31:22 +01:00
Mike Pall
d437086c5a x64: Improve accuracy of x^-k. 2011-02-25 11:47:34 +01:00
Mike Pall
b90d80d80a Fix table.maxn(). 2011-02-23 14:52:50 +01:00
Mike Pall
a720db409d FFI: Record calls to functions with void results. 2011-02-23 00:28:49 +01:00
Mike Pall
4c97cc7730 Eliminate dead slots in snapshots using bytecode data-flow analysis. 2011-02-22 22:39:12 +01:00
Mike Pall
8d0b073ff0 From Lua 5.2: Support load(string). 2011-02-20 21:17:49 +01:00
Mike Pall
2bae11a49a From Lua 5.2: fp:read("*L"). 2011-02-20 21:07:19 +01:00
Mike Pall
c823e26b8b From Lua 5.2: table.unpack(). Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2011-02-20 20:53:09 +01:00
Mike Pall
baef199ece From Lua 5.2: Add package.searchpath().
Thanks to F. Perrad.
2011-02-20 20:48:13 +01:00
Mike Pall
f83d58d6fb From Lua 5.2: Empty statement. Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2011-02-20 20:38:36 +01:00
Mike Pall
d82022a656 From Lua 5.2: coroutine.running(). Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2011-02-20 20:33:00 +01:00
Mike Pall
34bcf6378b FFI: Fix recording of userdata conversions. 2011-02-20 02:13:32 +01:00