]> git.ipfire.org Git - thirdparty/LuaJIT.git/log
thirdparty/LuaJIT.git
15 years agoMajor redesign of function call handling.
Mike Pall [Sat, 13 Feb 2010 03:51:56 +0000 (04:51 +0100)] 
Major redesign of function call handling.

Drop call gates. Use function headers, dispatched like bytecodes.
Emit BC_FUNCF/BC_FUNCV bytecode at PC 0 for all Lua functions.
C functions and ASM fast functions get extra bytecodes.
Modify internal calling convention: new base in BASE (formerly in RA).
Can now use better C function wrapper semantics (dynamic on/off).
Prerequisite for call hooks with zero-overhead if disabled.
Prerequisite for compiling recursive calls.
Prerequisite for efficient 32/64 bit prototype guards.

15 years agoExtend scope of local vars in debug info beyond final return.
Mike Pall [Fri, 12 Feb 2010 15:17:42 +0000 (16:17 +0100)] 
Extend scope of local vars in debug info beyond final return.

15 years agoFix dump of bytecode instructions with missing operands.
Mike Pall [Thu, 11 Feb 2010 19:59:00 +0000 (20:59 +0100)] 
Fix dump of bytecode instructions with missing operands.

15 years agoMove dispatch tables out of GG_State struct.
Mike Pall [Thu, 11 Feb 2010 15:21:18 +0000 (16:21 +0100)] 
Move dispatch tables out of GG_State struct.

15 years agoDrop frame clearing in exit handling and JIT compiled code.
Mike Pall [Thu, 11 Feb 2010 00:50:32 +0000 (01:50 +0100)] 
Drop frame clearing in exit handling and JIT compiled code.

15 years agoSwitch to pre-initialized stacks. Drop frame clearing in interpreter.
Mike Pall [Thu, 11 Feb 2010 00:21:40 +0000 (01:21 +0100)] 
Switch to pre-initialized stacks. Drop frame clearing in interpreter.

15 years agoReplace GCproto reference with bytecode PC in GCfuncL.
Mike Pall [Wed, 10 Feb 2010 20:45:57 +0000 (21:45 +0100)] 
Replace GCproto reference with bytecode PC in GCfuncL.

15 years agoDrop bc field in GCproto since the bytecode is colocated.
Mike Pall [Mon, 8 Feb 2010 19:17:34 +0000 (20:17 +0100)] 
Drop bc field in GCproto since the bytecode is colocated.

15 years agoFix constructor bytecode generation for conditional values.
Mike Pall [Mon, 8 Feb 2010 15:08:58 +0000 (16:08 +0100)] 
Fix constructor bytecode generation for conditional values.

15 years agoReduce whitespace in lj_bcdef.h.
Mike Pall [Mon, 8 Feb 2010 04:35:18 +0000 (05:35 +0100)] 
Reduce whitespace in lj_bcdef.h.

15 years agoRedesign of prototype generation, part 5: colocation of protoype arrays.
Mike Pall [Mon, 8 Feb 2010 04:30:57 +0000 (05:30 +0100)] 
Redesign of prototype generation, part 5: colocation of protoype arrays.

15 years agoRedesign of prototype generation, part 4: late creation of prototype.
Mike Pall [Mon, 8 Feb 2010 04:29:47 +0000 (05:29 +0100)] 
Redesign of prototype generation, part 4: late creation of prototype.

15 years agoRedesign of prototype generation, part 3: bc and lineinfo.
Mike Pall [Mon, 8 Feb 2010 04:28:57 +0000 (05:28 +0100)] 
Redesign of prototype generation, part 3: bc and lineinfo.

Use a growable, per-chunk bytecode instruction/line stack.
Collect bc/lineinfo for prototype at the end.

15 years agoRedesign of prototype generation, part 2: late init of chunkname.
Mike Pall [Mon, 8 Feb 2010 04:27:43 +0000 (05:27 +0100)] 
Redesign of prototype generation, part 2: late init of chunkname.

15 years agoRedesign of prototype generation, part 1: varinfo and uvname.
Mike Pall [Mon, 8 Feb 2010 04:26:52 +0000 (05:26 +0100)] 
Redesign of prototype generation, part 1: varinfo and uvname.

Use a growable, per-chunk variable stack.
Collect varinfo/uvname for prototype at the end.

