Mike Pall
055396a69d
Force error if lua_newstate() is used in 64 bit mode.
2010-01-24 15:50:59 +01:00
Mike Pall
43f1e13470
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.
2010-01-22 01:56:49 +01:00
Mike Pall
c56811bb7a
Fix undefined behavior in table resizing calculation.
2010-01-21 19:42:51 +01:00
Mike Pall
419cbb3aa9
Fix ordered string comparisons. Unsigned arithmetic is evil.
2010-01-21 15:29:23 +01:00
Mike Pall
a61df8efbe
Decouple guard vs. INT check vs. TYPECHECK semantics for SLOAD.
2010-01-19 16:58:26 +01:00
Mike Pall
36769c2f6b
Fix broken intarith + testop optimization.
2010-01-19 01:45:39 +01:00
Mike Pall
4e39597ba6
Add some sanity checks for allocator in 64 bit mode.
2010-01-18 01:32:33 +01:00
Mike Pall
32969abe40
Reduce non-numeric tag range by bumping up 64 bit lightud tag.
2010-01-18 00:42:34 +01:00
Mike Pall
4b0725d5fc
Fix more 64 bit conversion warnings.
2010-01-17 20:47:10 +01:00
Mike Pall
09548024d1
Silence 64 bit conversion warning.
2010-01-17 20:36:04 +01:00
Mike Pall
09ca54d9bc
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.
2010-01-17 20:33:13 +01:00
Mike Pall
49e3bdf080
Allocate 32 bit memory on WIN64 using NtAllocateVirtualMemory.
2010-01-17 20:20:43 +01:00
Mike Pall
62fafb5a72
Fix off-by-one error in x64 PE object symbol mangling.
2010-01-17 19:58:31 +01:00
Mike Pall
3100026b86
Error for blacklisted loop bytecodes has no info argument.
2010-01-16 02:04:12 +01:00
Mike Pall
82417ee889
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).
2010-01-14 12:28:16 +01:00
Mike Pall
a431d6f35c
Shorten %p format for pure 32 bit pointers on x64.
2010-01-14 12:08:32 +01:00
Mike Pall
767035f031
Strip '@' suffix from external symbols for MACH-O, too.
...
Fixes OSX build.
2010-01-10 09:39:05 +01:00
Mike Pall
99d153bef9
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.
2010-01-09 23:59:43 +01:00
Mike Pall
2cc554db0c
Avoid int16_t widening for pt->uv elements.
2010-01-09 22:41:08 +01:00
Mike Pall
a33204ae5e
Fix 32/64 bit portability issue with upval->v.
2010-01-09 21:11:35 +01:00
Mike Pall
ece20f8ca2
Fix x64 PE object emitter.
2010-01-09 21:10:22 +01:00
Mike Pall
4d9be5b8f8
Bump all copyright dates to 2010.
2010-01-09 14:28:11 +01:00
Mike Pall
c31ac26fb9
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.
2010-01-05 22:39:46 +01:00
Mike Pall
b3e3bad0ff
Fix PE object build for fastcall entry points into interpreter.
2010-01-05 22:13:20 +01:00
Mike Pall
93ee10642e
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.
2010-01-02 17:42:11 +01:00
Mike Pall
8fc9430d06
Rename NRESULTS to MULTRES on the assembler side, too.
2009-12-30 02:38:40 +01:00
Mike Pall
9de0f53a8d
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.
2009-12-30 02:37:57 +01:00
Mike Pall
52eb88773e
Fix narrowing casts of pointer differences for x64.
2009-12-29 20:19:54 +01:00
Mike Pall
d64b031269
Minor fixes for x64 interpreter.
2009-12-29 20:16:29 +01:00
Mike Pall
82f7d0907c
Fix PE object build on x64 and with disabled interpreter.
2009-12-29 20:13:34 +01:00
Mike Pall
42124227cf
Add DWARF2 unwind info for x64 interpreter.
2009-12-29 05:25:24 +01:00
Mike Pall
24429ed1f5
Fix alloc/free sizes of internal GCRef arrays.
2009-12-29 04:36:35 +01:00
Mike Pall
81c9f5de89
Fix various 32/64 bit issues in interpreter.
2009-12-29 03:03:09 +01:00
Mike Pall
241e8db3f1
Fix bad stack setup in collectgarbage().
2009-12-29 02:34:15 +01:00
Mike Pall
52f310bd3e
Fix x64 lj_vm_pow_sse().
2009-12-29 02:16:52 +01:00
Mike Pall
d18d1573d8
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.
2009-12-29 02:04:20 +01:00
Mike Pall
374f534715
Logical 'not' must be sign-extended for address operands.
2009-12-29 01:38:26 +01:00
Mike Pall
8a9cfa4b45
Define CFRAME structure for x64 interpreter.
2009-12-28 23:45:32 +01:00
Mike Pall
61abf342a3
Linux/x64 mremap() does not obey MAP_32BIT, so make it non-moving.
2009-12-28 23:33:10 +01:00
Mike Pall
9c8f42573f
Fix size calculation for closure structs.
2009-12-28 22:15:00 +01:00
Mike Pall
07e1a0d138
Fix POSIX/x64 call argument order.
2009-12-28 21:32:15 +01:00
Mike Pall
7b7c6ed754
Change callee-save regs for x64 interpreter to shorten code.
2009-12-28 21:18:44 +01:00
Mike Pall
8bb38bd93b
Final calling convention cleanup for x64 interpreter.
2009-12-28 20:05:31 +01:00
Mike Pall
3a15e46b79
More calling convention cleanups for x64 interpreter.
2009-12-27 18:44:12 +01:00
Mike Pall
bc47063708
Use fastcall for remaining 1-arg/2-arg calls from interpreter.
...
Simplifies conversion to x64 calling conventions.
2009-12-27 17:42:41 +01:00
Mike Pall
690760aa38
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.
2009-12-25 23:12:30 +01:00
Mike Pall
6ce0c90ed6
Add build infrastructure for the SSE2-enabled interpreter.
...
Works on x86 now. Will be enabled by default on x64 (not ready, yet).
2009-12-22 20:27:20 +01:00
Mike Pall
a5faa29aa9
Fix last commit.
2009-12-22 06:23:22 +01:00
Mike Pall
c4e9dc0012
Miscellaneous cleanups for x64 interpreter.
2009-12-22 06:16:29 +01:00
Mike Pall
44a9d7b00c
Use SSE variants for IRFPM_FLOOR/CEIL/TRUNC unless SSE4.1 available.
2009-12-22 05:40:49 +01:00
Mike Pall
298e3f5d54
Add SSE2 variants for all FP ops (except vm_pow*) in interpreter.
2009-12-22 05:04:21 +01:00
Mike Pall
ab02f069aa
Add SSE2 variants of basic arithmetic ops in interpreter.
2009-12-21 20:11:02 +01:00
Mike Pall
34d716947c
Properly compile on Debian kFreeBSD.
2009-12-20 18:41:55 +01:00
Mike Pall
a1d4d05f2c
Adapt most outbound calls in interpreter to x64 calling conventions.
2009-12-19 17:25:54 +01:00
Mike Pall
ed8d86bf66
Better change the saved regs for the x64 interpreter, too.
2009-12-18 03:10:52 +01:00
Mike Pall
db29a8cb04
Change KBASE/PC regs for x64/POSIX to get shorter encodings.
2009-12-17 22:14:24 +01:00
Mike Pall
6adab430af
Adapt primary inbound calls in x64 interpreter.
...
Change argument order for lj_vm_cpcall() to simplify x64 interpreter.
2009-12-17 22:08:20 +01:00
Mike Pall
1e7951ea7b
Cleanup DynASM action list flushes.
2009-12-16 22:31:15 +01:00
Mike Pall
85d32aeb36
Change some misuses of esp in x64 interpreter.
2009-12-16 04:37:30 +01:00
Mike Pall
4cb357d30f
Define x64 interpreter frame and cleanup use of stack temps.
2009-12-16 01:29:07 +01:00
Mike Pall
8df9603888
Unify interpreter reg saves/restores for WIN64 prolog/epilog req.
2009-12-15 21:36:42 +01:00
Mike Pall
1eedc6d2f1
First bunch of register definitions for x64 interpreter.
2009-12-15 05:40:44 +01:00
Mike Pall
547508f36f
Fix off-by-one error in err_chunkid().
2009-12-14 02:28:22 +01:00
Mike Pall
ec2442862f
Reorg Makefile to allow more overrides on the make command line.
2009-12-08 22:27:14 +01:00
Mike Pall
6163a90d6d
Remove asm auto-detection due to cross-compilation issues.
2009-12-08 21:28:49 +01:00
Mike Pall
699232f667
Add DynASM-built files to public repo.
2009-12-08 20:40:15 +01:00
Mike Pall
3f1f9e11f4
Fast forward to sync public repo.
...
Compile math.sinh(), math.cosh(), math.tanh() and math.random().
Compile various io.*() functions.
Drive the GC forward on string allocations in the parser.
Improve KNUM fuse vs. load heuristics.
Add abstract C call handling to IR.
2009-12-08 20:35:29 +01:00
Mike Pall
5287b93264
LuaJIT-2.0.0-beta2 hotfix #2
...
Fix lua_tocfunction().
Fix cutoff register in JMP bytecode for some conditional expressions.
Fix PHI marking algorithm for references from variant slots.
2009-12-08 19:52:28 +01:00
Mike Pall
2d0ef4522b
LuaJIT 2.0.0-beta2 hotfix #1
...
Fix LUA_XCPATH.
Fix DWARF unwinding info for OSX.
2009-12-08 19:50:21 +01:00
Mike Pall
1d1fed48a0
RELEASE LuaJIT-2.0.0-beta2
2009-12-08 19:49:20 +01:00
Mike Pall
55b1695971
RELEASE LuaJIT-2.0.0-beta1
2009-12-08 19:46:35 +01:00