Commit Graph

1389 Commits

Author SHA1 Message Date
Mike Pall
3eeb7d3aa0 FFI: Preserve intermediate string for const char * conversion.
Otherwise the trailing NUL is lost.
2013-05-29 23:05:05 +02:00
Mike Pall
5a261dd92c Fix compatibility issues with Illumos.
Thanks to Theo Schlossnagle.
2013-05-25 10:18:12 +02:00
Mike Pall
d686217926 Add missing PHI barrier to string.sub(str, a, b) == kstr FOLD rule. 2013-05-24 01:28:40 +02:00
Mike Pall
2c3e80d4fd FFI: Must sink XBAR together with XSTOREs. 2013-05-23 22:15:51 +02:00
Mike Pall
7ef2b55fc0 FFI: Fix unroll limit for ffi.fill(). 2013-05-23 22:17:45 +02:00
Mike Pall
890754ee27 FFI: Insert no-op type conversion for pointer to integer cast. 2013-05-23 19:55:09 +02:00
Mike Pall
1593e7750b FFI: Improve error messages for arithmetic and comparison operators. 2013-05-18 14:11:59 +02:00
Mike Pall
0f79d4741f Handle calls with max. args in backends even after SPLIT. 2013-05-16 19:59:38 +02:00
Mike Pall
1c7650f782 FFI: Fix calling conventions for ARM hard-float EABI.
Properly classify nested (non-transparent) structs.
2013-05-16 14:47:20 +02:00
Mike Pall
5dabdb2e70 FFI: Fix calling conventions for 32 bit OSX and iOS simulator.
OSX uses -freg-struct-return, which returns small structs in regs.
Thanks to Adriano Bertucci.
2013-05-16 14:35:00 +02:00
Mike Pall
1a5fd521b8 Add partial support for building with MingW64 GCC 4.8-SEH.
Error handling works, C++ interoperability generally works.
C++ destructors in libs compiled with G++ cause trouble (ok with MSVC).
2013-05-15 18:48:06 +02:00
Mike Pall
23aa02fb51 FFI: Ignore CTF_LONG in ffi.istype(). 2013-05-13 10:20:59 +02:00
Mike Pall
b030788401 Fix optional argument handling in table.concat(). 2013-05-08 11:05:43 +02:00
Mike Pall
c5d7666ec8 Fix optional argument handling while recording builtins. 2013-05-08 10:46:43 +02:00
Mike Pall
5d6db413ae FFI: Fix tailcall in lowest frame to C function with bool result. 2013-05-02 02:04:41 +02:00
Mike Pall
09aeca6abf Fix builtin string to number conversion for overflow digits. 2013-04-29 14:28:10 +02:00
Mike Pall
895a8bc91f Tighten requirements for non-default optimization flags.
FOLD is required for FWD/DSE optimizations.
2013-04-26 00:54:53 +02:00
Mike Pall
611ec41bca Fix compiler warning. 2013-04-22 22:27:23 +02:00
Mike Pall
f17b038828 Inhibit DSE for implicit loads via calls. 2013-04-09 11:50:33 +02:00
Mike Pall
b5bbacdc17 Fix jump-range constrained mcode allocation. 2013-04-05 20:22:41 +02:00
Mike Pall
389822d606 Fix spurious red zone overflows in machine code generation. 2013-04-04 17:19:31 +02:00
Mike Pall
6ba65cefb0 FFI/x86: Fix register allocation for 64 bit comparisons. 2013-04-04 17:05:00 +02:00
Mike Pall
172bd95365 FFI: Fix snapshot substitution in SPLIT pass. 2013-03-23 14:51:23 +01:00
Mike Pall
eea48c8b26 Fix rotate definitions for variable shifts. 2013-03-13 21:58:53 +01:00
Mike Pall
dac2825e9d Add missing GC steps for io.* functions. 2013-03-03 21:18:22 +01:00
Mike Pall
78c97bc5a1 MIPS: Fix cache flush/sync for JIT-compiled code jump area. 2013-02-28 17:52:31 +01:00
Mike Pall
3e286c1e72 ARM: Fix cache flush/sync for exit stubs of JIT-compiled code. 2013-02-28 17:51:16 +01:00
Mike Pall
cea899b61a Allow changing *.dll/*.lib name in msvcbuild.bat. 2013-02-26 18:31:01 +01:00
Mike Pall
9b7d2e9276 Properly fix MSVC intrinsics for older versions. 2013-02-24 12:41:53 +01:00
Mike Pall
d4bc6ab756 Fix memory access check for fast string interning. 2013-02-21 16:22:26 +01:00
Mike Pall
e7633dba1e RELEASE LuaJIT-2.0.1 (fixed) 2013-02-19 21:14:27 +01:00
Mike Pall
92699e9ea9 RELEASE LuaJIT-2.0.1 2013-02-19 18:05:39 +01:00
Mike Pall
c7f0b6bca0 Fix capitalization of 'Xbox'. 2013-02-13 11:57:04 +01:00
Mike Pall
4e35c025dc PPC/e500: Fix lj_vm_floor() for inf/nan. 2013-02-12 12:37:18 +01:00
Mike Pall
339b77ee05 OSX: Add support for Mach-O object files to -b option.
Thanks to Adam Strzelecki.
2013-02-11 17:58:06 +01:00
Mike Pall
250b24f937 Improve buffer handling for io.read(). 2013-02-11 14:50:18 +01:00
Mike Pall
4a44c4ff69 Bump copyright date to 2013. 2013-02-11 12:54:48 +01:00
Mike Pall
8b46013fdd FFI: Stricter parsing of declaration specifiers. 2013-02-03 12:47:52 +01:00
Mike Pall
fe9934feea FFI: Fix handling of qualified transparent structs/unions. 2013-02-03 11:51:19 +01:00
Mike Pall
4eb4b8ab84 Keep line number for KPRI to KNIL optimization. 2013-01-31 12:36:23 +01:00
Mike Pall
f772bed34b Fix XBox 360 port. 2013-01-30 20:37:39 +01:00
Mike Pall
a3db8f3562 Avoid leaking memory on kernels with recalcitrant mmap() behavior. 2013-01-28 12:29:31 +01:00
Mike Pall
1651684417 Add missing FOLD rules for U32 conversions. 2013-01-21 16:49:03 +01:00
Mike Pall
89e4650bae Add XBox 360 port.
Thanks to Eddie Edwards.
2013-01-21 16:43:49 +01:00
Mike Pall
2c293a96de FFI: Load FFI library on-demand for bytecode with cdata literals. 2013-01-15 01:16:37 +01:00
Mike Pall
2e8e587638 x86/x64: Always mark ref for shift count as non-weak. 2013-01-14 16:03:32 +01:00
Mike Pall
fec750c892 Another fix for PS3 build. 2013-01-14 14:14:12 +01:00
Mike Pall
ad36fdac50 PPC/e500: Remove assembler code for lj_vm_foldarith(). 2013-01-11 13:36:01 +01:00
Mike Pall
8a3be5da74 Remove redundant code in jit/*.lua. 2013-01-11 12:30:10 +01:00
Mike Pall
f0a0a23533 Remove fictitious Solaris define. 2013-01-11 12:23:44 +01:00
Mike Pall
e434ab505e Fix PS3 build. 2013-01-11 12:19:53 +01:00
Mike Pall
f22d5d9eef Fix discharge order of comparisons in Lua parser. 2013-01-11 12:19:05 +01:00
Mike Pall
fb101458c5 Allow using MSVC intrinsics with older versions. 2013-01-03 21:41:27 +01:00
Mike Pall
8b97dc738f FFI: Fix code generation for bool call result check on x86/x64. 2013-01-02 23:56:49 +01:00
Mike Pall
9827650582 ARM: Handle armv7s arch defines.
Thanks to Joey Liaw.
2012-12-10 09:55:14 +01:00
Mike Pall
e422ae2d9d Leave hook when resume catches error thrown from hook. 2012-12-06 14:14:11 +01:00
Mike Pall
41738e371a ARM: Fix code generation for integer math.min/math.max. 2012-12-02 21:22:00 +01:00
Mike Pall
ee748dd029 ARM: Fix armhf call argument handling. 2012-12-02 21:21:02 +01:00
Mike Pall
405020c405 FFI: Add debug define to check for unanchored CTypes. 2012-11-26 11:01:59 +01:00
Mike Pall
2ad9834df6 Add missing GC steps for template table creation. 2012-11-16 13:20:12 +01:00
Mike Pall
16f23458bc FFI: Change priority of table initializer variants for structs. 2012-11-15 00:26:34 +01:00
Mike Pall
2689f32453 Prevent erroneous x64 builds with non-native exception handling. 2012-11-14 22:16:10 +01:00
Mike Pall
c77a9e4c65 Don't clear frame for out-of-memory error. 2012-11-14 21:54:27 +01:00
Mike Pall
32fa68d3e8 Fix assertion. 2012-11-14 21:54:17 +01:00
Mike Pall
1cd13f6b33 x64: Don't fuse implicitly 32-to-64 extended operands. 2012-11-13 19:20:52 +01:00
Mike Pall
0613358991 ARM: Fix ordered comparisons for number <=> non-number. 2012-11-07 18:05:23 +01:00
Mike Pall
8a11869d49 FFI: Fix stack-adjustment for __thiscall callbacks. 2012-11-07 18:04:58 +01:00
Mike Pall
4e5ef81b86 FFI: Fix recording of bool call result check on x86/x64. 2012-11-06 17:05:37 +01:00
Mike Pall
8a1a6097be FFI: Fix signedness of bool. 2012-11-06 17:04:21 +01:00
Mike Pall
c022692ab0 Don't propagate implicitly widened number to index metamethods. 2012-11-06 16:58:52 +01:00
Mike Pall
ae1987d535 Fix CONV.num.int sinking. 2012-11-06 16:57:50 +01:00
Mike Pall
69906d15de Don't create unneeded array part for template tables. 2012-11-06 16:56:25 +01:00
Mike Pall
eb6f890ebd RELEASE LuaJIT-2.0.0-rc1 2012-10-31 18:24:10 +01:00
Mike Pall
b0dde5b2b1 FFI: Fix code generation for replay of sunk float fields. 2012-10-29 17:21:44 +01:00
Mike Pall
c7990063e0 Fix builtin string to number conversion for INT_MIN. 2012-10-24 23:46:21 +02:00
Mike Pall
1d5c2ce4e2 Replace error with PANIC for callbacks from JIT-compiled code. 2012-10-21 19:17:14 +02:00
Mike Pall
f6536c6696 Fix detection of immutable upvalues. 2012-10-21 13:51:12 +02:00
Mike Pall
614e78d1f6 Fix recording of equality comparisons with __eq metamethods. 2012-10-19 17:03:41 +02:00
Mike Pall
e32cc2a0dc Fix Android/x86 build. 2012-10-17 14:22:26 +02:00
Mike Pall
4baa01be78 RELEASE LuaJIT-2.0.0-beta11 2012-10-16 20:13:01 +02:00
Mike Pall
bbe35adfcd MIPS: Compile math.sqrt() to sqrt.d instruction. 2012-10-15 21:28:10 +02:00
Mike Pall
a58b86dad3 PPC: Compile math.sqrt() to fsqrt instruction. 2012-10-15 21:23:20 +02:00
Mike Pall
2621617a92 ARM: Drop hard-fp variants of floor/ceil/trunc.
Soft-fp variants are faster on a Cortex-A9. Duh.
2012-10-15 16:53:03 +02:00
Mike Pall
1447ee6520 ARM, MIPS: Fix workaround for argument GPRs vs. FPR remat. 2012-10-15 15:47:15 +02:00
Mike Pall
93e4040b60 Workaround for broken Android sprintf("%g", -0.0). 2012-10-15 01:31:56 +02:00
Mike Pall
c25d4daaa5 Add note to recalcitrant distro maintainers. 2012-10-14 21:52:35 +02:00
Mike Pall
b50375a11c From Lua 5.2: Add package.loadlib(libname, "*"). 2012-10-12 14:42:40 +02:00
Mike Pall
fff12979fe From Lua 5.2: Add format options to io.lines(). 2012-10-12 14:11:41 +02:00
Mike Pall
fd292c9f26 Fix assertion. 2012-10-11 21:40:46 +02:00
Mike Pall
0b55e05d06 FFI: Compile ffi.gc(). 2012-10-10 18:56:16 +02:00
Mike Pall
1c626112a0 FFI: Compile ffi.sizeof(), ffi.alignof() and ffi.offsetof(). 2012-10-10 18:16:18 +02:00
Mike Pall
4a97faef7e FFI: Compile array/struct copies. 2012-10-09 21:51:30 +02:00
Mike Pall
a7d1dbacb1 FFI: Optimize ffi.copy() and ffi.fill(). 2012-10-09 21:49:57 +02:00
Mike Pall
5ebe4990ba Add LJ_TARGET_UNALIGNED. 2012-10-09 21:42:42 +02:00
Mike Pall
0452e97ba0 Add FOLD rules for CONV.int.i8/u8/i16/u16 of KINT. 2012-10-09 21:36:56 +02:00
Mike Pall
eabfdfe1aa Don't use stack unwinding for lua_yield(). 2012-10-09 13:19:57 +02:00
Mike Pall
da682b0e91 FFI: Add support for copy constructors. 2012-10-08 17:15:28 +02:00
Mike Pall
c681e009c0 PPC: Fix string.sub() range check. 2012-10-07 17:12:28 +02:00
Mike Pall
2f5ed5d0df From Lua 5.2: Add string.rep(s, n, sep). 2012-10-07 17:11:39 +02:00
Mike Pall
0561a56938 From Lua 5.2: Add math.log(x, base). 2012-10-07 15:47:11 +02:00
Mike Pall
0d62e2e1ab Clarify comments in Makefile on -DLUAJIT_ENABLE_LUA52COMPAT. 2012-10-04 13:55:34 +02:00
Mike Pall
2e9f4efd20 Fix scope for resolving break labels. 2012-10-03 11:53:18 +02:00
Mike Pall
8d8dbf27b8 Fix x64 build. 2012-10-02 18:07:31 +02:00
Mike Pall
faf05c3a13 From Lua 5.2: '%s' option to string.format() behaves like tostring(). 2012-10-02 11:59:32 +02:00
Mike Pall
0d7094f36e From Lua 5.2: Return nil for bad position in string.find().
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-10-02 11:56:33 +02:00
Mike Pall
b66ab96a62 Move a GC macro. 2012-10-02 09:57:49 +02:00
Mike Pall
fcddd5a3a0 From Lua 5.2: Add luaL_traceback(). 2012-10-01 20:45:30 +02:00
Mike Pall
3ad61689cf Update dependencies. 2012-09-28 19:32:39 +02:00
Mike Pall
d08e7bd518 From Lua 5.2: Allow mixed metamethods for ordered comparisons.
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-28 19:30:08 +02:00
Mike Pall
550ac44e41 From Lua 5.2: Remove error for ambiguous function call syntax.
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-28 18:12:43 +02:00
Mike Pall
7a6bb9a208 From Lua 5.2: Return file object for io.write() and file:write().
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-28 17:54:18 +02:00
Mike Pall
26841296ab From Lua 5.2: Add table.pack(). Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2012-09-28 17:29:17 +02:00
Mike Pall
e013206dd8 FFI: ctypeid of ctype object is immutable. 2012-09-27 14:48:13 +02:00
Mike Pall
d4d9807f45 Fold KPTR + offset in SPLIT pass. 2012-09-27 14:39:16 +02:00
Mike Pall
0ecdff43e8 x86: Fix register allocation for calls returning register pair. 2012-09-27 14:16:18 +02:00
Mike Pall
cfca926cc2 From Lua 5.2: Extended results from os.execute() and pipe:close().
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-24 19:00:54 +02:00
Mike Pall
125cc87988 From Lua 5.2: Add debug.getuservalue() and debug.setuservalue().
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-24 17:52:32 +02:00
Mike Pall
ca0bb4881f From Lua 5.2: Add rawlen(). Needs -DLUAJIT_ENABLE_LUA52COMPAT. 2012-09-24 17:33:32 +02:00
Mike Pall
4c7c2c8319 Rearrange library functions to get a fixed FF_next. 2012-09-24 17:13:53 +02:00
Mike Pall
d9c5eba1bb Remove some library functions for no-JIT/no-FFI builds. 2012-09-24 16:56:07 +02:00
Mike Pall
2ff4afeb4f Allow conditional inclusion of builtin library functions. 2012-09-24 16:55:10 +02:00
Mike Pall
2ba16862c7 From Lua 5.2: Add mode and env arguments to load*(). 2012-09-21 16:33:14 +02:00
Mike Pall
3dceaa9a74 Move load/dump functions to lj_load.c. Add load modes. 2012-09-21 16:32:24 +02:00
Mike Pall
98f05808fa Fix package.searchpath(). 2012-09-21 16:14:17 +02:00
Mike Pall
40afe71c3f Fix last commit. 2012-09-20 17:41:32 +02:00
Mike Pall
8352335c74 From Lua 5.2: Add debug.upvalueid() and debug.upvaluejoin().
Ditto for lua_upvalueid() and lua_upvaluejoin().
2012-09-20 17:36:15 +02:00
Mike Pall
a9baead59f From Lua 5.2: debug.getinfo(..., "u") returns nparams and isvararg. 2012-09-20 15:50:20 +02:00
Mike Pall
965694b0af Fix 'f' and 'L' options for debug.getinfo() and lua_getinfo(). 2012-09-20 15:19:48 +02:00
Mike Pall
2d3c1967c7 Disable LUA_COMPAT_GFIND and LUA_COMPAT_MOD in Lua 5.2 mode. 2012-09-19 18:14:00 +02:00
Mike Pall
16d8c83743 From Lua 5.2: debug.setmetatable() returns object.
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-19 16:33:50 +02:00
Mike Pall
1afcea1435 From Lua 5.2: 'break' allowed anywhere.
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2012-09-19 16:33:39 +02:00
Mike Pall
c687d01c46 From Lua 5.2: debug.getlocal() accepts function arg, too. 2012-09-19 12:08:35 +02:00
Mike Pall
7d49b19ad0 From Lua 5.2: debug.getlocal()/setlocal() treats slot < 0 as vararg. 2012-09-19 12:06:56 +02:00
Mike Pall
998c656dc4 From Lua 5.2: debug.getupvalue() returns "" for C function upvalues. 2012-09-19 12:03:03 +02:00
Mike Pall
ead325b0c9 From Lua 5.2: Add goto and :🏷️: statements. 2012-09-16 18:46:04 +02:00
Mike Pall
aed2009378 Fix despecialization of ITERN when already running. 2012-09-12 16:58:47 +02:00
Mike Pall
23932a6c8b Use 0/1 macro for Lua 5.2 compatibility. 2012-09-12 11:20:47 +02:00
Mike Pall
039bf85e26 Add more assertions for stack consistency during recording. 2012-09-12 11:02:19 +02:00
Mike Pall
76ab3709da FFI: Correctly propagate alignment when interning nested types. 2012-09-10 18:05:54 +02:00
Mike Pall
21cea85d92 FFI: Always resolve metamethods for pointers to structs. 2012-09-08 21:03:40 +02:00
Mike Pall
0648fd47cb FFI: Handle __pairs/__ipairs metamethods for cdata objects. 2012-09-03 21:11:08 +02:00
Mike Pall
90ec1f90d0 Fix recording of ctype() constructors for pointers. 2012-09-03 21:08:37 +02:00
Mike Pall
a6d636c508 Preserve snapshot #0 PC for all traces (potential gcstep exit). 2012-09-01 00:58:00 +02:00
Mike Pall
d3699997fa Add check for unsupported MIPS soft-float targets. 2012-08-30 10:31:26 +02:00
Mike Pall
ff00a78f3a Limit recursion depth in string.match() et al. 2012-08-28 21:22:23 +02:00
Mike Pall
751cd9d821 Don't constify upvalues that may retain large amounts of memory. 2012-08-28 15:24:53 +02:00
Mike Pall
c7826af5a0 FFI: Detect type punning through unions. 2012-08-27 20:53:37 +02:00
Mike Pall
76b18b2b46 Add table of IR type sizes. 2012-08-27 20:27:01 +02:00
Mike Pall
30f458fb4d ARM, PPC, MIPS: Improve XLOAD operand fusion and register hinting. 2012-08-27 20:25:54 +02:00
Mike Pall
1e477e6487 Fix underflow handling in builtin string to number conversion. 2012-08-27 14:26:50 +02:00