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