15 years agoMajor cleanup of bytecode parser.
Mike Pall [Sat, 6 Feb 2010 07:18:32 +0000 (08:18 +0100)] 
Major cleanup of bytecode parser.

15 years agoUpdate .gitignore.
Mike Pall [Sat, 6 Feb 2010 07:18:20 +0000 (08:18 +0100)] 
Update .gitignore.

15 years agoMove bytecode offsets from lj_vm.* to generated header.
Mike Pall [Fri, 5 Feb 2010 19:15:01 +0000 (20:15 +0100)] 
Move bytecode offsets from lj_vm.* to generated header.

15 years ago32/64 bit memory ref cleanup, part 4: GCproto ->varinfo.
Mike Pall [Fri, 5 Feb 2010 00:35:38 +0000 (01:35 +0100)] 
32/64 bit memory ref cleanup, part 4: GCproto ->varinfo.

15 years ago32/64 bit memory ref cleanup, part 3: GCproto ->lineinfo.
Mike Pall [Fri, 5 Feb 2010 00:16:22 +0000 (01:16 +0100)] 
32/64 bit memory ref cleanup, part 3: GCproto ->lineinfo.

15 years ago32/64 bit memory ref cleanup, part 2: GCproto ->uvname and ->chunkname.
Mike Pall [Thu, 4 Feb 2010 23:52:21 +0000 (00:52 +0100)] 
32/64 bit memory ref cleanup, part 2: GCproto ->uvname and ->chunkname.

15 years ago32/64 bit memory ref cleanup, part 1: GCproto ->bc and ->k.
Mike Pall [Thu, 4 Feb 2010 23:07:32 +0000 (00:07 +0100)] 
32/64 bit memory ref cleanup, part 1: GCproto ->bc and ->k.

15 years agoRETF modifies BASE. Treat it like a store or it gets CSEd.
Mike Pall [Thu, 4 Feb 2010 20:33:24 +0000 (21:33 +0100)] 
RETF modifies BASE. Treat it like a store or it gets CSEd.

15 years agoReset the hotcount table after a JIT off to on transition.
Mike Pall [Thu, 4 Feb 2010 19:40:00 +0000 (20:40 +0100)] 
Reset the hotcount table after a JIT off to on transition.

15 years agoAdd shadow frame link stack for trace recorder.
Mike Pall [Thu, 4 Feb 2010 02:08:29 +0000 (03:08 +0100)] 
Add shadow frame link stack for trace recorder.

Simplifies snapshots. Prerequisite for pre-call snapshots.
Increases consistency for fast function calls, too.

15 years agoFix unroll limit checks and frame depth adjustment for pcall.
Mike Pall [Wed, 3 Feb 2010 15:48:25 +0000 (16:48 +0100)] 
Fix unroll limit checks and frame depth adjustment for pcall.

15 years agoClean up frame depth checks and loop detection.
Mike Pall [Wed, 3 Feb 2010 13:55:56 +0000 (14:55 +0100)] 
Clean up frame depth checks and loop detection.

15 years agoAdd extra check to suppress hotcall event during recording.
Mike Pall [Wed, 3 Feb 2010 13:34:30 +0000 (14:34 +0100)] 
Add extra check to suppress hotcall event during recording.

15 years agoAnother loop formation test must check for return to lower frame.
Mike Pall [Wed, 3 Feb 2010 13:31:42 +0000 (14:31 +0100)] 
Another loop formation test must check for return to lower frame.

15 years agoImprove coalescing of BASE register in side traces.
Mike Pall [Mon, 1 Feb 2010 22:32:26 +0000 (23:32 +0100)] 
Improve coalescing of BASE register in side traces.

15 years agoRevise hardcoded inlining in lj_asm.c. Saves 1-2K.
Mike Pall [Sat, 30 Jan 2010 13:33:08 +0000 (14:33 +0100)] 
Revise hardcoded inlining in lj_asm.c. Saves 1-2K.

15 years agoAdd support for weak IR references to register allocator.
Mike Pall [Sat, 30 Jan 2010 05:50:39 +0000 (06:50 +0100)] 
Add support for weak IR references to register allocator.

Spilling a weak ref forces a spill slot, but omits the restore.
Spill slots for snapshot refs override the register, anyway.
Marking snapshot refs weak avoids pointless restores.

15 years agoLoop formation test must check for return to lower frame.
Mike Pall [Fri, 29 Jan 2010 14:07:40 +0000 (15:07 +0100)] 
Loop formation test must check for return to lower frame.

