]> git.ipfire.org Git - thirdparty/LuaJIT.git/log
thirdparty/LuaJIT.git
14 years agoDUALNUM: Handle integer type in FFI.
Mike Pall [Sun, 27 Feb 2011 00:31:22 +0000 (01:31 +0100)] 
DUALNUM: Handle integer type in FFI.

14 years agox64: Improve accuracy of x^-k.
Mike Pall [Fri, 25 Feb 2011 10:46:29 +0000 (11:46 +0100)] 
x64: Improve accuracy of x^-k.

14 years agoFix table.maxn().
Mike Pall [Wed, 23 Feb 2011 13:52:50 +0000 (14:52 +0100)] 
Fix table.maxn().

14 years agoFFI: Record calls to functions with void results.
Mike Pall [Tue, 22 Feb 2011 23:28:49 +0000 (00:28 +0100)] 
FFI: Record calls to functions with void results.

14 years agoEliminate dead slots in snapshots using bytecode data-flow analysis.
Mike Pall [Tue, 22 Feb 2011 21:39:12 +0000 (22:39 +0100)] 
Eliminate dead slots in snapshots using bytecode data-flow analysis.

14 years agoFrom Lua 5.2: Support load(string).
Mike Pall [Sun, 20 Feb 2011 20:17:49 +0000 (21:17 +0100)] 
From Lua 5.2: Support load(string).

14 years agoFrom Lua 5.2: fp:read("*L").
Mike Pall [Sun, 20 Feb 2011 20:07:19 +0000 (21:07 +0100)] 
From Lua 5.2: fp:read("*L").

14 years agoFrom Lua 5.2: table.unpack(). Needs -DLUAJIT_ENABLE_LUA52COMPAT.
Mike Pall [Sun, 20 Feb 2011 19:53:09 +0000 (20:53 +0100)] 
From Lua 5.2: table.unpack(). Needs -DLUAJIT_ENABLE_LUA52COMPAT.

14 years agoFrom Lua 5.2: Add package.searchpath().
Mike Pall [Sun, 20 Feb 2011 19:48:13 +0000 (20:48 +0100)] 
From Lua 5.2: Add package.searchpath().

Thanks to F. Perrad.

14 years agoFrom Lua 5.2: Empty statement. Needs -DLUAJIT_ENABLE_LUA52COMPAT.
Mike Pall [Sun, 20 Feb 2011 19:38:36 +0000 (20:38 +0100)] 
From Lua 5.2: Empty statement. Needs -DLUAJIT_ENABLE_LUA52COMPAT.

14 years agoFrom Lua 5.2: coroutine.running(). Needs -DLUAJIT_ENABLE_LUA52COMPAT.
Mike Pall [Sun, 20 Feb 2011 19:33:00 +0000 (20:33 +0100)] 
From Lua 5.2: coroutine.running(). Needs -DLUAJIT_ENABLE_LUA52COMPAT.

14 years agoFFI: Fix recording of userdata conversions.
Mike Pall [Sun, 20 Feb 2011 01:13:32 +0000 (02:13 +0100)] 
FFI: Fix recording of userdata conversions.

14 years agoFFI: Fix 64 bit to 32 bit truncations on x64.
Mike Pall [Sat, 19 Feb 2011 23:18:46 +0000 (00:18 +0100)] 
FFI: Fix 64 bit to 32 bit truncations on x64.

14 years agoFFI: Fix recording of ffi.copy() and ffi.fill().
Mike Pall [Sat, 19 Feb 2011 22:04:16 +0000 (23:04 +0100)] 
FFI: Fix recording of ffi.copy() and ffi.fill().

14 years agoFFI: Improve conversion error messages.
Mike Pall [Sat, 19 Feb 2011 11:56:12 +0000 (12:56 +0100)] 
FFI: Improve conversion error messages.

