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