15 years agoCompile return to lower frame. Only for Lua frames right now.
Mike Pall [Fri, 29 Jan 2010 02:32:37 +0000 (03:32 +0100)] 
Compile return to lower frame. Only for Lua frames right now.

15 years agoFollowup fix: set maxslot for continuation return.
Mike Pall [Thu, 28 Jan 2010 03:29:15 +0000 (04:29 +0100)] 
Followup fix: set maxslot for continuation return.

15 years agoDrop obsolete frame shrinking after continuation return.
Mike Pall [Thu, 28 Jan 2010 03:20:20 +0000 (04:20 +0100)] 
Drop obsolete frame shrinking after continuation return.

15 years agoFix recording of metamethod result adjustment.
Mike Pall [Thu, 28 Jan 2010 03:02:32 +0000 (04:02 +0100)] 
Fix recording of metamethod result adjustment.

15 years agoDon't modify jit_State and exit counters while in vmevent.
Mike Pall [Thu, 28 Jan 2010 01:30:12 +0000 (02:30 +0100)] 
Don't modify jit_State and exit counters while in vmevent.

Fixes crash with hot loop in TEXIT callback which cleared J->parent.

15 years agoFix snapshot dumps.
Mike Pall [Thu, 28 Jan 2010 01:02:08 +0000 (02:02 +0100)] 
Fix snapshot dumps.

15 years agoAvoid reuse of PHI registers, even for duplicate right PHIs.
Mike Pall [Wed, 27 Jan 2010 21:09:43 +0000 (22:09 +0100)] 
Avoid reuse of PHI registers, even for duplicate right PHIs.

15 years agoExpose compressed snapshot map to reflection API.
Mike Pall [Wed, 27 Jan 2010 19:06:03 +0000 (20:06 +0100)] 
Expose compressed snapshot map to reflection API.

Update jit.dump module and restore printing of frame separators.

15 years agoEliminate IR_FRAME. Replace with KGC and TRef/SnapEntry flags.
Mike Pall [Wed, 27 Jan 2010 02:50:29 +0000 (03:50 +0100)] 
Eliminate IR_FRAME. Replace with KGC and TRef/SnapEntry flags.

15 years agoAdd frame and continuation flags to TRef and SnapEntry.
Mike Pall [Wed, 27 Jan 2010 01:17:56 +0000 (02:17 +0100)] 
Add frame and continuation flags to TRef and SnapEntry.

15 years agoAdd missing check for return to lower frame.
Mike Pall [Wed, 27 Jan 2010 00:57:15 +0000 (01:57 +0100)] 
Add missing check for return to lower frame.

15 years agoCleanup types for narrowing stack machine.
Mike Pall [Tue, 26 Jan 2010 23:39:22 +0000 (00:39 +0100)] 
Cleanup types for narrowing stack machine.

15 years agoCompress snapshots using a simple, extensible 1D-compression.
Mike Pall [Tue, 26 Jan 2010 20:49:04 +0000 (21:49 +0100)] 
Compress snapshots using a simple, extensible 1D-compression.

Typically reduces storage overhead for snapshot maps by 60%.
The extensible format is a prerequisite for the next redesign steps:
Eliminate IR_FRAME and implement return-to-lower-frame.

15 years agoAdd missing eviction in asm_obar().
Mike Pall [Tue, 26 Jan 2010 01:56:00 +0000 (02:56 +0100)] 
Add missing eviction in asm_obar().

15 years agoFill gaps in frames (caused by metamethod calls) with nil.
Mike Pall [Mon, 25 Jan 2010 23:45:30 +0000 (00:45 +0100)] 
Fill gaps in frames (caused by metamethod calls) with nil.

Simplifies storing snapshots to stack.

15 years agoUse dedicated type for snapshot map entry.
Mike Pall [Mon, 25 Jan 2010 18:51:52 +0000 (19:51 +0100)] 
Use dedicated type for snapshot map entry.

Preparatory work for compressed snapshots.

15 years agoForce error if lua_newstate() is used in 64 bit mode.
Mike Pall [Sun, 24 Jan 2010 14:50:59 +0000 (15:50 +0100)] 
Force error if lua_newstate() is used in 64 bit mode.

15 years agoIntegrate MinGW build with DWARF2 exception handling.
Mike Pall [Fri, 22 Jan 2010 00:56:49 +0000 (01:56 +0100)] 
Integrate MinGW build with DWARF2 exception handling.

