Commit Graph

1016 Commits

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