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
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
Mike Pall
cf88c43dd6
FFI: Fix 64 bit to 32 bit truncations on x64.
2011-02-20 00:18:46 +01:00
Mike Pall
32eaa48c79
FFI: Fix recording of ffi.copy() and ffi.fill().
2011-02-19 23:04:16 +01:00
Mike Pall
bd29d16141
FFI: Improve conversion error messages.
2011-02-19 12:56:12 +01:00
Mike Pall
03946ac978
DUALNUM: Add integer type to core VM.
2011-02-17 00:44:14 +01:00
Mike Pall
963f05c7e1
DUALNUM: Add build infrastructure.
...
Note: DUALNUM is disabled by default and won't work yet.
2011-02-17 00:42:57 +01:00
Mike Pall
54b6054087
FFI: Fix management of C library handles for default namespace.
2011-02-16 23:52:18 +01:00
Mike Pall
5fe7282d4c
Fix error handling within metamethods. Special-case FFI mm.
2011-02-16 00:38:23 +01:00
Mike Pall
4dca589af0
Add workaround for lj_meta_tset() newkey inconsistency.
2011-02-15 01:02:08 +01:00
Mike Pall
4117a61620
PPC: Disable FFI due to NYI: comparisons and calls.
2011-02-14 23:25:18 +01:00
Mike Pall
19b84009b2
Fix type mismatch in XSTORE forwarding.
2011-02-14 23:02:16 +01:00
Mike Pall
97d84111fd
RELEASE LuaJIT-2.0.0-beta6
2011-02-11 16:28:37 +01:00
Mike Pall
7c61073a30
FFI: Disable unused code for some build modes.
2011-02-11 16:22:58 +01:00
Mike Pall
9c81c81ed5
Fix bytecode optimization of and/or operators.
2011-02-08 01:00:47 +01:00
Mike Pall
c39ca7c35b
FFI: Record ffi.abi().
2011-02-08 00:09:33 +01:00
Mike Pall
7a37b93f1b
FFI: Record ffi.copy() and ffi.fill().
2011-02-07 23:49:27 +01:00
Mike Pall
fb53d4aeb7
FFI: Fix recording of pointer arithmetic.
2011-02-07 23:42:51 +01:00
Mike Pall
97d0874ff5
Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations.
2011-02-07 21:59:25 +01:00
Mike Pall
0a50356b6f
Improve static assertion macro.
2011-02-07 21:44:01 +01:00
Mike Pall
51e8fe9cf0
FFI: Allow cdata types for integer arguments of ffi.* functions.
2011-02-07 17:13:14 +01:00
Mike Pall
8da287cab8
FFI: Fix handling of enum arguments to C calls.
2011-02-07 16:41:51 +01:00
Mike Pall
ceece4d13e
FFI: Perform stricter checks in ffi.cast(). Record ffi.cast().
2011-02-06 12:46:18 +01:00
Mike Pall
bf58160b7a
FFI: Simplify and fix tonumber() for cdata objects.
2011-02-06 12:23:58 +01:00
Mike Pall
4c74f70464
Strength-reduce 32 to 64 bit widening for XLOAD U8/U16 inputs.
2011-02-06 00:45:39 +01:00
Mike Pall
26bb0fe24b
FFI: Limit number of arguments for recorded calls.
2011-02-05 23:01:10 +01:00
Mike Pall
26fadcd25b
FFI: Record simple C function calls.
...
Only handles cdecl and fixarg C functions.
Doesn't handle pass-by-value aggregates.
Doesn't handle 64 bit args/returns on 32 bit CPUs.
2011-02-05 21:50:15 +01:00
Mike Pall
bf05209e14
FFI: Optimize snapshots for cdata comparisons.
2011-02-05 18:54:08 +01:00
Mike Pall
da3f256a52
Fix metamethod comparisons triggered by BC_ISEQP/BC_ISNEP.
2011-02-05 16:32:08 +01:00
Mike Pall
14f5103764
FFI: Record C library namespace lookups.
2011-02-05 14:16:16 +01:00
Mike Pall
223d85aa06
Treat metatables of special userdata objects as immutable.
2011-02-05 14:09:50 +01:00
Mike Pall
c29ed4dbbf
FFI: Record ffi.string().
2011-02-05 01:05:56 +01:00
Mike Pall
618b451648
FFI: Avoid intermediate boxes for tonumber(), too.
2011-02-05 01:04:41 +01:00
Mike Pall
1abf5d4d26
FFI: Disable MUL => BSHL FOLD rule on 32 bit.
2011-02-03 20:10:13 +01:00
Mike Pall
df65b8b419
FFI: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers.
...
Generates smaller IR and DCE eliminates many intermediate boxes.
Needs allocation sinking to eliminate the boxes kept alive by PHIs.
2011-02-03 04:22:27 +01:00
Mike Pall
1027018b21
Rename IR_POWI to IR_POW.
2011-02-02 21:33:11 +01:00
Mike Pall
433fd18f6d
FFI: Add basic FOLD rules for 64 bit integer DIV, MOD and POWI.
2011-02-02 21:25:43 +01:00
Mike Pall
a1e0f991d8
FFI: Record 64 bit integer divide and modulo.
2011-02-02 21:24:55 +01:00
Mike Pall
2c8945d3e7
Use names defined in lualib.h for library registration.
2011-02-02 02:38:59 +01:00
Mike Pall
1505d6ffde
Fix OSX build to work with newer ld64 versions.
2011-02-02 02:31:59 +01:00
Mike Pall
b613216efc
Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
...
Add generic HIOP instruction for extra backend functionality.
Add support for HIOP to x86 backend.
Use POWI for 64 bit integer x^k, too.
POWI is lowered to a call by SPLIT or the x64 backend.
2011-02-02 02:29:37 +01:00
Mike Pall
c539c0cac8
Add SSE3 CPU feature detection.
2011-02-01 19:28:03 +01:00
Mike Pall
992bc2caa3
FFI: Limit index range for complex numbers.
2011-01-29 19:47:37 +01:00
Mike Pall
6fd721ce72
FFI: Implement POSIX/x64 struct-by-value calling conventions.
2011-01-29 13:04:16 +01:00
Mike Pall
6fee0002b9
Fix 64 bit case of (SUB x x) and (BXOR x x) FOLD rules.
2011-01-28 02:17:35 +01:00
Mike Pall
07d8a53b39
FFI: Split up 64 bit x^k helper into signed/unsigned.
2011-01-28 02:15:30 +01:00
Mike Pall
cd9b8f90e2
FFI: Fix various issues with C type table reallocations.
2011-01-27 16:28:24 +01:00
Mike Pall
279b6ec22e
FFI: Fix symbol name redirection.
2011-01-27 16:07:02 +01:00
Mike Pall
3184f17169
FFI: Move code for cdata arithmetic to lj_carith.c.
2011-01-26 21:46:02 +01:00
Mike Pall
2526498c71
FFI: Record cdata indexing with integer cdata.
2011-01-26 21:14:58 +01:00
Mike Pall
de0781d610
FFI: Allow cdata indexing with integer cdata.
2011-01-26 21:14:38 +01:00
Mike Pall
0622ad9adc
Fix comments for BC_ITERN.
2011-01-26 19:55:55 +01:00
Mike Pall
30db71e2e2
FFI: Convert enum return value of C function to underlying type.
2011-01-26 14:18:12 +01:00
Mike Pall
a285415b01
One more fix for the trace flush logic. Sigh.
2011-01-26 02:34:30 +01:00
Mike Pall
1b75ec22c8
FFI: Add symbol name redirection.
...
This works like the GCC extension, e.g.:
FILE *fopen(const char *fn, const char *mode) __asm__("" "fopen64");
2011-01-26 02:31:19 +01:00
Mike Pall
ed6c895ae5
ARM: Add ARM target architecture selection (disabled).
2011-01-25 18:50:24 +01:00
Mike Pall
705f593ffc
FFI: Don't force zero terminator on string to array conversion.
2011-01-24 15:51:33 +01:00
Mike Pall
96ef87bdfd
Clear bytecode penalty cache in jit.flush().
2011-01-23 19:06:19 +01:00
Mike Pall
ef3b209127
FFI: Fix ffi.load() error message on Windows.
2011-01-23 14:28:01 +01:00
Mike Pall
72b3fff72f
FFI: Simplify initializer rules. Clarify docs.
2011-01-23 14:23:21 +01:00
Mike Pall
f529d22869
Another fix for the trace flush logic. I'll get this right someday.
...
Thanks to David Manura.
2011-01-22 20:32:23 +01:00
Mike Pall
8396c3cdbc
PPC: Fix ipairs() for keys in the hash part.
2011-01-20 12:25:56 +01:00
Mike Pall
6bce6b118e
Add compile-time option LUAJIT_ENABLE_CHECKHOOK. Disabled by default.
...
This checks for asynchronously set hooks from compiled code.
2011-01-19 02:05:37 +01:00
Mike Pall
d20e53c322
Combine i8/u8 XLOAD with BAND+comparison into test byte mrm, imm8.
2011-01-19 02:05:26 +01:00
Mike Pall
8407ac0eca
Add volatile XLOADs.
2011-01-19 02:05:12 +01:00
Mike Pall
925050fe3f
Differentiate between IR_KPTR and IR_KKPTR.
...
IR_KPTR holds a const pointer to possibly non-const content.
IR_KKPTR holds a const pointer to definitely const content.
Note that only content known by the VM to be const qualifies.
Content tagged as const by users (e.g. const char *) doesn't.
2011-01-19 00:40:03 +01:00
Mike Pall
685dfc3172
Fix for the fix for the trace flush logic.
2011-01-18 22:17:27 +01:00
Mike Pall
751eff9f97
Cleanup and fix trace flush logic.
2011-01-18 21:08:23 +01:00
Mike Pall
f385af7084
FFI: Record 64 bit integer comparisons and pointer comparisons.
2011-01-17 01:23:04 +01:00
Mike Pall
83d8c86bbb
FFI: Record conversions from bool ctype.
2011-01-17 01:21:57 +01:00
Mike Pall
66ba1e68aa
Add trace recorder infrastructure for instruction post-processing.
2011-01-17 01:20:10 +01:00
Mike Pall
b2ff889c6e
FFI: Don't swap operands for cdata __eq metamethod call.
2011-01-17 01:09:43 +01:00
Mike Pall
335232b0f1
FFI: Record conversions to bool ctype.
2011-01-16 19:42:53 +01:00
Mike Pall
2940ab023a
Fix assertion.
2011-01-16 19:24:50 +01:00
Mike Pall
6f746577d0
FFI: Allow indexing a struct constructor to get constants.
...
Specialize to the CTypeID held by a constructor in all cases.
2011-01-16 18:32:33 +01:00
Mike Pall
0fa32e5d31
FFI: Record conversions from strings to enums or pointers.
2011-01-13 17:20:29 +01:00
Mike Pall
59643c86fb
Add FOLD rule for CONV.num.u32 KINT.
2011-01-13 17:18:08 +01:00
Mike Pall
706bbe394e
Fix recording of select() with multi-char string as 1st argument.
2011-01-13 17:16:22 +01:00
Mike Pall
6e702d703e
FFI: Cleanup some type conversions.
...
Remove pointless conversions to booleans.
Allow assigning functions to function pointers.
2011-01-13 16:39:42 +01:00
Mike Pall
0ec7f5ed92
FFI: Add 64 bit integer comparisons and pointer comparisons.
2011-01-13 02:35:29 +01:00
Mike Pall
e7b08b2361
FFI: Simplify logic for pointer arithmetic.
2011-01-12 21:34:11 +01:00
Mike Pall
a5e48285e3
FFI: Rearrange code in lib_ffi.c.
2011-01-12 21:33:58 +01:00
Mike Pall
2363399b10
FFI: Untangle and fix calling convention definitions.
2011-01-12 20:01:35 +01:00
Mike Pall
1548383dbe
Avoid compiler warnings.
2011-01-12 18:22:00 +01:00
Mike Pall
8d858bfefa
FFI: Fix C calls with complex values on x64.
2011-01-11 03:36:49 +01:00
Mike Pall
a54843bb51
FFI: Lookup decorated name for fastcall/stdcall functions.
2011-01-11 03:08:54 +01:00
Mike Pall
87a6c8a980
FFI: Auto-detect __stdcall and fix up C function declarations.
2011-01-10 20:50:34 +01:00
Mike Pall
ddf6596333
FFI: Add ffi.load() and ffi.C default namespace.
2011-01-10 03:43:18 +01:00
Mike Pall
d215747fd5
FFI: Fix function pointer lookup for calls.
2011-01-10 03:38:23 +01:00
Mike Pall
9502afb35b
FFI: Preserve stack top across implicit load of FFI library in lexer.
2011-01-09 17:57:19 +01:00
Mike Pall
06f99fc3df
Bump copyright date to 2011.
2011-01-09 17:12:53 +01:00
Mike Pall
4c0330a8b1
FFI: Handle NYI cases for cdata call metamethod.
2011-01-09 16:48:37 +01:00
Mike Pall
bfc638ca6c
FFI: Add missing GC steps for C function calls.
2011-01-09 16:48:23 +01:00
Mike Pall
aca1e5b3e6
Fix Windows/x86 build and update pregenerated files.
2011-01-06 23:37:04 +01:00
Mike Pall
fb0a18ca0b
FFI: Add support for calling C functions.
2011-01-06 23:30:04 +01:00
Mike Pall
97875c4fa9
Avoid compiler warnings.
2011-01-05 21:48:01 +01:00
Mike Pall
a148a6aa00
FFI: Add missing link to parameters for C function declaration.
2011-01-05 21:45:31 +01:00
Mike Pall
bc37edc911
Fix handling of floats in x86/x64 backend.
2011-01-05 21:45:09 +01:00
Mike Pall
3b468ceedb
FFI: Force snapshot after store to cdata.
2011-01-05 20:28:57 +01:00
Mike Pall
eaf88dfb3a
FFI: Record 64 bit integer arithmetic.
...
Currently NYI in the x86 backend.
2011-01-03 03:35:35 +01:00
Mike Pall
44a22b9889
Add support for non-constant integer IR_MUL to backend.
2011-01-03 02:58:31 +01:00
Mike Pall
593821f7d9
Add support for integer IR_NEG to backend.
2011-01-03 02:35:30 +01:00
Mike Pall
3291bb62e0
FFI: Record pointer arithmetic.
2011-01-03 01:59:26 +01:00
Mike Pall
b2c74c52cc
FFI: Add support for cdata constants to IR.
2011-01-02 22:21:10 +01:00
Mike Pall
331b148737
Use cdata to pass IR_KINT64 to -jdump.
2011-01-02 22:20:08 +01:00
Mike Pall
e66b5b6eee
Improve uint64_t <-> FP conversions in x64 backend.
2011-01-02 20:43:58 +01:00
Mike Pall
55a9be7809
FFI: Record tonumber() for boxed cdata.
2011-01-02 18:30:02 +01:00
Mike Pall
0005b2c2b9
Add support for uint64_t <-> FP conversions to x64 backend.
2011-01-02 18:24:31 +01:00
Mike Pall
ddfa7fc246
Add conversions for type mismatches in XSTORE forwarding.
2010-12-31 22:50:06 +01:00
Mike Pall
3b47eba9cc
Add 8/16 to 32 bit sign/zero-extension variants to CONV.
2010-12-31 22:49:23 +01:00
Mike Pall
007067bdd8
Fix register allocation for FP <- int conversion.
2010-12-31 22:18:14 +01:00
Mike Pall
783dbd335f
Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM.
2010-12-31 04:09:32 +01:00
Mike Pall
1716540c55
Refactoring of conversion ops, part 4: use CONV instead of TOINT/TONUM.
...
Also narrow CONV.int.num and CONV.i64.num.
2010-12-31 03:56:30 +01:00
Mike Pall
1f26961092
Refactoring of conversion ops, part 3: add FOLD rules for IR_CONV.
2010-12-31 03:47:30 +01:00
Mike Pall
65b194a2f8
Copy destination type for CONV from ir->t to op2, too.
2010-12-31 01:00:54 +01:00
Mike Pall
dc4b82c33d
Add lj_num2u64 for number to uint64_t conversion.
2010-12-31 00:46:29 +01:00
Mike Pall
4668b229de
FFI: Add missing GC steps for implicit allocations.
2010-12-30 12:16:25 +01:00
Mike Pall
158de60b8c
Refactoring of conversion ops, part 2: cleanup cdata conversions.
2010-12-30 00:42:00 +01:00
Mike Pall
8bcc5ed021
Add support for IRT_FLOAT to XLOAD/XSTORE.
2010-12-30 00:36:33 +01:00
Mike Pall
2ca2de7f0e
Refactoring of conversion ops, part 1: add IR_CONV.
2010-12-30 00:35:32 +01:00
Mike Pall
06c61d9cea
Use macro-map for IRT_* enum. Add IRT_FLOAT.
2010-12-28 20:58:00 +01:00
Mike Pall
d176433e32
FFI: Catch various NYI cases while recording.
2010-12-28 19:09:01 +01:00
Mike Pall
a70fb9416a
Make recording of type() independent of LJ_T*/IRT_* mapping.
2010-12-28 18:23:41 +01:00
Mike Pall
44935dae0d
FFI: Add 64 bit integer arithmetic.
2010-12-25 22:54:25 +01:00
Mike Pall
dd65e00831
FFI: Fix C type representation for valarrays.
2010-12-25 22:33:07 +01:00
Mike Pall
461bf77331
FFI: Parse complex and 64 bit integer literals.
2010-12-24 01:31:39 +01:00
Mike Pall
4850865c57
Fix misnamed macro in Lua parser.
2010-12-24 01:23:42 +01:00
Mike Pall
aa705f7e1a
FFI: Fix C parser for hex literals.
2010-12-23 23:06:04 +01:00
Mike Pall
79ab1a4baa
FFI: Add pointer arithmetic.
2010-12-23 17:54:54 +01:00
Mike Pall
ba20871f0f
Fix display of branches to exit stubs in 32 bit disassembly.
2010-12-23 01:01:04 +01:00
Mike Pall
6082f93919
Improve register allocation for loops with variable shifts.
2010-12-23 00:55:31 +01:00
Mike Pall
c0ffe7d394
FFI: Record cdata allocations.
2010-12-22 23:21:38 +01:00
Mike Pall
4f2f44dd97
Avoid compiler warnings.
2010-12-22 23:20:50 +01:00
Mike Pall
dbab6cf511
Reassociate XLOAD across PHIs to handle a[i-1] forwarding case.
...
Improved SciMark scores: http://luajit.org/download/scimark.lua
x86 SciMark LARGE | FFT SOR MC SPARSE LU
-----------------------+---------------------------------------
GCC 4.4.3 623.8 | 91.0 883.5 190.4 784.7 1169.6
LuaJIT git +FFI 651.2 | 97.2 1021.9 323.4 673.7 1139.6
LuaJIT git 527.7 | 91.4 1008.5 225.6 400.0 913.2
x64 SciMark LARGE | FFT SOR MC SPARSE LU
-----------------------+---------------------------------------
GCC 4.4.3 614.7 | 97.7 883.5 228.5 734.0 1129.9
JVM 1.6.0_22 707.5 | 79.2 1118.1 385.5 658.9 1295.7
LuaJIT git +FFI 632.8 | 89.1 1035.8 298.3 648.1 1092.9
LuaJIT git 516.1 | 88.4 995.4 225.6 382.1 888.9
2010-12-20 22:32:01 +01:00
Mike Pall
c8d6f078a5
Fix XSTORE for IRT_NUM constants.
2010-12-20 19:34:15 +01:00
Mike Pall
c9a0b9ea9e
Improve alias analysis for cdata allocations.
2010-12-20 15:26:05 +01:00
Mike Pall
255c6e8c87
FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs.
2010-12-17 17:20:04 +01:00
Mike Pall
c98132e182
FFI: FOLD load of initializers even across PHIs.
2010-12-17 16:47:28 +01:00
Mike Pall
c4a0fb4f60
FFI: Record copy-by-value for pointer and complex C types.
2010-12-17 16:47:14 +01:00
Mike Pall
09ef7ebf56
FFI: Simplify copy-by-value. Strip attributes, keep qualifiers.
2010-12-15 21:47:46 +01:00
Mike Pall
fbcc925a2d
FFI: Fix auto-deref of pointers to structs.
2010-12-15 19:48:20 +01:00
Mike Pall
badff4ed0a
Fix error location while recording metamethods.
2010-12-15 19:44:30 +01:00
Mike Pall
9666cf52ce
Fix type-based alias analysis for XLOAD/XSTORE.
2010-12-12 23:09:26 +01:00
Mike Pall
74317fa0ef
Add alias analysis for XLOAD/XSTORE. Add DSE for XSTORE.
2010-12-12 22:32:52 +01:00
Mike Pall
a22ea8898e
FOLD (base+k)+(idx*sz)+ofs ==> (base+idx*sz)+(ofs+k).
2010-12-12 21:07:23 +01:00
Mike Pall
a403cb13e4
Add missing PHI barrier to strength reduction of widening.
2010-12-12 21:05:34 +01:00
Mike Pall
42f9b38663
Extend all FOLD rules to work on 64 bit integers.
2010-12-11 21:20:49 +01:00
Mike Pall
476259e87e
Add 64 bit bswap and rotates.
2010-12-11 21:20:12 +01:00
Mike Pall
5f7e9173db
Regroup FOLD rules for constant folding.
2010-12-11 20:08:07 +01:00
Mike Pall
44101c64e8
FFI: Don't use KNULL for arbitrary NULL pointers.
2010-12-11 20:12:14 +01:00
Mike Pall
cdac0fa2cb
FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects.
2010-12-11 19:32:12 +01:00
Mike Pall
6947493687
Turn lj_mem_newgco() into a fastcall.
2010-12-10 01:10:52 +01:00
Mike Pall
09e2bdbb0a
FFI: Always specialize to the field name for struct access.
2010-12-09 22:48:01 +01:00
Mike Pall
870bcd7640
Add missing guard for check against "#" when recording select().
2010-12-09 22:35:49 +01:00
Mike Pall
cc0efd85d6
FFI: Fix alignment of scalars/vectors modified with mode attribute.
2010-12-09 18:48:23 +01:00
Mike Pall
1d86090926
Strength-reduce 32 to 64 bit widening using scalar evolution analysis.
2010-12-09 16:12:59 +01:00
Mike Pall
36fed9f3e1
Allow integer literals in FOLD rules.
...
Workaround before refactoring conversion ops.
2010-12-09 16:11:15 +01:00
Mike Pall
e9cab5a763
x86/x64 backend: keep invariants on the right rather than fusing loads.
2010-12-09 16:08:55 +01:00
Mike Pall
4f0d3e8262
Apply narrowing optimization to IR_TOI64, too.
2010-12-08 21:03:45 +01:00
Mike Pall
f308e00e03
Add FOLD rule to reassociate 64 bit (x+k1)+k2.
2010-12-08 20:57:21 +01:00
Mike Pall
d0b283e596
Avoid stack resizes while recording calls to vararg functions.
...
FUNCV might have been recorded twice (with ill effects).
2010-12-08 19:11:58 +01:00
Mike Pall
6a04591b7b
FOLD (base+(idx+k)*sz)+ofs ==> (base+idx*sz)+(ofs+k*sz).
2010-12-08 03:33:48 +01:00
Mike Pall
3c78a7f468
Avoid fusing loads if there are multiple references.
2010-12-08 03:26:53 +01:00
Mike Pall
72744dabd9
Fix IRT_NUM support for XLOAD/XSTORE.
2010-12-08 03:24:35 +01:00
Mike Pall
3ef6a53cfa
FFI: Turn cdata indexing into x86/x64 [base+idx*sz+ofs] addressing.
2010-12-08 02:36:09 +01:00
Mike Pall
d778680098
FFI: Record cdata index operations (preliminary, lots of NYI cases).
2010-12-08 02:11:18 +01:00
Mike Pall
2a917a9d83
FFI: Treat cdata metatable+methods as immutable in trace recorder.
2010-12-08 02:02:21 +01:00
Mike Pall
d4d95ee2da
Fix x64 code generation for A16+REX prefixed instructions.
2010-12-08 01:57:50 +01:00
Mike Pall
e6093b129a
Fix register allocation for 8 bit stores in x86 backend.
2010-12-07 01:18:10 +01:00
Mike Pall
b3c4c0810a
Add IRT_NUM support to XLOAD/XSTORE.
2010-12-06 19:28:51 +01:00
Mike Pall
159f51d811
Add IR_TOI64.
2010-12-06 18:21:51 +01:00
Mike Pall
f6c4e8d3d7
Add FOLD rule to turn i << 1 into i + i.
2010-12-06 13:26:58 +01:00
Mike Pall
a5bdae8f23
Fix 64 bit shifts in backend. Fix shift by 0.
2010-12-06 13:16:35 +01:00
Mike Pall
5270586a80
Fix XLOAD/XSTORE references.
2010-12-06 13:15:53 +01:00
Mike Pall
86fd2289f0
Add support for integer IR_MUL.
2010-12-06 12:54:00 +01:00
Mike Pall
b56b83487f
Support all kinds of XLOAD/XSTORE references in backend.
...
Fuse pointer arithmetic, too.
2010-12-06 03:10:28 +01:00
Mike Pall
a850b27da9
Avoid compiler warnings.
2010-12-06 03:07:10 +01:00
Mike Pall
e137408752
Use native IRT_PTR instead of IRT_LIGHTUD workaround for FILE*.
2010-12-06 02:14:39 +01:00
Mike Pall
73bc83cda1
Simplify lj_ir_kvalue(). Fix IR_KNULL + IRT_P64 case.
2010-12-06 02:12:08 +01:00
Mike Pall
4755765e32
Avoid warning.
2010-12-06 01:59:07 +01:00
Mike Pall
db3d16bfd7
Add IR_XSTORE.
2010-12-06 01:48:19 +01:00
Mike Pall
281f426d60
Add minimal set of fold rules for KINT64.
2010-12-06 00:38:21 +01:00
Mike Pall
588fa0481f
Add support for 64 bit integer arithmetic to x64 backend.
2010-12-06 00:07:36 +01:00
Mike Pall
c5f4f607c9
Fix xmm spill/restore broken by b1fb71fb
.
2010-12-05 22:39:36 +01:00
Mike Pall
5a13fa69d9
Add IR_KINT64.
2010-12-05 22:12:31 +01:00
Mike Pall
b1fb71fb98
Cleanup 64 bit IR type handling.
2010-12-05 21:01:08 +01:00
Mike Pall
6a7605ec85
Rename IRT_PTR to IRT_P32.
2010-12-05 18:59:34 +01:00
Mike Pall
26830d070d
Make sure to use irt_toitype() macro everywhere.
2010-12-05 18:51:37 +01:00
Mike Pall
e7f8cc964e
Split off fast function recording to lj_ffrecord.c.
2010-12-05 17:12:34 +01:00
Mike Pall
ffa5a2b045
Don't export internal symbol.
2010-12-05 01:08:19 +01:00
Mike Pall
7cb250c4b4
FFI: Add ffi.* library.
2010-12-05 00:52:17 +01:00
Mike Pall
513b0ba18f
FFI: Add support for converting cdata to tonumber().
2010-12-05 00:40:23 +01:00
Mike Pall
233076d3f9
FFI: Add C declaration parser.
2010-12-05 00:20:59 +01:00
Mike Pall
526e087e63
FFI: Add C data handling and C type conversions.
2010-12-05 00:18:07 +01:00
Mike Pall
05973ee440
FFI: Add C type management.
2010-12-05 00:11:35 +01:00
Mike Pall
8679ca5792
POSIX is an acronym.
2010-12-04 20:47:51 +01:00
Mike Pall
100a00dd40
Undo ef8c2648
.
2010-12-03 16:58:19 +01:00
Mike Pall
d98cd19bb0
Allow access to raw error messages from outside lj_err.c.
2010-12-01 12:54:32 +01:00
Mike Pall
0ffd06aba8
FFI: Add define to disable the FFI library.
2010-11-30 21:56:57 +01:00
Mike Pall
4ed8a1931b
Add support for deferred library loads to lib_init.c.
2010-11-30 21:56:03 +01:00
Mike Pall
443c542e26
Fix check for enabled JIT compiler in lj_trace.h.
2010-11-30 18:32:22 +01:00
Mike Pall
cd1901370d
Rearrange src/Makefile. Split features and debugging support.
2010-11-30 16:19:20 +01:00
Mike Pall
592cf3ffac
Don't mark REF_BASE in DCE.
2010-11-29 16:00:44 +01:00
Mike Pall
2033d6310b
Add shorter defines for endianess checks.
2010-11-28 17:22:45 +01:00
Mike Pall
24186e05e6
Remove metamethod frame for errors from internal metamethods.
2010-11-27 20:23:39 +01:00
Mike Pall
35890f66c1
FFI: Don't propagate cdata objects.
2010-11-26 17:27:02 +01:00
Mike Pall
ef8c264873
FFI: Add macros for consistent number to integer truncation.
2010-11-26 13:40:40 +01:00
Mike Pall
2fd1292955
FFI: Add cdata object type.
2010-11-26 13:28:46 +01:00
Mike Pall
6290d6f5d0
Display caller location in errors from metamethods.
2010-11-26 13:20:56 +01:00
Mike Pall
7840d0b2b0
Shrink slots for 'break' statement to help data-flow analysis.
2010-11-25 12:13:23 +01:00
Mike Pall
18fbf86c9e
Improve unrolling heuristics for non-looping inner loops.
2010-11-25 11:42:17 +01:00
Mike Pall
7338456796
Support os.exit(status|true|false [,close]) (from Lua 5.2).
2010-11-22 22:39:06 +01:00
Mike Pall
367ff0cdaa
Parse '\*' escape in strings (from Lua 5.2).
2010-11-22 22:22:12 +01:00
Mike Pall
b776bf91ff
Tighter check on table.sort function compliance (from Lua 5.2).
2010-11-19 18:44:59 +01:00
Mike Pall
52fd87bf34
Add support for "%g" character class in patterns (from Lua 5.2).
2010-11-19 18:37:10 +01:00
Mike Pall
7cc981c140
string.format("%q", str) is now fully reversible (from Lua 5.2).
2010-11-19 18:22:08 +01:00
Mike Pall
29b8959df1
Parse hexadecimal escapes in strings (from Lua 5.2).
2010-11-19 18:15:50 +01:00
Mike Pall
57cd5026eb
Disable Lua 5.2 features by default. See -DLUAJIT_ENABLE_LUA52COMPAT.
2010-11-19 17:00:11 +01:00
Mike Pall
ba602c9578
Add support for __pairs and __ipairs metamethods (from Lua 5.2).
2010-11-18 00:23:24 +01:00
Mike Pall
3754a8fe7a
Allow running C functions with coroutine.create(), too.
2010-11-17 20:07:55 +01:00
Mike Pall
751ff5b392
Add jit.os string.
2010-11-16 15:05:21 +01:00
Mike Pall
24baf77955
Cleanup architecture, ABI and OS definitions.
2010-11-16 15:03:40 +01:00
Mike Pall
1de05d1147
Avoid using negative hex numbers with DynASM.
2010-11-16 13:41:58 +01:00
Mike Pall
ad29c1f39f
Rename character type handling from lj_ctype* to lj_char*.
2010-11-09 12:09:54 +01:00
Mike Pall
fe21a42a92
Fix conflict between loop branch inversion and HREF+NE/EQ merging.
2010-11-05 23:12:43 +01:00
Mike Pall
188f0b04e1
Number parser shouldn't accept '0x' without hex digits.
2010-11-02 16:01:43 +01:00
Mike Pall
44372a4453
Fix parsing of hex floats.
2010-11-01 17:53:04 +01:00
Mike Pall
ab1b67f73a
Fix collectgarbage("count") result if more than 2GB is in use.
...
Thanks to Tony Finch.
2010-10-25 14:53:37 +02:00
Mike Pall
08b0ede194
Reduce 32GB RLIMIT_DATA on FreeBSD/x64 to allocate low-2GB memory.
...
Thanks to Tony Finch.
2010-10-23 16:31:27 +02:00
Mike Pall
02dc9d1082
Avoid compiler warning.
2010-10-23 15:28:28 +02:00
Mike Pall
65dec38e44
PPC: Preserve RD during array resizing in BC_TSETM.
2010-10-18 16:12:27 +02:00
Mike Pall
5391a5f5b1
Fix recording of y = select(n, ...) for non-int indexes.
2010-10-11 21:52:22 +02:00
Mike Pall
b3cf2c70f4
Decouple SLOAD type and optional conversion.
2010-10-11 21:13:37 +02:00
Mike Pall
cc62edebfd
x64: Fix type check for numbers in compiled code.
2010-10-11 19:24:12 +02:00
Mike Pall
5140b40b44
x64: Optimize internal/external tag conversion in lua_type().
2010-10-11 17:26:07 +02:00
Mike Pall
a3eeee5b3e
PPC: Update DynASM-generated file.
...
PPC/e500v2 interpreter port is now feature-complete.
2010-10-07 02:24:57 +02:00
Mike Pall
a7caa4894c
PPC: Use ZERO register instead of extra load immediate.
2010-10-07 02:21:54 +02:00
Mike Pall
9d201c972a
PPC: Add coroutine.resume/wrap_aux/yield() fast functions.
2010-10-07 02:16:44 +02:00
Mike Pall
9f14e03d6e
PPC: Add string.sub() fast function.
2010-10-06 16:18:24 +02:00