Only works with DWARF2-enabled GCC 4.x (not the default MinGW GCC).
Fix fastcall symbol names for COFF assembler output.
Add DWARF2 unwind info to COFF assembler output.
Use COFF assembler mode for MinGW builds.
Always enable the DWARF2 handler if compiled with GCC.

15 years agoFix undefined behavior in table resizing calculation.
Mike Pall [Thu, 21 Jan 2010 18:42:51 +0000 (19:42 +0100)] 
Fix undefined behavior in table resizing calculation.

15 years agoFix ordered string comparisons. Unsigned arithmetic is evil.
Mike Pall [Thu, 21 Jan 2010 14:29:23 +0000 (15:29 +0100)] 
Fix ordered string comparisons. Unsigned arithmetic is evil.

15 years agoUpdate docs about exception handling.
Mike Pall [Wed, 20 Jan 2010 11:24:56 +0000 (12:24 +0100)] 
Update docs about exception handling.

15 years agoDecouple guard vs. INT check vs. TYPECHECK semantics for SLOAD.
Mike Pall [Tue, 19 Jan 2010 15:58:26 +0000 (16:58 +0100)] 
Decouple guard vs. INT check vs. TYPECHECK semantics for SLOAD.

15 years agoFix broken intarith + testop optimization.
Mike Pall [Tue, 19 Jan 2010 00:45:39 +0000 (01:45 +0100)] 
Fix broken intarith + testop optimization.

15 years agoAdd some sanity checks for allocator in 64 bit mode.
Mike Pall [Mon, 18 Jan 2010 00:32:33 +0000 (01:32 +0100)] 
Add some sanity checks for allocator in 64 bit mode.

15 years agoReduce non-numeric tag range by bumping up 64 bit lightud tag.
Mike Pall [Sun, 17 Jan 2010 23:42:34 +0000 (00:42 +0100)] 
Reduce non-numeric tag range by bumping up 64 bit lightud tag.

15 years agoUpdate docs with x64 build instructions.
Mike Pall [Sun, 17 Jan 2010 21:02:13 +0000 (22:02 +0100)] 
Update docs with x64 build instructions.

15 years agoFix more 64 bit conversion warnings.
Mike Pall [Sun, 17 Jan 2010 19:47:10 +0000 (20:47 +0100)] 
Fix more 64 bit conversion warnings.

15 years agoSilence 64 bit conversion warning.
Mike Pall [Sun, 17 Jan 2010 19:36:04 +0000 (20:36 +0100)] 
Silence 64 bit conversion warning.

15 years agoEnable build for x64 interpreter on WIN64.
Mike Pall [Sun, 17 Jan 2010 19:33:13 +0000 (20:33 +0100)] 
Enable build for x64 interpreter on WIN64.

To build the x64 interpreter open a "Windows SDK Command Shell".
Then set the compiler environment: setenv /release /x64
Then cd to the src directory and run msvcbuild.bat.

15 years agoAllocate 32 bit memory on WIN64 using NtAllocateVirtualMemory.
Mike Pall [Sun, 17 Jan 2010 19:20:43 +0000 (20:20 +0100)] 
Allocate 32 bit memory on WIN64 using NtAllocateVirtualMemory.

15 years agoFix off-by-one error in x64 PE object symbol mangling.
Mike Pall [Sun, 17 Jan 2010 18:58:31 +0000 (19:58 +0100)] 
Fix off-by-one error in x64 PE object symbol mangling.

15 years agoError for blacklisted loop bytecodes has no info argument.
Mike Pall [Sat, 16 Jan 2010 01:04:12 +0000 (02:04 +0100)] 
Error for blacklisted loop bytecodes has no info argument.

15 years agoAdd build infrastructure for x64 interpreter.
Mike Pall [Thu, 14 Jan 2010 11:28:16 +0000 (12:28 +0100)] 
Add build infrastructure for x64 interpreter.

Must be explicitly enabled with: make clean && make "CC=gcc -m64"
Only works on Linux/x64. Does not work on WIN64 or OSX/x64 (yet).

15 years agoShorten %p format for pure 32 bit pointers on x64.
Mike Pall [Thu, 14 Jan 2010 11:08:32 +0000 (12:08 +0100)] 
Shorten %p format for pure 32 bit pointers on x64.