14 years agoFFI: Fix docs about C bool -> Lua boolean conversion.
Mike Pall [Fri, 18 Feb 2011 19:35:44 +0000 (20:35 +0100)] 
FFI: Fix docs about C bool -> Lua boolean conversion.

Thanks to M. Kottman.

14 years agoDUALNUM: Add integer type to core VM.
Mike Pall [Wed, 16 Feb 2011 23:44:14 +0000 (00:44 +0100)] 
DUALNUM: Add integer type to core VM.

14 years agoDUALNUM: Add build infrastructure.
Mike Pall [Wed, 16 Feb 2011 23:42:57 +0000 (00:42 +0100)] 
DUALNUM: Add build infrastructure.

Note: DUALNUM is disabled by default and won't work yet.

14 years agoFFI: Fix management of C library handles for default namespace.
Mike Pall [Wed, 16 Feb 2011 22:52:18 +0000 (23:52 +0100)] 
FFI: Fix management of C library handles for default namespace.

14 years agoFix error handling within metamethods. Special-case FFI mm.
Mike Pall [Tue, 15 Feb 2011 23:38:23 +0000 (00:38 +0100)] 
Fix error handling within metamethods. Special-case FFI mm.

14 years agoAdd workaround for lj_meta_tset() newkey inconsistency.
Mike Pall [Tue, 15 Feb 2011 00:02:08 +0000 (01:02 +0100)] 
Add workaround for lj_meta_tset() newkey inconsistency.

14 years agoPPC: Disable FFI due to NYI: comparisons and calls.
Mike Pall [Mon, 14 Feb 2011 22:25:18 +0000 (23:25 +0100)] 
PPC: Disable FFI due to NYI: comparisons and calls.

14 years agoFix type mismatch in XSTORE forwarding.
Mike Pall [Mon, 14 Feb 2011 22:02:16 +0000 (23:02 +0100)] 
Fix type mismatch in XSTORE forwarding.

14 years agoRELEASE LuaJIT-2.0.0-beta6 v2.0.0-beta6
Mike Pall [Fri, 11 Feb 2011 15:28:37 +0000 (16:28 +0100)] 
RELEASE LuaJIT-2.0.0-beta6

14 years agoFFI: Disable unused code for some build modes.
Mike Pall [Fri, 11 Feb 2011 15:22:58 +0000 (16:22 +0100)] 
FFI: Disable unused code for some build modes.

14 years agoUpdate changelog.
Mike Pall [Fri, 11 Feb 2011 14:52:31 +0000 (15:52 +0100)] 
Update changelog.

14 years agoCleanup of docs.
Mike Pall [Fri, 11 Feb 2011 12:50:01 +0000 (13:50 +0100)] 
Cleanup of docs.

14 years agoFFI: Finish FFI docs.
Mike Pall [Fri, 11 Feb 2011 00:21:46 +0000 (01:21 +0100)] 
FFI: Finish FFI docs.

14 years agoFFI: Finish docs on FFI semantics. Phew.
Mike Pall [Thu, 10 Feb 2011 02:12:09 +0000 (03:12 +0100)] 
FFI: Finish docs on FFI semantics. Phew.

14 years agoFix various HTML errors in the docs.
Mike Pall [Thu, 10 Feb 2011 02:10:38 +0000 (03:10 +0100)] 
Fix various HTML errors in the docs.

14 years agoFFI: Add more docs on FFI semantics.
Mike Pall [Wed, 9 Feb 2011 00:26:02 +0000 (01:26 +0100)] 
FFI: Add more docs on FFI semantics.

14 years agoFFI: Document current FFI implementation status.
Mike Pall [Tue, 8 Feb 2011 00:20:53 +0000 (01:20 +0100)] 
FFI: Document current FFI implementation status.

14 years agoFix bytecode optimization of and/or operators.
Mike Pall [Tue, 8 Feb 2011 00:00:47 +0000 (01:00 +0100)] 
Fix bytecode optimization of and/or operators.

