Commit Graph

1142 Commits

Author SHA1 Message Date
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