15 years agoStrip '@' suffix from external symbols for MACH-O, too.
Mike Pall [Sun, 10 Jan 2010 08:39:05 +0000 (09:39 +0100)] 
Strip '@' suffix from external symbols for MACH-O, too.

Fixes OSX build.

15 years agoImprove alias analysis of upvalues using a disambiguation hash value.
Mike Pall [Sat, 9 Jan 2010 22:59:43 +0000 (23:59 +0100)] 
Improve alias analysis of upvalues using a disambiguation hash value.

All upvalue objects hold a disambiguation hash value now.
It's built from the parent prototype and the slot number.
Different hash values imply the upvalues cannot alias.
Same hash values don't imply anything (collision or different closures).
Upvalue disambiguation makes use of a reduced hash due to IR contraints.

15 years agoAvoid int16_t widening for pt->uv elements.
Mike Pall [Sat, 9 Jan 2010 21:41:08 +0000 (22:41 +0100)] 
Avoid int16_t widening for pt->uv elements.

15 years agoFix 32/64 bit portability issue with upval->v.
Mike Pall [Sat, 9 Jan 2010 20:11:35 +0000 (21:11 +0100)] 
Fix 32/64 bit portability issue with upval->v.

15 years agoFix x64 PE object emitter.
Mike Pall [Sat, 9 Jan 2010 20:10:22 +0000 (21:10 +0100)] 
Fix x64 PE object emitter.

15 years agoBump all copyright dates to 2010.
Mike Pall [Sat, 9 Jan 2010 13:28:11 +0000 (14:28 +0100)] 
Bump all copyright dates to 2010.

15 years agoAdd support for WIN64 exception handling to external unwinder.
Mike Pall [Tue, 5 Jan 2010 21:39:46 +0000 (22:39 +0100)] 
Add support for WIN64 exception handling to external unwinder.

Modify unwinding to always return _ff or _c unwind type.
Generate PE object .pdata/.xdata sections for x64 interpreter.
Can drop r12-r15 saves in Windows/x64 interpreter now.

15 years agoFix PE object build for fastcall entry points into interpreter.
Mike Pall [Tue, 5 Jan 2010 21:13:20 +0000 (22:13 +0100)] 
Fix PE object build for fastcall entry points into interpreter.

15 years agoAllow @ in DynASM globals.
Mike Pall [Tue, 5 Jan 2010 21:07:54 +0000 (22:07 +0100)] 
Allow @ in DynASM globals.

15 years agoMajor rewrite of error handling to allow external/internal unwinding.
Mike Pall [Sat, 2 Jan 2010 16:42:11 +0000 (17:42 +0100)] 
Major rewrite of error handling to allow external/internal unwinding.

Make external unwinding the default on x64.
It's mandatory on WIN64 due to the abundance of callee-saved regs.
Allow piecewise internal frame unwinding and optional cleanup.
Store ERRMEM, ERRERR and ERRCPP early and copy down later.
Use FRAME_CP for lj_vm_resume.
Add lj_vm_unwind_*_eh variants as landing pads for external unwinder.
Use fastcall for lj_vm_unwind_*.
Can drop r12/r13 saves in POSIX/x64 interpreter now.

15 years agoRename NRESULTS to MULTRES on the assembler side, too.
Mike Pall [Wed, 30 Dec 2009 01:38:40 +0000 (02:38 +0100)] 
Rename NRESULTS to MULTRES on the assembler side, too.

15 years agoImplement yield from C hooks.
Mike Pall [Wed, 30 Dec 2009 01:37:57 +0000 (02:37 +0100)] 
Implement yield from C hooks.

Get number of multiple results from C frame.
Add lj_cont_hook: restores multres and dispatch to static ins.
Can use fastcall for lj_dispatch_ins() now.

15 years agoFix narrowing casts of pointer differences for x64.
Mike Pall [Tue, 29 Dec 2009 19:19:54 +0000 (20:19 +0100)] 
Fix narrowing casts of pointer differences for x64.

15 years agoMinor fixes for x64 interpreter.
Mike Pall [Tue, 29 Dec 2009 19:16:29 +0000 (20:16 +0100)] 
Minor fixes for x64 interpreter.

15 years agoFix PE object build on x64 and with disabled interpreter.
Mike Pall [Tue, 29 Dec 2009 19:13:34 +0000 (20:13 +0100)] 
Fix PE object build on x64 and with disabled interpreter.