14 years agoFFI: Record ffi.abi().
Mike Pall [Mon, 7 Feb 2011 23:09:33 +0000 (00:09 +0100)] 
FFI: Record ffi.abi().

14 years agoFFI: Record ffi.copy() and ffi.fill().
Mike Pall [Mon, 7 Feb 2011 22:49:27 +0000 (23:49 +0100)] 
FFI: Record ffi.copy() and ffi.fill().

14 years agoFFI: Fix recording of pointer arithmetic.
Mike Pall [Mon, 7 Feb 2011 22:42:51 +0000 (23:42 +0100)] 
FFI: Fix recording of pointer arithmetic.

14 years agoAdd IR_XBAR, a barrier against XLOAD/XSTORE optimizations.
Mike Pall [Mon, 7 Feb 2011 20:59:25 +0000 (21:59 +0100)] 
Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations.

14 years agoImprove static assertion macro.
Mike Pall [Mon, 7 Feb 2011 20:44:01 +0000 (21:44 +0100)] 
Improve static assertion macro.

14 years agoFFI: Allow cdata types for integer arguments of ffi.* functions.
Mike Pall [Mon, 7 Feb 2011 16:13:14 +0000 (17:13 +0100)] 
FFI: Allow cdata types for integer arguments of ffi.* functions.

14 years agoFFI: Fix handling of enum arguments to C calls.
Mike Pall [Mon, 7 Feb 2011 15:41:51 +0000 (16:41 +0100)] 
FFI: Fix handling of enum arguments to C calls.

14 years agoFFI: Perform stricter checks in ffi.cast(). Record ffi.cast().
Mike Pall [Sun, 6 Feb 2011 11:46:18 +0000 (12:46 +0100)] 
FFI: Perform stricter checks in ffi.cast(). Record ffi.cast().

14 years agoFFI: Simplify and fix tonumber() for cdata objects.
Mike Pall [Sun, 6 Feb 2011 11:23:58 +0000 (12:23 +0100)] 
FFI: Simplify and fix tonumber() for cdata objects.

14 years agoStrength-reduce 32 to 64 bit widening for XLOAD U8/U16 inputs.
Mike Pall [Sat, 5 Feb 2011 23:45:39 +0000 (00:45 +0100)] 
Strength-reduce 32 to 64 bit widening for XLOAD U8/U16 inputs.

14 years agoFFI: Limit number of arguments for recorded calls.
Mike Pall [Sat, 5 Feb 2011 22:01:10 +0000 (23:01 +0100)] 
FFI: Limit number of arguments for recorded calls.

14 years agoFFI: Record simple C function calls.
Mike Pall [Sat, 5 Feb 2011 20:50:15 +0000 (21:50 +0100)] 
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.

14 years agoFFI: Optimize snapshots for cdata comparisons.
Mike Pall [Sat, 5 Feb 2011 17:54:08 +0000 (18:54 +0100)] 
FFI: Optimize snapshots for cdata comparisons.

14 years agoFix metamethod comparisons triggered by BC_ISEQP/BC_ISNEP.
Mike Pall [Sat, 5 Feb 2011 15:32:08 +0000 (16:32 +0100)] 
Fix metamethod comparisons triggered by BC_ISEQP/BC_ISNEP.

14 years agoFFI: Record C library namespace lookups.
Mike Pall [Sat, 5 Feb 2011 13:16:16 +0000 (14:16 +0100)] 
FFI: Record C library namespace lookups.

14 years agoTreat metatables of special userdata objects as immutable.
Mike Pall [Sat, 5 Feb 2011 13:09:50 +0000 (14:09 +0100)] 
Treat metatables of special userdata objects as immutable.

14 years agoFFI: Record ffi.string().
Mike Pall [Sat, 5 Feb 2011 00:05:56 +0000 (01:05 +0100)] 
FFI: Record ffi.string().

