Commit Graph

1444 Commits

Author SHA1 Message Date
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
87b560b3e1 Compile string.find() for fixed string searches (no patterns). 2013-05-08 10:40:22 +02:00
Mike Pall
43de451d78 Partially refactor string.find(). 2013-05-07 20:44:58 +02:00
Mike Pall
2be1c2658f Merge branch 'master' into v2.1 2013-05-02 02:07:38 +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
633d91cea5 Merge branch 'master' into v2.1 2013-04-29 14:29:11 +02:00
Mike Pall
09aeca6abf Fix builtin string to number conversion for overflow digits. 2013-04-29 14:28:10 +02:00
Mike Pall
87993a601d Inhibit CSE for table.concat(). 2013-04-28 11:31:41 +02:00
Mike Pall
4ac25a9132 Compile __concat metamethod. 2013-04-28 01:51:41 +02:00
Mike Pall
8b3a320089 Fix BC_ISTYPE for WIN64 calling conventions. 2013-04-28 01:49:28 +02:00
Mike Pall
c77680824f Compile table.concat(). 2013-04-27 15:52:32 +02:00
Mike Pall
64d2883ab4 Refactor table.concat(). 2013-04-27 15:51:50 +02:00
Mike Pall
723574d08c Optimize BUFHDR code generation.
Rematerialize const buffer pointer instead of spilling.
2013-04-27 00:17:59 +02:00
Mike Pall
068783bf23 Compile string.rep(). 2013-04-26 22:55:24 +02:00
Mike Pall
9b8db403f2 Refactor string.rep(). 2013-04-26 19:57:25 +02:00
Mike Pall
a98e6a70c1 Abstract out some common buffer operations. 2013-04-26 19:20:21 +02:00
Mike Pall
f9421f2b9f Replace string.len with bytecode builtin. 2013-04-26 18:40:39 +02:00
Mike Pall
47fa9a8d8f Change semantics of buffer ops to simplify CSE and DCE. 2013-04-26 13:47:41 +02:00
Mike Pall
5fd659f859 Fix MSVC build. 2013-04-26 10:38:24 +02:00
Mike Pall
bdaf14b2c1 Merge branch 'master' into v2.1 2013-04-26 00:59:35 +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
b6adfff8f4 Compile string.reverse(), string.lower(), string.upper(). 2013-04-26 00:32:08 +02:00
Mike Pall
61cb25b0ca Refactor string.reverse(), string.lower(), string.upper(). 2013-04-26 00:31:10 +02:00
Mike Pall
eeb204cd87 Fix FOLD rules for appending to string buffers. 2013-04-26 00:26:44 +02:00
Mike Pall
7c28448730 Fix os.date() broken by d38d10a3. 2013-04-24 11:24:34 +02:00
Mike Pall
39e53e8c4c Compile string.char(). 2013-04-23 12:40:07 +02:00
Mike Pall
255326afb6 Use explicit conversion type for IR_TOSTR. Add char conversion. 2013-04-23 02:20:03 +02:00
Mike Pall
557391c3b7 Fuse string creation into concats. Optimize single-char concats. 2013-04-23 00:56:03 +02:00
Mike Pall
2cdf90f068 Always emit TOSTR for non-string CAT operands. Fuse in backend. 2013-04-23 00:10:01 +02:00
Mike Pall
1ae3e5204b Fix PHI barrier in BUFPUT FOLD rule. 2013-04-22 22:37:22 +02:00
Mike Pall
a2c78810ca Combine IR instruction dispatch for all assembler backends. 2013-04-22 22:32:41 +02:00
Mike Pall
2ab5e7c5dc Merge branch 'master' into v2.1 2013-04-22 22:30:33 +02:00
Mike Pall
611ec41bca Fix compiler warning. 2013-04-22 22:27:23 +02:00
Mike Pall
2cd4ce6141 Use same HREF+EQ/NE optimization in all assembler backends. 2013-04-22 20:47:39 +02:00
Mike Pall
988e183965 Reorganize generic operations common to all assembler backends. 2013-04-22 17:34:36 +02:00
Mike Pall
5f1781a127 Compile string concatenations (BC_CAT). 2013-04-21 01:01:33 +02:00
Mike Pall
7b629b7bcf Move buffer shrinking to atomic GC phase. 2013-04-21 01:00:01 +02:00
Mike Pall
9ead735159 Add generic load/store with offset to assembler backends. 2013-04-21 00:58:32 +02:00
Mike Pall
e92e29dd4e Merge branch 'master' into v2.1 2013-04-09 16:35:02 +02:00
Mike Pall
f17b038828 Inhibit DSE for implicit loads via calls. 2013-04-09 11:50:33 +02:00
Mike Pall
48912a2dea Merge branch 'master' into v2.1 2013-04-05 20:24:24 +02:00
Mike Pall
b5bbacdc17 Fix jump-range constrained mcode allocation. 2013-04-05 20:22:41 +02:00
Mike Pall
ac14d88030 Merge branch 'master' into v2.1 2013-04-04 18:20:58 +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
df94b81b2d Tune string concatenation. 2013-03-25 17:13:08 +01:00
Mike Pall
59329cfbbf Optimize and refactor printing of numbers to buffers. 2013-03-25 16:41:13 +01:00
Mike Pall
3b0b3afbb1 Merge branch 'master' into v2.1 2013-03-23 14:55:35 +01:00
Mike Pall
172bd95365 FFI: Fix snapshot substitution in SPLIT pass. 2013-03-23 14:51:23 +01:00
Mike Pall
f1dbd65c0e Use string buffer for string.format(). 2013-03-21 22:17:59 +01:00
Mike Pall
fecde1b222 Use string buffer for string.dump(). 2013-03-20 16:56:09 +01:00
Mike Pall
d38d10a3dd Use string buffer for os.date(). 2013-03-20 16:54:30 +01:00
Mike Pall
deb61e0be0 Use string buffer for table.concat(). 2013-03-20 16:51:36 +01:00
Mike Pall
d1645c88a1 Clean up TValue to buffer conversions. 2013-03-18 17:08:37 +01:00
Mike Pall
a98aede377 FFI: Add 64 bit bitwise operations. 2013-03-14 06:03:18 +01:00
Mike Pall
3e8f5ac718 Merge branch 'master' into v2.1 2013-03-13 21:59:40 +01:00
Mike Pall
eea48c8b26 Fix rotate definitions for variable shifts. 2013-03-13 21:58:53 +01:00
Mike Pall
7950894d70 ARM: Rearrange global_State to satisfy imm12 encoding constraints. 2013-03-13 17:12:23 +01:00
Mike Pall
b2edd5cf28 Merge branch 'master' into v2.1 2013-03-04 13:34:01 +01:00
Mike Pall
dac2825e9d Add missing GC steps for io.* functions. 2013-03-03 21:18:22 +01:00
Mike Pall
b65196b7fd Merge branch 'master' into v2.1 2013-02-28 17:53:45 +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
9ec869b362 String buffer refactoring, part 4.
Add lua_State pointer to SBuf for buffer resizing.
2013-02-28 13:43:37 +01:00
Mike Pall
3c0157f426 String buffer refactoring, part 3.
Switch to pointers for start/end of buffer in lexer.
2013-02-28 02:31:30 +01:00
Mike Pall
87c51e7f57 Cleanup lexer source code. 2013-02-28 01:11:49 +01:00
Mike Pall
116cdd7e9a String buffer refactoring, part 2.
Switch to pointers for start/pos/end of buffer.
Abstract out some buffer writers.
2013-02-27 21:28:28 +01:00
Mike Pall
28cfcf7744 String buffer refactoring, part 1.
Move string buffer handling to lj_buf.*.
Use common buffer resizing function.
2013-02-27 17:29:35 +01:00
Mike Pall
d44337a566 Merge branch 'master' into v2.1 2013-02-26 18:31:12 +01:00
Mike Pall
cea899b61a Allow changing *.dll/*.lib name in msvcbuild.bat. 2013-02-26 18:31:01 +01:00
Mike Pall
5e601891fc Replace table.remove with bytecode builtin. 2013-02-24 17:59:04 +01:00
Mike Pall
b8abb4b91d Fix genlibbc. 2013-02-24 17:58:19 +01:00
Mike Pall
41f3ae26d9 Merge branch 'master' into v2.1 2013-02-24 12:43:15 +01:00
Mike Pall
9b7d2e9276 Properly fix MSVC intrinsics for older versions. 2013-02-24 12:41:53 +01:00
Mike Pall
60e380fd93 Replace table.getn/foreach/foreachi with bytecode builtins. 2013-02-23 02:17:50 +01:00
Mike Pall
73ef845fca Add special bytecodes for builtins.
BC_ISTYPE, BC_ISNUM: fast type checks/coercions.
BC_TGETR, BC_TSETR: fast rawgeti/rawseti, no type checks for table/key.
2013-02-23 02:09:19 +01:00
Mike Pall
b359ce804b Remove obsolete non-truncating number to integer conversions. 2013-02-23 01:19:00 +01:00
Mike Pall
fdc0ce8deb Don't modify generated libbc header if unchanged. 2013-02-22 12:29:54 +01:00
Mike Pall
19d5651455 Replace math.deg/math.rad with builtin Lua function. 2013-02-22 01:44:17 +01:00
Mike Pall
e20157c6e6 Add support for embedding LuaJIT bytecode for builtins. 2013-02-22 01:40:41 +01:00
Mike Pall
c3219b7d17 x86/x64: Drop xmm register/memory move tuning for K8. 2013-02-21 17:04:00 +01:00
Mike Pall
57768cd588 x86: Remove x87 support from interpreter.
SSE2 required from now on.
2013-02-21 16:56:59 +01:00
Mike Pall
61fb587d2c BRANCH LuaJIT-2.1 2013-02-21 16:49:04 +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