15 years agoAdd DWARF2 unwind info for x64 interpreter.
Mike Pall [Tue, 29 Dec 2009 04:25:24 +0000 (05:25 +0100)] 
Add DWARF2 unwind info for x64 interpreter.

15 years agoFix alloc/free sizes of internal GCRef arrays.
Mike Pall [Tue, 29 Dec 2009 03:36:35 +0000 (04:36 +0100)] 
Fix alloc/free sizes of internal GCRef arrays.

15 years agoFix various 32/64 bit issues in interpreter.
Mike Pall [Tue, 29 Dec 2009 02:03:09 +0000 (03:03 +0100)] 
Fix various 32/64 bit issues in interpreter.

15 years agoFix bad stack setup in collectgarbage().
Mike Pall [Tue, 29 Dec 2009 01:34:15 +0000 (02:34 +0100)] 
Fix bad stack setup in collectgarbage().

15 years agoFix x64 lj_vm_pow_sse().
Mike Pall [Tue, 29 Dec 2009 01:16:52 +0000 (02:16 +0100)] 
Fix x64 lj_vm_pow_sse().

15 years agoSave all callee-saved x64 integer regs for unwinding.
Mike Pall [Tue, 29 Dec 2009 01:04:20 +0000 (02:04 +0100)] 
Save all callee-saved x64 integer regs for unwinding.

Temporary measure. Does not cover xmm saves on WIN64.
May have to use unwind info or waste another 160 bytes per CFRAME.

15 years agoLogical 'not' must be sign-extended for address operands.
Mike Pall [Tue, 29 Dec 2009 00:38:26 +0000 (01:38 +0100)] 
Logical 'not' must be sign-extended for address operands.

15 years agoDefine CFRAME structure for x64 interpreter.
Mike Pall [Mon, 28 Dec 2009 22:45:32 +0000 (23:45 +0100)] 
Define CFRAME structure for x64 interpreter.

15 years agoLinux/x64 mremap() does not obey MAP_32BIT, so make it non-moving.
Mike Pall [Mon, 28 Dec 2009 22:33:10 +0000 (23:33 +0100)] 
Linux/x64 mremap() does not obey MAP_32BIT, so make it non-moving.

15 years agoFix size calculation for closure structs.
Mike Pall [Mon, 28 Dec 2009 21:15:00 +0000 (22:15 +0100)] 
Fix size calculation for closure structs.

15 years agoFix POSIX/x64 call argument order.
Mike Pall [Mon, 28 Dec 2009 20:32:15 +0000 (21:32 +0100)] 
Fix POSIX/x64 call argument order.

15 years agoChange callee-save regs for x64 interpreter to shorten code.
Mike Pall [Mon, 28 Dec 2009 20:18:44 +0000 (21:18 +0100)] 
Change callee-save regs for x64 interpreter to shorten code.

15 years agoFix DynASM x64 encoding for qword-only instructions.
Mike Pall [Mon, 28 Dec 2009 20:00:03 +0000 (21:00 +0100)] 
Fix DynASM x64 encoding for qword-only instructions.

15 years agoFinal calling convention cleanup for x64 interpreter.
Mike Pall [Mon, 28 Dec 2009 19:05:31 +0000 (20:05 +0100)] 
Final calling convention cleanup for x64 interpreter.

15 years agoMore calling convention cleanups for x64 interpreter.
Mike Pall [Sun, 27 Dec 2009 17:44:12 +0000 (18:44 +0100)] 
More calling convention cleanups for x64 interpreter.

15 years agoIgnore lea operand size in DynASM x86/x64.
Mike Pall [Sun, 27 Dec 2009 17:25:01 +0000 (18:25 +0100)] 
Ignore lea operand size in DynASM x86/x64.

15 years agoUse fastcall for remaining 1-arg/2-arg calls from interpreter.
Mike Pall [Sun, 27 Dec 2009 16:42:41 +0000 (17:42 +0100)] 
Use fastcall for remaining 1-arg/2-arg calls from interpreter.

Simplifies conversion to x64 calling conventions.

15 years agoAdd SSE variant of pow/powi to interpreter.
Mike Pall [Fri, 25 Dec 2009 22:12:30 +0000 (23:12 +0100)] 
Add SSE variant of pow/powi to interpreter.

Use SSE pow/powi helper functions from compiled code.
Cleanup use of helper functions.
Related cleanups of folding functions in x64 interpreter.