14 years agoFFI: Avoid intermediate boxes for tonumber(), too.
Mike Pall [Sat, 5 Feb 2011 00:04:41 +0000 (01:04 +0100)] 
FFI: Avoid intermediate boxes for tonumber(), too.

14 years agoFFI: Disable MUL => BSHL FOLD rule on 32 bit.
Mike Pall [Thu, 3 Feb 2011 19:10:13 +0000 (20:10 +0100)] 
FFI: Disable MUL => BSHL FOLD rule on 32 bit.

14 years agoFFI: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers.
Mike Pall [Thu, 3 Feb 2011 03:13:51 +0000 (04:13 +0100)] 
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.

14 years agoRename IR_POWI to IR_POW.
Mike Pall [Wed, 2 Feb 2011 20:33:11 +0000 (21:33 +0100)] 
Rename IR_POWI to IR_POW.

14 years agoFFI: Add basic FOLD rules for 64 bit integer DIV, MOD and POWI.
Mike Pall [Wed, 2 Feb 2011 20:25:43 +0000 (21:25 +0100)] 
FFI: Add basic FOLD rules for 64 bit integer DIV, MOD and POWI.

14 years agoFFI: Record 64 bit integer divide and modulo.
Mike Pall [Wed, 2 Feb 2011 19:53:10 +0000 (20:53 +0100)] 
FFI: Record 64 bit integer divide and modulo.

14 years agoUse names defined in lualib.h for library registration.
Mike Pall [Wed, 2 Feb 2011 01:38:59 +0000 (02:38 +0100)] 
Use names defined in lualib.h for library registration.

14 years agoFix OSX build to work with newer ld64 versions.
Mike Pall [Wed, 2 Feb 2011 01:31:59 +0000 (02:31 +0100)] 
Fix OSX build to work with newer ld64 versions.

14 years agoAdd SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
Mike Pall [Wed, 2 Feb 2011 01:29:37 +0000 (02:29 +0100)] 
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.

14 years agoAdd SSE3 CPU feature detection.
Mike Pall [Tue, 1 Feb 2011 18:28:03 +0000 (19:28 +0100)] 
Add SSE3 CPU feature detection.

14 years agoFFI: Limit index range for complex numbers.
Mike Pall [Sat, 29 Jan 2011 18:47:37 +0000 (19:47 +0100)] 
FFI: Limit index range for complex numbers.

14 years agoFFI: Implement POSIX/x64 struct-by-value calling conventions.
Mike Pall [Sat, 29 Jan 2011 12:04:16 +0000 (13:04 +0100)] 
FFI: Implement POSIX/x64 struct-by-value calling conventions.

14 years agoFix 64 bit case of (SUB x x) and (BXOR x x) FOLD rules.
Mike Pall [Fri, 28 Jan 2011 01:17:35 +0000 (02:17 +0100)] 
Fix 64 bit case of (SUB x x) and (BXOR x x) FOLD rules.

14 years agoFFI: Split up 64 bit x^k helper into signed/unsigned.
Mike Pall [Fri, 28 Jan 2011 01:15:30 +0000 (02:15 +0100)] 
FFI: Split up 64 bit x^k helper into signed/unsigned.

14 years agoFFI: Fix various issues with C type table reallocations.
Mike Pall [Thu, 27 Jan 2011 15:28:24 +0000 (16:28 +0100)] 
FFI: Fix various issues with C type table reallocations.

14 years agoFFI: Fix symbol name redirection.
Mike Pall [Thu, 27 Jan 2011 15:07:02 +0000 (16:07 +0100)] 
FFI: Fix symbol name redirection.

14 years agoFFI: Move code for cdata arithmetic to lj_carith.c.
Mike Pall [Wed, 26 Jan 2011 20:46:02 +0000 (21:46 +0100)] 
FFI: Move code for cdata arithmetic to lj_carith.c.

