Commit Graph

2599 Commits (master)

Author SHA1 Message Date
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 da65e0dfed Fix DynASM x64 encoding for qword-only instructions. 2009-12-28 21:00:03 +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 e5438daffe Ignore lea operand size in DynASM x86/x64. 2009-12-27 18:25:01 +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 64a4528cac Fix memory operand sizes for some SSE ops in DynASM. 2009-12-21 16:41:03 +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 1353acacb1 Allow quadword lea for DynASM x64. 2009-12-17 22:03:33 +01:00
Mike Pall 1e7951ea7b Cleanup DynASM action list flushes. 2009-12-16 22:31:15 +01:00
Mike Pall eb8ee661f2 Fix handling of byte-addressable registers in DynASM x64. 2009-12-16 21:58:15 +01:00
Mike Pall 3a18dba3f2 Add support for rip-relative displacements to DynASM x64. 2009-12-16 05:47:52 +01:00
Mike Pall 85d32aeb36 Change some misuses of esp in x64 interpreter. 2009-12-16 04:37:30 +01:00
Mike Pall d2156c7f73 Warn about use of esp with DynASM x64. 2009-12-16 04:34:54 +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 267d7152ab Allow 32 bit regs for indexing even for DynASM x64. 2009-12-15 04:45:34 +01:00
Mike Pall 31f0074c5e Make DynASM conditionals available before .arch statement. 2009-12-15 04:29:22 +01:00
Mike Pall b2b8577a93 Add usage message for mov64 to DynASM x64. 2009-12-15 04:22:42 +01:00
Mike Pall 547508f36f Fix off-by-one error in err_chunkid(). 2009-12-14 02:28:22 +01:00
Mike Pall ef885f476e Add support for 64 bit immediates/displacements to DynASM x64. 2009-12-13 19:11:11 +01:00
Mike Pall d12d036023 Pick unused X char to force REX.W in DynASM x64. 2009-12-10 12:52:32 +01:00
Mike Pall 33171e8180 Add 64 bit instruction templates to DynASM x64 and fix REX encoding. 2009-12-10 05:59:42 +01:00
Mike Pall 8d564c70ad Show memory operand size in cvtsi2sd/cvtsi2ss disassembly. 2009-12-10 05:55:24 +01:00
Mike Pall 0acb23426a Add REX encoding to DynASM x64. 2009-12-10 04:01:57 +01:00
Mike Pall fe36e4ac59 Add DynASM x64 module (non-functional). Add extra x64 registers. 2009-12-10 01:24:24 +01:00
Mike Pall 4523c46d10 Fix text about x64 port in status page. 2009-12-09 12:27:37 +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