Commit Graph

1477 Commits

Author SHA1 Message Date
Mike Pall
80d0acc7c1 Fix compiler warnings. 2012-07-03 13:22:30 +02:00
Mike Pall
17d3fc47f3 Avoid pesky compiler warnings about C++ keywords (eh?). 2012-07-03 13:19:32 +02:00
Mike Pall
c740a30223 Invoke SPLIT pass in side trace for rejoined sunk stores. 2012-07-03 12:41:21 +02:00
Mike Pall
2df19049ef Avoid strict aliasing issues. 2012-07-03 00:03:01 +02:00
Mike Pall
0af3f47ba0 Add allocation sinking and store sinking optimization. 2012-07-02 23:47:12 +02:00
Mike Pall
79e1eaa73b ARM: Simplify two-step constant rematerialization. 2012-07-02 22:57:51 +02:00
Mike Pall
afeb4e2c51 Handle initial snapshot for side traces in lj_snap.c only. 2012-07-02 22:52:15 +02:00
Mike Pall
f093a34a2f Handle joining IR_HIOP in SPLIT pass. 2012-07-02 22:50:03 +02:00
Mike Pall
0688de5483 Add IR_PVAL instruction for non-slot parent links. 2012-07-02 22:47:20 +02:00
Mike Pall
5d0115ef8d Add explicit IR_GCSTEP instruction. 2012-07-02 22:42:40 +02:00
Mike Pall
264177b0d0 Use HIOP for XSTORE in SPLIT pass. 2012-07-02 22:37:00 +02:00
Mike Pall
7ae3832f20 Move snapshot replay for side traces to lj_snap.c. 2012-07-02 13:37:55 +02:00
Mike Pall
cda3630565 Clean up RegSP handling for parent link instructions. 2012-07-01 22:44:54 +02:00
Mike Pall
89f8c920c6 Expand array slots in template tables with mixed const/var initializers. 2012-06-30 20:58:19 +02:00
Mike Pall
eacecc90e1 Clean up snapshot restore. 2012-06-30 20:45:59 +02:00
Mike Pall
dd9e7a4608 Fix cdecl string parsing during recording. 2012-06-28 20:17:08 +02:00
Mike Pall
a6458ce4de Make os.date() thread-safe. 2012-06-28 15:47:16 +02:00
Mike Pall
a751c8a5b5 Fix buffer check in bytecode writer. 2012-06-28 15:13:26 +02:00
Mike Pall
a9bf455b96 Add HREFK forwarding. Eliminate HREFK guard for TDUP refs. 2012-06-28 15:10:52 +02:00
Mike Pall
0d1056eeed Create string hash slots in template tables even for non-const values. 2012-06-27 22:45:54 +02:00
Mike Pall
ceb76d26b5 Another attempt at proper target detection for msvcbuild.bat. 2012-06-27 20:53:08 +02:00
Mike Pall
9a98ba64b4 Fix TDUP to HLOAD forwarding for DUALNUM builds. 2012-06-27 19:54:52 +02:00
Mike Pall
3dc7baf6af PPC: Fix PPC32 build. 2012-06-27 19:41:56 +02:00
Mike Pall
2f844fc87b Fix build issues on Cygwin and MinGW with optional MSys. 2012-06-22 11:36:58 +02:00
Mike Pall
8b71ab1080 FFI: Check for __new metamethod when calling a constructor. 2012-06-20 18:28:25 +02:00
Mike Pall
e9e45313e7 FFI: Do not resolve strings passed to parameterized types. 2012-06-20 15:45:23 +02:00
Mike Pall
6cee1333ef FFI: Resolve metamethods for constructors, too. 2012-06-20 15:16:40 +02:00
Mike Pall
126f9906fe FFI: Improve error messages for ctype arguments. 2012-06-20 15:06:28 +02:00
Mike Pall
946c7418d5 FFI: Add support for parameterized C types. 2012-06-14 19:54:07 +02:00
Mike Pall
ca6bf2d9a4 CONSOLE: Handle P64, GPR64, TOC* and PPE (PS3) in PPC interpreter.
PS3 build command: make HOST_CC="gcc -m32" CROSS=ppu-lv2-
2012-06-13 02:32:24 +02:00
Mike Pall
4f9db0fbc3 Clean up buildvm error message. 2012-06-13 01:54:15 +02:00
Mike Pall
80ff9d69a3 Allow parsing bcsave.lua (-b option) without FFI. 2012-06-12 21:25:19 +02:00
Mike Pall
0b3d8375f7 PPC: Remove lj_vm_floor/ceil/trunc assembler wrappers. 2012-06-12 17:26:55 +02:00
Mike Pall
c2159f8624 ARM/PPC: Remove assembler code for lj_vm_foldarith(). 2012-06-12 17:25:52 +02:00
Mike Pall
46dc6d347c PPC: Fix disassembly of rldcl/rldcr. 2012-06-12 16:48:24 +02:00
Mike Pall
0528bb7d02 x64: Fix DynASM defines. 2012-06-12 03:50:22 +02:00
Mike Pall
e08914988c Improved target detection for msvcbuild.bat. 2012-06-12 01:47:16 +02:00
Mike Pall
b1c2a45464 OSX: Change dylib names to be consistent with other platforms. 2012-06-11 18:49:40 +02:00
Mike Pall
b51d7fb310 MIPS: Cleanup interpreter.
Use DynASM defines instead of C defines.
2012-06-11 00:51:21 +02:00
Mike Pall
3f1035a170 PPC/e500: Cleanup interpreter.
Use DynASM defines instead of C defines.
2012-06-11 00:51:59 +02:00
Mike Pall
7da4d16faa PPC: Cleanup interpreter.
Use DynASM defines instead of C defines.
2012-06-11 00:50:22 +02:00
Mike Pall
02acb39b10 ARM: Cleanup interpreter.
Use DynASM defines instead of C defines.
2012-06-11 00:49:47 +02:00
Mike Pall
c99439b3be x86/x64: More interpreter cleanups. 2012-06-11 00:49:24 +02:00
Mike Pall
c0aaf271c8 PPC: Fix interpreter state setup in callbacks. 2012-06-11 00:44:54 +02:00
Mike Pall
58622937c0 Fix userdata __gc separations at state close. 2012-06-10 23:40:53 +02:00
Mike Pall
58ec704f78 x86/x64: Clean up interpreter.
Use DynASM defines instead of C defines.
Remove support for ancient CPUs without CMOV (before Pentium Pro).
2012-06-10 16:50:46 +02:00
Mike Pall
e496a502b0 Pass various build, arch and OS flags to DynASM. 2012-06-10 16:41:00 +02:00
Mike Pall
d5a915ccf5 CONSOLE: Minor PS3 build fixes. 2012-06-10 16:34:18 +02:00
Mike Pall
b8f5727ab4 CONSOLE: Fix PS3 build. 2012-06-10 02:01:25 +02:00
Mike Pall
37be8a5478 CONSOLE: Handle unimplemented features for console toolchains. 2012-06-09 20:54:34 +02:00
Mike Pall
9f443e8b89 ARM/PPC: Detect more target arch variants. Detect console OS. 2012-06-09 20:53:22 +02:00
Mike Pall
9d7bd04fae Avoid potential store-forwarding stalls in GC marking. 2012-06-09 20:30:27 +02:00
Mike Pall
1c8ed534b3 Fix check for minimum GCC version. 2012-06-09 17:29:54 +02:00
Mike Pall
9a9509c66a Reorganize build process.
Drop pre-translated buildvm_*.h.
Rename buildvm_*.dasc to vm_*.dasc.
Move buildvm* to host directory.
Build minilua, unless HOST_LUA is set.
Use HOST_LUA to run DynASM.
Translate only vm_*.dasc for target architecture.
2012-06-09 15:12:44 +02:00
Mike Pall
0a6c8338d2 Add minified Lua interpreter (minilua). Used by the build process. 2012-06-09 15:03:40 +02:00
Mike Pall
e75561b70e FFI: Fix address calculation for refs.
Fixes bug introduced in commit 5032e6d8.
2012-06-09 00:23:27 +02:00
Mike Pall
cccf763898 Move lib/* to src/jit/*. 2012-06-08 21:14:33 +02:00
Mike Pall
7266e27404 Correctly preserve snapshot #0 PC for root traces (insert NOP). 2012-06-08 19:22:59 +02:00
Mike Pall
fad5382d21 Rearrange OSX vs. iOS defines. Disable callbacks on iOS. 2012-06-08 11:59:23 +02:00
Mike Pall
0bd1a66f2f Print version and JIT status to stdout, not stderr. 2012-06-06 14:17:15 +02:00
Mike Pall
9ab2ae8d46 Split-off large-file support flags to TARGET_LFSFLAGS. 2012-06-05 00:12:43 +02:00
Mike Pall
5032e6d87f FFI: Use CNEWI/FLOAD to box/access ffi.new("int", x) (for varargs). 2012-06-04 15:39:16 +02:00
Mike Pall
fa2572da6c FFI: Convert io.* file handle to FILE * pointer (but as a void *). 2012-05-29 12:09:18 +02:00
Mike Pall
97b7edb206 Fix argument checks for coroutine.create(). 2012-05-28 21:38:23 +02:00
Mike Pall
10b9ed37e0 PPC/e500: Fix tailcall from fast function (esp. tostring). 2012-05-23 22:22:10 +02:00
Mike Pall
3a43ea5084 FFI: Equality comparisons never raise an error. 2012-05-23 22:20:27 +02:00
Mike Pall
f3197046b8 Preserve snapshot #0 PC for root traces. 2012-05-14 17:35:05 +02:00
Mike Pall
e6bcb545f8 FFI: Don't call FreeLibrary() on our own EXE/DLL. 2012-05-14 13:41:08 +02:00
Mike Pall
74205dc64b ARM/PPC/MIPS: Fix tailcall from fast function (esp. tostring). 2012-05-10 16:21:14 +02:00
Mike Pall
3fc5948abf ARM: Fix modulo operator and math.floor/ceil for inf/nan. 2012-05-10 16:19:07 +02:00
Mike Pall
48567b6043 ARM: Fix tonumber() argument check. 2012-05-10 16:17:23 +02:00
Mike Pall
51f05d64c9 RELEASE LuaJIT-2.0.0-beta10 2012-05-09 18:11:35 +02:00
Mike Pall
c8a1f274af Remove stray comment. 2012-05-09 17:53:05 +02:00
Mike Pall
6e5c872eb7 FFI: Fix recording of test for bool result of call. 2012-05-09 16:25:51 +02:00
Mike Pall
7d3954036c FFI: Don't record test for bool result of call, if ignored. 2012-05-08 18:59:51 +02:00
Mike Pall
886a450a3d FFI: Allow 'typedef _Bool int BOOL;' to make Windows users happy. 2012-05-08 18:34:12 +02:00
Mike Pall
0d824b7d14 Fix PHI stack slot syncing. 2012-05-07 23:16:19 +02:00
Mike Pall
afc17b3c1a FFI: Use correct PC in FFI metamethod error message. 2012-05-05 22:58:29 +02:00
Mike Pall
53a285c0c3 Disable loading bytecode with an extra header (BOM or #!). 2012-05-03 19:04:44 +02:00
Mike Pall
eec0d80d1b ARM: Fix compilation of math.sinh/cosh/tanh. 2012-04-30 17:09:41 +02:00
Mike Pall
8d31b5cdde ARM: Fix rejoin of pow in SPLIT pass. 2012-04-30 12:59:45 +02:00
Mike Pall
9a2ae72bce ARM: Handle all CALL* ops with double results in SPLIT pass. 2012-04-29 21:25:46 +02:00
Mike Pall
e099059afd Add more comparison variants to Valgrind suppressions file. 2012-04-26 23:47:00 +02:00
Mike Pall
d4a09431c8 ARM/FFI: Invoke SPLIT pass for double args in FFI call. 2012-04-26 23:46:23 +02:00
Mike Pall
325a1820eb ARM: Fix conditional branch fixup for OBAR. 2012-04-26 23:34:54 +02:00
Mike Pall
0522f74f69 ARM: Fix register allocation for ldrd-optimized HREFK. 2012-04-26 23:33:56 +02:00
Mike Pall
904cc1facb ARM: Reorder type/value tests to silence Valgrind. 2012-04-26 23:33:20 +02:00
Mike Pall
ba3cad0dd9 Add required PHIs for implicit conversions (via XREF fwd). 2012-04-19 15:05:55 +02:00
Mike Pall
ac6b678d4c FFI: Fix result type of pointer difference. 2012-04-17 12:54:38 +02:00
Mike Pall
7aa34aa4de Fix dependencies. 2012-04-17 12:37:34 +02:00
Mike Pall
cf5a54fedf FFI: Fix blacklisting of C functions calling callbacks. 2012-04-12 14:21:41 +02:00
Mike Pall
68ca796d28 Make lua_concat() work from C hook with partial frame. 2012-04-12 12:02:38 +02:00
Mike Pall
3ed5172fe4 Fix DSE of USTORE. Have to remove OBAR, too. 2012-04-11 16:22:05 +02:00
Mike Pall
39112fd6fb Fix bytecode JMP slot range after const + and/or optimization. 2012-04-11 15:17:11 +02:00
Mike Pall
44876ec99f Limit number of userdata __gc separations at state close. 2012-04-11 15:15:50 +02:00
Mike Pall
e14b6346b4 Ensure running __gc of userdata created in __gc at state close. 2012-04-11 12:08:09 +02:00
Mike Pall
d621a6ccc2 Fix discharge order of comparisons in Lua parser. 2012-04-09 14:48:27 +02:00
Mike Pall
5a83601589 MIPS: Add support for GDB JIT API. 2012-04-01 20:01:13 +02:00
Mike Pall
407cc5e9ec FFI: Fix symbol resolving error messages on Windows. 2012-03-31 22:23:46 +02:00
Mike Pall
03275ba7fc FFI: Fix resolving of function name redirects on Windows/x86. 2012-03-31 22:19:47 +02:00
Mike Pall
bcd459aa0e MIPS: Integrate and enable JIT compiler. 2012-03-30 01:36:55 +02:00
Mike Pall
2225c9aafc MIPS: Add MIPS32R2 compile-time/runtime CPU detection. 2012-03-30 01:34:17 +02:00
Mike Pall
aaaf0e0f5f MIPS: Interpreter/JIT integration 2012-03-30 01:33:38 +02:00
Mike Pall
1980ee95b0 PPC: Use builtin D-Cache/I-Cache sync code. 2012-03-29 01:14:24 +02:00
Mike Pall
a53a549774 PPC: Fix HREFK code generation for huge tables. 2012-03-29 01:11:23 +02:00
Mike Pall
509ca0f0db PPC: Fix fusion of floating-point XLOAD/XSTORE. 2012-03-29 01:10:35 +02:00
Mike Pall
67773165e8 Fix OSX build issues. Bump minimum required OSX version to 10.4
Only set MACOSX_DEPLOYMENT_TARGET to 10.4 if not set.
Always force -fno-stack-protector.
2012-03-28 10:19:23 +02:00
Mike Pall
018792452e Replace unwind.h definitions with our own. 2012-03-25 21:52:07 +02:00
Mike Pall
339142c2aa FFI: Change ffi.load() library name resolution for Cygwin. 2012-03-21 22:09:01 +01:00
Mike Pall
9589e11e44 Avoid recursive GC steps after GC-triggered trace exit. 2012-03-20 14:18:14 +01:00
Mike Pall
5dbb6671a3 Fix compilation on OpenBSD.
Thanks to Laurence Tratt.
2012-03-15 12:01:13 +01:00
Mike Pall
6670a13bbf Add missing mcode limit check in assembler backend. 2012-03-12 00:51:25 +01:00
Mike Pall
8ae38dc519 FFI: Finalize cdata before userdata when closing the state. 2012-03-05 15:05:28 +01:00
Mike Pall
7498ee204e Fix argument error handling on Lua stacks without a frame. 2012-02-22 16:27:44 +01:00
Mike Pall
5e113d0058 Fix argument type in error message for relative arguments. 2012-02-22 16:26:50 +01:00
Mike Pall
ff71394931 From Lua 5.2: Try __tostring metamethod on non-string error messages. 2012-02-13 20:08:29 +01:00
Mike Pall
8e524d437e Fix bytecode dump for certain number constants. 2012-02-04 00:32:45 +01:00
Mike Pall
d72d758a11 FFI: Fix library unloading on POSIX systems. 2012-02-01 18:21:12 +01:00
Mike Pall
10ef109eef Bump copyright date to 2012. 2012-01-23 22:42:42 +01:00
Mike Pall
5bed11e6b4 MIPS: Add interpreter. Enable MIPS build rules. 2012-01-23 22:24:11 +01:00
Mike Pall
7d2774e4c5 PPC: Avoid pointless arg clearing in BC_IFUNCF. Remove dead code. 2012-01-23 19:18:40 +01:00
Mike Pall
9f485115ef PPC: Fix argument checking for rawget. 2012-01-23 19:14:19 +01:00
Mike Pall
0a8fd0af8c PPC: Fix resume after yield from hook. 2012-01-23 19:13:26 +01:00
Mike Pall
93a71f6a52 ARM: Avoid pointless arg clearing in BC_IFUNCF. Fix comments. 2012-01-23 19:17:19 +01:00
Mike Pall
a72134e280 Fix parsing of hex literals with exponents. 2012-01-20 11:38:14 +01:00
Mike Pall
2f396c6db7 FFI: Don't touch frame in callbacks with tailcalls to fast functions. 2012-01-15 17:05:34 +01:00
Mike Pall
248cf2ffa9 FFI: Ignore number parsing errors while skipping definitions. 2011-12-17 15:02:53 +01:00
Mike Pall
d050b2fff5 FFI: Ignore empty statements in ffi.cdef(). 2011-12-17 15:02:00 +01:00
Mike Pall
b330b468b3 MIPS: Add build rules (non-functional, yet). 2011-12-15 20:39:30 +01:00
Mike Pall
b61be299c9 Auto-detect target arch via cross-compiler. Drop TARGET=arch. 2011-12-15 19:16:06 +01:00
Mike Pall
6ace80c897 RELEASE LuaJIT-2.0.0-beta9 2011-12-14 15:12:49 +01:00
Mike Pall
a064156d5d PPC: Avoid undefined operand dereference in BAND/shift fusion. 2011-12-13 18:05:51 +01:00
Mike Pall
03c51fc578 FFI: Add callback support for ARM. 2011-12-12 23:16:55 +01:00
Mike Pall
1b0d646004 FFI: Add callback support for PPC. 2011-12-12 23:11:49 +01:00
Mike Pall
10474987bd Move helper for syncing data/instruction cache to lj_mcode.c.
Sync caches after dynamic code generation for FFI callbacks.
2011-12-12 23:10:46 +01:00
Mike Pall
2d8f3d75df ARM: Error out for attempt to compile with hard-float ABI. 2011-12-10 17:15:38 +01:00
Mike Pall
60b8e9e2fb ARM: Fix stack check for spilled BASE in parent. 2011-12-10 00:18:19 +01:00
Mike Pall
2591b4524a x64: Always extend stack arguments to pointer size. 2011-12-09 16:00:04 +01:00
Mike Pall
63981436f7 Fix compiler warning. 2011-12-09 15:57:20 +01:00
Mike Pall
e162d8cef0 FFI: Fix stack adjustment for calls to stdcall/fastcall functions. 2011-12-01 16:27:24 +01:00
Mike Pall
ff7e9bc464 FFI: Need to treat strlen() as a load. 2011-11-27 18:22:48 +01:00
Mike Pall
0a31c6373c Don't increment module reference counts due to symbol resolving. 2011-11-27 11:45:55 +01:00
Mike Pall
e3c7476533 FFI: Record ffi.errno(). 2011-11-26 16:56:09 +01:00
Mike Pall
1a42c03807 Fix stack check in side exit. 2011-11-25 19:36:48 +01:00
Mike Pall
c142b6c53e FFI: Record C function calls with bool return values. 2011-11-25 19:36:35 +01:00
Mike Pall
b3f16cb64d FFI: Fix line info for result conversion errors in callbacks. 2011-11-25 19:35:58 +01:00
Mike Pall
90c445851f FFI: Fix GetLastError() save/restore around ffi.load(). 2011-11-25 12:25:51 +01:00
Mike Pall
c2dcf39ee3 FFI: Improve ld script detection in ffi.load(). 2011-11-25 11:19:59 +01:00
Mike Pall
923738459d Do not eliminate PHIs only referenced from other PHIs. 2011-11-24 00:42:14 +01:00
Mike Pall
bd758df76a Replace stack slot for implicit number->string conv. in Lua/C API. 2011-11-21 20:50:27 +01:00
Mike Pall
cecbe3c15f Specialize to prototype for non-monomorphic functions.
Solves the trace-explosion problem with closure-heavy programming.
2011-11-20 19:16:40 +01:00
Mike Pall
cc7a12be93 Count frames with same prototype in call unroll limit check. 2011-11-20 17:59:41 +01:00
Mike Pall
f8a4769fb2 Keep maximum frame extent in snap->topslot. 2011-11-20 17:56:47 +01:00
Mike Pall
dc2a39e46d Get rid of snap->depth. 2011-11-20 13:23:25 +01:00
Mike Pall
726dc42c32 Fix debug option for msvcbuild.bat. 2011-11-17 17:34:23 +01:00
Mike Pall
b1efcef745 FFI: Add missing GC barrier for callback registration. 2011-11-15 16:43:43 +01:00
Mike Pall
d4df8d7825 FFI: Save GetLastError() around ffi.load() and symbol resolving, too. 2011-11-15 16:37:06 +01:00
Mike Pall
8437d0c48d Eliminate some rare occurrences of redundant PHIs. 2011-11-14 23:57:05 +01:00
Mike Pall
87456f73f5 Fix hint-based register allocation in ra_dest(). 2011-11-14 23:52:26 +01:00
Mike Pall
71d00a56db FFI: Add callback support (for x86/x64). 2011-11-14 14:18:25 +01:00
Mike Pall
ae79ff4e53 FFI: Resolve __call metamethod for pointers, too. 2011-11-14 12:01:48 +01:00
Mike Pall
4d59752217 Avoid dependence on lj_jit.h if only including lj_target.h. 2011-11-12 01:16:43 +01:00
Mike Pall
635371c212 FFI: Add unwind definitions for lj_vm_ffi_call.
Adds exception interoperability for C/C++ functions called via FFI
from the interpreter.
2011-11-12 01:16:10 +01:00
Mike Pall
fa1675baad ARM: Fix IR splitting for softfp XLOAD. 2011-11-11 01:07:34 +01:00
Mike Pall
4bcf2b40fe ARM: Fix code generation for type-check only softfp [AHUV]LOAD. 2011-11-11 01:05:37 +01:00
Mike Pall
f1849fa928 x64: Fix lightuserdata comparisons. 2011-11-04 14:49:27 +01:00
Mike Pall
7b0157aa99 Spelling. 2011-11-04 14:07:19 +01:00
Mike Pall
2dc574d06b FFI: Compile calls to stdcall, fastcall and vararg functions. 2011-10-27 01:57:30 +02:00
Mike Pall
1d190c99a2 PPC: Fuse BAND with shift to rlwinm. 2011-10-25 21:29:58 +02:00
Mike Pall
455917fa0a Add more FOLD rules for shift + BAND simplifications. 2011-10-25 21:16:27 +02:00
Mike Pall
17cb366fc9 x64: Fix code generation for BSWAP. 2011-10-25 21:14:01 +02:00
Mike Pall
179fe9e5d8 PPC: Fuse BSWAP with XLOAD/XSTORE to lwbrx/stwbrx. 2011-10-25 19:50:44 +02:00
Mike Pall
ca2b923026 PPC/e500: Fix write barrier in USETS. 2011-10-25 12:42:13 +02:00
Mike Pall
bec4d20fb6 PPC: Fix write barrier in USETV/USETS. 2011-10-25 00:30:41 +02:00
Mike Pall
0cf8c20be8 PPC: Integrate and enable JIT compiler. 2011-10-24 16:43:51 +02:00
Mike Pall
fa9ade356b Allow selection of single-number vs. dual-number mode in Makefile. 2011-10-24 16:35:17 +02:00
Mike Pall
96d8611d1b PPC: Fix/improve interpreter/JIT integration.
Switch to per-trace exit stubs.
Drop register holding current trace number.
2011-10-24 16:24:47 +02:00
Mike Pall
167f638f91 PPC: Generalize rematerialization handling. 2011-10-24 16:21:11 +02:00
Mike Pall
826fb377ec PPC: Add support for GDB JIT API. 2011-10-24 16:20:04 +02:00
Mike Pall
3591609dad PPC: Add Linux/PPC cache flush mechanism.
GCC's __clear_cache() does nothing on PPC. Duh.
2011-10-24 16:18:02 +02:00
Mike Pall
8fc9bc1724 Make sure to flush/sync the D/I-cache for all generated code. 2011-10-24 16:16:14 +02:00
Mike Pall
32098921fd Fix handling of alignment arguments (nil) to CALLX. 2011-10-24 16:14:01 +02:00
Mike Pall
cb1dd159e3 PPC: Add support for per-trace exit stubs. 2011-10-24 16:13:12 +02:00
Mike Pall
a0d7827554 Generalize handling of stack checks indicated by highest exit + 1. 2011-10-24 16:11:38 +02:00
Mike Pall
84683405fb Don't save/restore tmptv with copyTV. 2011-10-24 15:58:54 +02:00
Mike Pall
86a5cc427d Fix compiler warning. 2011-10-24 15:58:24 +02:00
Mike Pall
aa502203a6 Add missing FOLD rule for CONV.u64.int + sign-extension. 2011-10-22 02:03:07 +02:00
Mike Pall
fee957b22d FFI: Cleanup/fix 64 bit arithmetic in assembler backend. 2011-10-22 02:02:51 +02:00
Mike Pall
2e5c0870bc x64: Fix math.random() code generation. 2011-10-22 02:01:44 +02:00
Mike Pall
c01aaad890 Fix register hints for arithmetic helper functions. 2011-10-22 02:00:15 +02:00
Mike Pall
c805a49d30 Separate/rename NUM/FLOAT <-> I64/U64 conversion functions. 2011-10-22 01:59:10 +02:00
Mike Pall
ff7f7a7180 Cleanup various endianess issues in assembler backend. 2011-10-22 01:35:57 +02:00
Mike Pall
e80478c44b Rearrange defines for workarounds to embedded operating systems. 2011-10-19 18:14:46 +02:00
Mike Pall
a39aac0445 Fix FOLD rule for CONV.flt.num(CONV.num.flt(x)) => x. 2011-10-19 01:52:50 +02:00
Mike Pall
45df079c01 FFI/x86: Fix CONV.u32.num rounding. 2011-10-19 00:18:36 +02:00
Mike Pall
2fcd562582 Don't fuse colocated array offsets without -Ofuse. 2011-10-19 00:17:19 +02:00
Mike Pall
f50075a9d7 Fixup PC in tracebacks after exits from down-recursive traces. 2011-10-17 20:06:04 +02:00
Mike Pall
270de2d6cc Add missing FOLD rule for integer NEG of constants. 2011-10-17 17:21:09 +02:00
Mike Pall
c5164b1a7d FFI/ARM: Ensure invocation of SPLIT pass for float conversions. 2011-10-14 01:09:30 +02:00
Mike Pall
4c9318792f Save tmptv state for trace recorder across RECORD vmevent. 2011-10-14 00:43:17 +02:00
Mike Pall
882537a874 FFI: Fix unfused loads of float fields. 2011-10-13 20:53:01 +02:00
Mike Pall
bc95d54ec9 FFI: Fix call argument and return handling for I8/U8/I16/U16 types. 2011-10-13 20:44:31 +02:00
Mike Pall
120c3adbff FFI: Record loads/stores to external variables in namespaces. 2011-10-11 20:58:04 +02:00
Mike Pall
4a144625c9 FFI: Fix recording of const/enum lookups in namespaces. 2011-10-11 11:51:48 +02:00
Mike Pall
f34ac81e3a Remove unneeded PHI barrier for reassociation of duplicate ops. 2011-10-10 20:35:42 +02:00
Mike Pall
76a2a7c857 Avoid overwriting argument with error from metacall recording. 2011-09-28 17:29:15 +02:00
Mike Pall
3c998f6c3c Fix (harmless) typo. 2011-09-21 08:22:07 +02:00
Mike Pall
da9c74f163 ARM: Fix HREFK code generation. 2011-09-21 08:21:25 +02:00
Mike Pall
c5e75e7893 Generate a portable vmdef.lua. 2011-09-20 21:15:05 +02:00
Mike Pall
5fedf72ca6 PPC/e500: Fix GC barrier for TSETM. 2011-09-17 21:59:56 +02:00
Mike Pall
1a899ff671 PPC: Fix GC barrier for TSETM. 2011-09-14 16:03:02 +02:00
Mike Pall
6d854c04fe ARM: Fix GC barrier for TSETM. 2011-09-14 15:53:43 +02:00
Mike Pall
1c5fbd4c1d ARM: Disable CPU detection for interpreter-only builds. 2011-09-08 15:34:53 +02:00
Mike Pall
c56ae9f6ef Increase max. number of exit stub groups to correspond with -Omaxsnap. 2011-09-05 23:12:58 +02:00
Mike Pall
1b949dc60a Use some register allocator helpers for multiple architectures. 2011-09-05 20:23:20 +02:00
Mike Pall
ae3317b186 PPC: Interpreter/JIT integration. 2011-09-05 20:22:55 +02:00
Mike Pall
bab2f0efae PPC: Fix or remove assembler helper functions. 2011-09-05 18:34:11 +02:00
Mike Pall
690ff909f5 PPC: More interpreter tuning. Use y-bit for branch predictions. 2011-09-05 18:30:36 +02:00
Mike Pall
25a0e663db Always use ANSI variants of Windows system functions. 2011-09-02 11:42:01 +02:00
Mike Pall
32c1d4751a Avoid conversion narrowing of arithmetic with large constants. 2011-08-26 20:29:05 +02:00
Mike Pall
6627744752 FFI/x64: Fix struct-by-value calling conventions. 2011-08-25 11:10:39 +02:00
Mike Pall
78cc9c889d Record missing FORI slot loads (e.g. after return to lower frame). 2011-08-21 15:08:27 +02:00
Mike Pall
607bd88f57 Add potential PHI for number conversions due to type instability, too. 2011-08-17 20:42:41 +02:00
Mike Pall
aad7ea3c02 Load embedded bytecode with require(). 2011-08-17 00:10:12 +02:00
Mike Pall
4a42933b17 Replace some _Unwind_* types. Fixes build issues on OSX 10.7. 2011-08-14 11:35:53 +02:00
Mike Pall
10ffd05ba9 x64: Fix result type of cdata index conversions. 2011-08-11 22:05:35 +02:00
Mike Pall
05ef03e2d0 Don't bother to chain NOPs. 2011-08-11 22:04:38 +02:00
Mike Pall
e8fa76feac PPCSPE: Save/restore cr2, cr3 and cr4 when entering/leaving VM. 2011-08-10 22:33:52 +02:00
Mike Pall
d84207b8b6 PPC: Save/restore cr2, cr3 and cr4 when entering/leaving VM. 2011-08-10 21:56:10 +02:00
Mike Pall
28b98acd75 PPC: Tune and reschedule interpreter for PPC/e300. 2011-08-10 20:28:14 +02:00
Mike Pall
f333dfd17d Fix compiler warning. 2011-08-10 15:25:11 +02:00
Mike Pall
4c50e36cee Fix stack check when L->top is above L->maxstack. 2011-08-09 15:56:07 +02:00
Mike Pall
bed0f18466 Remove temporary mcode limit error from application stack. 2011-08-09 00:45:26 +02:00
Mike Pall
d9b518874d FFI: Limit snapshot optimization for cdata comparisons. 2011-08-07 21:53:43 +02:00
Mike Pall
4008b351f4 PPC: Add machine-specific part of FFI. 2011-08-01 18:59:16 +02:00
Mike Pall
26106759d4 PPC: Fix floor/ceil for dual-number mode. 2011-07-25 10:06:06 +02:00
Mike Pall
551f09cebd PPC: Add dual-number mode interpreter. Enable by default. 2011-07-25 00:18:20 +02:00
Mike Pall
ee2bb5efed Use different workaround for alignment of jit_State. 2011-07-23 17:53:09 +02:00
Mike Pall
d001d7b7ce FFI: Treat function ctypes like pointers in comparisons. 2011-07-23 16:29:47 +02:00
Mike Pall
b261d0ec04 From Lua 5.2: Change \* to \z. Reject undefined escape sequences. 2011-07-19 20:58:10 +02:00
Mike Pall
ca8dadb328 PPC: Add dual-number mode interpreter. 2011-07-13 21:36:17 +02:00
Mike Pall
6599bc7db2 PPCSPE: Fix dispatch for binop metamethods. 2011-07-13 21:33:51 +02:00
Mike Pall
9687472454 Cleanup single-number vs. dual-number mode selection. 2011-07-13 21:25:31 +02:00
Mike Pall
eb92daad0a ARM: Don't evict ASMREF_L in ra_evictk(). 2011-07-12 15:59:07 +02:00
Mike Pall
29ac908f74 FFI: Fix comment parsing. 2011-07-06 23:04:33 +02:00
Mike Pall
89201f2e66 Fix install_name and versioning on OSX. 2011-07-03 17:58:26 +02:00
Mike Pall
0239a56d37 PPC: Add build rules for PPC interpreter (non-functional, yet). 2011-07-03 15:19:34 +02:00
Mike Pall
161f1a5eb0 PPC: Separate PPC vs. PPCSPE interpreter source files. 2011-07-03 15:01:50 +02:00
Mike Pall
8addfefb33 PPC: Untangle PPC vs. PPCSPE target defines. 2011-07-02 00:45:38 +02:00
Mike Pall
8ccf89718c Add debug option to msvcbuild.bat and improve error handling. 2011-06-29 19:26:31 +02:00
Mike Pall
0af502f438 Don't use thread-safe exceptions on OSX. Complain to Apple, not me. 2011-06-29 11:27:09 +02:00
Mike Pall
64dbe7d929 Return to lower frame via interpreter for unhandled cases.
E.g. spontaneous upcalls from C are now compiled.
2011-06-29 01:53:39 +02:00
Mike Pall
82eca898db Prefer recording loops over calls.
Hotcounts are decremented by 2 for loops and by 1 for calls.
2011-06-29 01:52:23 +02:00
Mike Pall
deeb8196c4 Reorganize trace linking and track link types. 2011-06-28 23:23:34 +02:00
Mike Pall
3dbae4ffc2 Clean up temporary bytecode patching. 2011-06-28 23:19:36 +02:00
Mike Pall
999d95253a Fix forced unwinding triggered by external unwinder. 2011-06-27 21:09:01 +02:00
Mike Pall
2dd52500ab Use thread-safe exceptions for external unwinding on x64/GCC. 2011-06-27 20:14:28 +02:00
Mike Pall
db22ce2ba8 Fix iOS build. 2011-06-27 01:33:50 +02:00
Mike Pall
113f8e9ac2 Fix data-flow analysis for BC_ITERL. 2011-06-27 01:11:11 +02:00
Mike Pall
29e89adfa7 RELEASE LuaJIT-2.0.0-beta8 (fixed) 2011-06-23 19:40:21 +02:00
Mike Pall
9b0c641ac1 RELEASE LuaJIT-2.0.0-beta8 2011-06-23 17:15:02 +02:00
Mike Pall
6691e72eb8 Fix assertion. 2011-06-22 21:18:23 +02:00
Mike Pall
513bd6e952 x86/x64: Don't evict BASE in ra_evictk(). 2011-06-22 21:07:02 +02:00
Mike Pall
d4da9ff55e x86/x64: Fix register allocation for variable shifts. 2011-06-22 20:38:07 +02:00
Mike Pall
e2246db688 x86/x64: Fix fusion of comparisons with u8/u16 XLOAD. 2011-06-22 17:56:41 +02:00
Mike Pall
b6e4ffd079 Avoid pointless calls for std file handles on __gc. 2011-06-22 17:54:09 +02:00
Mike Pall
4df40a228f Fix recording of loops with instable directions in side traces. 2011-06-20 21:51:31 +02:00
Mike Pall
31d566428f From Lua 5.2: __len for tables. Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2011-06-20 20:45:41 +02:00
Mike Pall
3d1563524f More fixes for the Solaris/x86 build. Thanks to Will Metcalf. 2011-06-14 16:44:20 +02:00
Mike Pall
9cf2cd2a11 Fix bytecode loading on Windows. 2011-06-14 12:47:48 +02:00
Mike Pall
bcc196eed3 Fix dumping of already stripped functions with debug info. 2011-06-13 03:22:10 +02:00
Mike Pall
0eee70cd4d Add -b command line option to save/list bytecode. 2011-06-13 01:04:23 +02:00
Mike Pall
4994fcc32c Add support for bytecode loading/saving. 2011-06-13 01:04:11 +02:00
Mike Pall
9da94d1355 Add recursive dump option to jit.bc.dump(). 2011-06-12 23:51:13 +02:00
Mike Pall
0c8696dfbf No need for L argument to lj_str_initbuf(). 2011-06-12 21:09:20 +02:00
Mike Pall
287de611a2 FFI: Support __tostring metamethod for pointers to structs, too. 2011-06-11 18:30:22 +02:00
Mike Pall
a58eb604f4 Make .eh_frame section read-write on Solaris. 2011-06-11 15:57:03 +02:00
Mike Pall
27d8d3b5d9 Fix check for missing arguments in string.format(). 2011-06-10 13:47:11 +02:00
Mike Pall
b6a7fc5330 Cleanup prototype flags. 2011-06-09 13:54:40 +02:00
Mike Pall
96cc99bd6a Remove bogus assertion for GC estimate vs. threshold. 2011-06-09 01:34:10 +02:00
Mike Pall
8c32b38ca3 Flatten and compress in-memory debug info (saves ~70%). 2011-06-09 01:27:37 +02:00
Mike Pall
585cf05dbd Move debugging/introspection functionality to lj_debug.c. 2011-06-07 21:37:24 +02:00
Mike Pall
b44ccd4263 Fix compiler warning. 2011-06-07 21:28:31 +02:00
Mike Pall
a0840d2695 FFI: Print NULL pointers as "cdata<... *>: NULL". 2011-06-07 21:10:04 +02:00
Mike Pall
a7ca722dca FFI: Show address pointed to for tostring(pointer). 2011-06-07 20:57:32 +02:00
Mike Pall
51ee3d951e Minor change to bytecode penalty code for consistency. 2011-06-07 20:44:55 +02:00
Mike Pall
f50d8986d8 Fix data-flow analysis for BC_UCLO. 2011-06-07 11:51:04 +02:00
Mike Pall
22946f268b FFI: Change tonumber(cdata) semantics. Return nil for non-numbers. 2011-06-06 19:56:55 +02:00
Mike Pall
a48058a791 ARM: Add fast assembler implementation of floor/ceil/trunc. 2011-06-05 23:38:23 +02:00
Mike Pall
a175754ab7 PPC: Add lj_vm_floor which is callable from C. 2011-06-05 23:36:49 +02:00
Mike Pall
7ad4908a48 ARM: Fuse XLOAD/XSTORE operands. 2011-06-05 18:59:35 +02:00
Mike Pall
b88eaa11f3 Add stdint.h replacement for Symbian. Sigh. 2011-06-03 20:21:10 +02:00
Mike Pall
8c5935000d Add narrowing of modulo operator. 2011-06-03 18:48:02 +02:00
Mike Pall
eec28aa9fd Move math helpers to lj_vmmath.c. Add missing log2/exp2 for Symbian. 2011-06-03 17:15:44 +02:00
Mike Pall
77bb8de93d ARM: Disable C++ exception catching on Symbian. 2011-06-03 12:23:43 +02:00
Mike Pall
84e33332a7 ARM: Enable JIT compiler (except for iOS). 2011-06-02 03:19:23 +02:00
Mike Pall
5d82cfd091 ARM: Add ARM-specific assembler backend. 2011-06-02 03:18:26 +02:00
Mike Pall
fff2fb31f9 ARM: Don't generate unaligned XLOADs. 2011-06-02 01:46:23 +02:00
Mike Pall
a770bf3741 Many soft-float-related fixes to SPLIT pass and assembler backend. 2011-06-02 01:24:36 +02:00
Mike Pall
9e153003b4 ARM: Catch C++ exceptions in interpreter frames. 2011-06-02 01:21:32 +02:00
Mike Pall
8dd09d5041 DUALNUM: Fix missing type check for loop index slot. 2011-06-01 00:49:29 +02:00
Mike Pall
2d0b32500e ARM: Tune rematerialization scheduler. 2011-05-31 21:50:14 +02:00
Mike Pall
865ec114a7 FFI: Fix recording of casts from 32 bit pointers to integers. 2011-05-31 21:39:37 +02:00
Mike Pall
a522087371 x86/x64: Minor cleanup in assembler backend. 2011-05-31 21:39:09 +02:00
Mike Pall
496d3753f5 ARM: Optimize hash algorithm for 3-operand CPUs. 2011-05-31 21:38:16 +02:00
Mike Pall
514ccfceb8 ARM: Fix __newindex metamethod handling for BC_TSETB. 2011-05-31 21:37:44 +02:00
Mike Pall
0764c615fd ARM: Fix string.sub() argument checks. 2011-05-31 21:35:03 +02:00
Mike Pall
03b5c8c935 Clean up memory allocator initialization and catch early OOM. 2011-05-30 01:32:50 +02:00
Mike Pall
638f968978 FFI: Avoid unused functions if FFI is disabled. 2011-05-27 02:15:55 +02:00
Mike Pall
12dc697eae ARM: Interpreter/JIT integration, part #2. 2011-05-27 02:06:05 +02:00
Mike Pall
7683f39786 ARM: Fix math.ldexp() recording and folding. 2011-05-27 02:03:02 +02:00
Mike Pall
7bad42a3ba Fix compiler warning. 2011-05-27 02:01:36 +02:00
Mike Pall
46955be1e2 Fix handling of number constants in snapshots in SPLIT pass. 2011-05-27 01:56:25 +02:00
Mike Pall
840a067d4e ARM: Fix rematerialization scheduler. 2011-05-26 18:05:19 +02:00
Mike Pall
8d4400331d ARM: Flush instruction cache in assembler backend. 2011-05-26 18:04:01 +02:00
Mike Pall
4057620bf5 Treat extra exit from stack check like a parent exit. 2011-05-26 18:02:42 +02:00
Mike Pall
625ef8626f Simplify helper routines for soft-float targets. Add POW rejoin. 2011-05-26 18:01:55 +02:00
Mike Pall
ae3179926a ARM: Add CPU detection. 2011-05-26 17:58:29 +02:00
Mike Pall
185554b682 ARM: Unify rotates to simplify assembler backend. 2011-05-23 20:20:34 +02:00
Mike Pall
7b21a660a8 FFI: Fix __gc for VLA/VLS cdata objects. 2011-05-23 02:43:36 +02:00
Mike Pall
afad72af25 ARM: Add ARM-specific tuning to generic assembler backend. 2011-05-22 17:54:28 +02:00
Mike Pall
aaba681056 ARM: Add rematerialization scheduler for constants to backend. 2011-05-22 17:50:36 +02:00
Mike Pall
138f54352a Split up FP IR instructions with SPLIT pass for soft-float targets. 2011-05-22 17:44:58 +02:00
Mike Pall
d0115c65f5 More portability cleanups for assembler backend. 2011-05-22 17:13:16 +02:00
Mike Pall
919ba5fd74 Add missing guard to for loop argument conversion. 2011-05-22 16:47:55 +02:00
Mike Pall
effdfda673 Move IR_CALL* definitions to lj_ircall.h. 2011-05-22 16:28:43 +02:00
Mike Pall
3a942d6cea Portability cleanups for assembler backend. 2011-05-17 21:26:00 +02:00
Mike Pall
fb46370e56 Cleanup of target dependencies. 2011-05-16 19:32:47 +02:00
Mike Pall
dab4bcafba Add target-specific macro for stack alignment in assembler backend. 2011-05-16 02:43:14 +02:00
Mike Pall
6cb123bb99 Fix compiler warning. 2011-05-16 02:41:47 +02:00
Mike Pall
a251a28bd5 ARM: Add support for GDB JIT API. 2011-05-16 02:40:59 +02:00
Mike Pall
1ac71f1fa8 ARM: Add LJ_SOFTFP define. Add support for soft-float slot handling. 2011-05-16 02:38:07 +02:00
Mike Pall
be73a96751 ARM: Generalize machine code co-location. ARM has a +-32MB range. 2011-05-16 02:29:44 +02:00
Mike Pall
58f38c254b Move x86/x64 parts of JIT assembler backend to extra files. 2011-05-12 01:35:09 +02:00
Mike Pall
800349387a Disentangle target-specific parts of JIT assembler backend. 2011-05-12 01:27:20 +02:00
Mike Pall
b79cdba3a0 Tuning loop unrolling heuristics again. 2011-05-10 16:55:23 +02:00
Mike Pall
65d9c7cb5e ARM: Fix table/userdata equality comparisons in interpreter. 2011-05-09 22:41:12 +02:00
Mike Pall
c8308e2a87 ARM: Interpreter/JIT integration, part #1. 2011-05-09 22:39:53 +02:00
Mike Pall
67d3ac9b19 Fix some portability issues with the JIT compiler. 2011-05-09 20:46:58 +02:00
Mike Pall
28e87d33e9 Use common helper functions for unaligned loads. 2011-05-09 18:09:29 +02:00
Mike Pall
d9c1f771a7 FFI: Allow setting errno with ffi.errno(), too. 2011-05-09 11:52:54 +02:00
Mike Pall
868ecad32b FFI: Add ffi.errno(). 2011-05-08 22:34:40 +02:00
Mike Pall
77ba7726e2 FFI: Save errno/GetLastError() around allocations, hooks etc. 2011-05-08 22:33:04 +02:00
Mike Pall
87553d9e77 Avoid name clash with Windows MM_MAX define. 2011-05-08 22:31:03 +02:00
Mike Pall
16369d5a64 x86/x64: Fix bit.* argument checking. 2011-05-06 16:06:02 +02:00
Mike Pall
cfdc356ebe RELEASE LuaJIT-2.0.0-beta7 2011-05-05 16:31:13 +02:00
Mike Pall
693b629787 Improve bytecode optimization of and/or operators. 2011-05-05 15:49:11 +02:00
Mike Pall
6534152b44 Fix compiler warning. 2011-05-04 23:45:02 +02:00
Mike Pall
704752c612 FFI: Fix field alignment for iOS. 2011-05-04 23:30:37 +02:00
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
Mike Pall
f29a9d4341 Fix narrowing of POW. 2011-03-03 17:29:09 +01:00