14 years agoFFI: Record cdata indexing with integer cdata.
Mike Pall [Wed, 26 Jan 2011 20:14:58 +0000 (21:14 +0100)] 
FFI: Record cdata indexing with integer cdata.

14 years agoFFI: Allow cdata indexing with integer cdata.
Mike Pall [Wed, 26 Jan 2011 20:12:54 +0000 (21:12 +0100)] 
FFI: Allow cdata indexing with integer cdata.

14 years agoFix comments for BC_ITERN.
Mike Pall [Wed, 26 Jan 2011 18:55:55 +0000 (19:55 +0100)] 
Fix comments for BC_ITERN.

14 years agoFFI: Convert enum return value of C function to underlying type.
Mike Pall [Wed, 26 Jan 2011 13:18:12 +0000 (14:18 +0100)] 
FFI: Convert enum return value of C function to underlying type.

14 years agoOne more fix for the trace flush logic. Sigh.
Mike Pall [Wed, 26 Jan 2011 01:34:30 +0000 (02:34 +0100)] 
One more fix for the trace flush logic. Sigh.

14 years agoFFI: Add symbol name redirection.
Mike Pall [Wed, 26 Jan 2011 01:31:19 +0000 (02:31 +0100)] 
FFI: Add symbol name redirection.

This works like the GCC extension, e.g.:
FILE *fopen(const char *fn, const char *mode) __asm__("" "fopen64");

14 years agoARM: Add ARM target architecture selection (disabled).
Mike Pall [Tue, 25 Jan 2011 17:50:24 +0000 (18:50 +0100)] 
ARM: Add ARM target architecture selection (disabled).

14 years agoFFI: Don't force zero terminator on string to array conversion.
Mike Pall [Mon, 24 Jan 2011 14:51:33 +0000 (15:51 +0100)] 
FFI: Don't force zero terminator on string to array conversion.

14 years agoClear bytecode penalty cache in jit.flush().
Mike Pall [Sun, 23 Jan 2011 18:06:19 +0000 (19:06 +0100)] 
Clear bytecode penalty cache in jit.flush().

14 years agoFFI: Fix ffi.load() error message on Windows.
Mike Pall [Sun, 23 Jan 2011 13:28:01 +0000 (14:28 +0100)] 
FFI: Fix ffi.load() error message on Windows.

14 years agoFFI: Simplify initializer rules. Clarify docs.
Mike Pall [Sun, 23 Jan 2011 13:23:21 +0000 (14:23 +0100)] 
FFI: Simplify initializer rules. Clarify docs.

15 years agoAnother fix for the trace flush logic. I'll get this right someday.
Mike Pall [Sat, 22 Jan 2011 19:32:23 +0000 (20:32 +0100)] 
Another fix for the trace flush logic. I'll get this right someday.

Thanks to David Manura.

15 years agoFFI: Add preliminary FFI documentation (still incomplete).
Mike Pall [Thu, 20 Jan 2011 21:14:17 +0000 (22:14 +0100)] 
FFI: Add preliminary FFI documentation (still incomplete).

15 years agoPPC: Fix ipairs() for keys in the hash part.
Mike Pall [Thu, 20 Jan 2011 11:25:56 +0000 (12:25 +0100)] 
PPC: Fix ipairs() for keys in the hash part.

15 years agoAdd compile-time option LUAJIT_ENABLE_CHECKHOOK. Disabled by default.
Mike Pall [Wed, 19 Jan 2011 01:05:37 +0000 (02:05 +0100)] 
Add compile-time option LUAJIT_ENABLE_CHECKHOOK. Disabled by default.

This checks for asynchronously set hooks from compiled code.

15 years agoCombine i8/u8 XLOAD with BAND+comparison into test byte mrm, imm8.
Mike Pall [Wed, 19 Jan 2011 01:05:26 +0000 (02:05 +0100)] 
Combine i8/u8 XLOAD with BAND+comparison into test byte mrm, imm8.

15 years agoAdd volatile XLOADs.
Mike Pall [Wed, 19 Jan 2011 01:05:12 +0000 (02:05 +0100)] 
Add volatile XLOADs.

15 years agoDifferentiate between IR_KPTR and IR_KKPTR.
Mike Pall [Tue, 18 Jan 2011 23:40:03 +0000 (00:40 +0100)] 
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.

15 years agoFix for the fix for the trace flush logic.
Mike Pall [Tue, 18 Jan 2011 21:17:27 +0000 (22:17 +0100)] 
Fix for the fix for the trace flush logic.

15 years agoCleanup and fix trace flush logic.
Mike Pall [Tue, 18 Jan 2011 20:08:23 +0000 (21:08 +0100)] 
Cleanup and fix trace flush logic.

15 years agoFFI: Record 64 bit integer comparisons and pointer comparisons.
Mike Pall [Mon, 17 Jan 2011 00:23:04 +0000 (01:23 +0100)] 
FFI: Record 64 bit integer comparisons and pointer comparisons.

15 years agoFFI: Record conversions from bool ctype.
Mike Pall [Mon, 17 Jan 2011 00:21:57 +0000 (01:21 +0100)] 
FFI: Record conversions from bool ctype.

15 years agoAdd trace recorder infrastructure for instruction post-processing.
Mike Pall [Mon, 17 Jan 2011 00:20:10 +0000 (01:20 +0100)] 
Add trace recorder infrastructure for instruction post-processing.

15 years agoFFI: Don't swap operands for cdata __eq metamethod call.
Mike Pall [Mon, 17 Jan 2011 00:09:43 +0000 (01:09 +0100)] 
FFI: Don't swap operands for cdata __eq metamethod call.

15 years agoFFI: Record conversions to bool ctype.
Mike Pall [Sun, 16 Jan 2011 18:42:53 +0000 (19:42 +0100)] 
FFI: Record conversions to bool ctype.

15 years agoFix assertion.
Mike Pall [Sun, 16 Jan 2011 18:24:50 +0000 (19:24 +0100)] 
Fix assertion.

15 years agoFFI: Allow indexing a struct constructor to get constants.
Mike Pall [Sun, 16 Jan 2011 17:32:33 +0000 (18:32 +0100)] 
FFI: Allow indexing a struct constructor to get constants.

Specialize to the CTypeID held by a constructor in all cases.

15 years agoFFI: Record conversions from strings to enums or pointers.
Mike Pall [Thu, 13 Jan 2011 16:20:29 +0000 (17:20 +0100)] 
FFI: Record conversions from strings to enums or pointers.

15 years agoAdd FOLD rule for CONV.num.u32 KINT.
Mike Pall [Thu, 13 Jan 2011 16:18:08 +0000 (17:18 +0100)] 
Add FOLD rule for CONV.num.u32 KINT.

15 years agoFix recording of select() with multi-char string as 1st argument.
Mike Pall [Thu, 13 Jan 2011 16:16:22 +0000 (17:16 +0100)] 
Fix recording of select() with multi-char string as 1st argument.

15 years agoFFI: Cleanup some type conversions.
Mike Pall [Thu, 13 Jan 2011 15:39:42 +0000 (16:39 +0100)] 
FFI: Cleanup some type conversions.

Remove pointless conversions to booleans.
Allow assigning functions to function pointers.

15 years agoFFI: Add 64 bit integer comparisons and pointer comparisons.
Mike Pall [Thu, 13 Jan 2011 01:35:29 +0000 (02:35 +0100)] 
FFI: Add 64 bit integer comparisons and pointer comparisons.

15 years agoFFI: Simplify logic for pointer arithmetic.
Mike Pall [Wed, 12 Jan 2011 20:34:11 +0000 (21:34 +0100)] 
FFI: Simplify logic for pointer arithmetic.