Commit graph

25 commits

Author SHA1 Message Date
Magnus Norddahl
6f397854d0 - inline VBTL opcode
- remove old META and CLSS implementations
2018-11-23 05:37:26 +01:00
Magnus Norddahl
1ef772d017 - add missing CheckVMFrame call 2018-11-18 14:02:39 +01:00
alexey.lysiuk
4624c6e6a3 - use custom offsetof() macro
src/scripting/vm/jit_call.cpp:164:38: warning: offset of on non-standard-layout type 'VMScriptFunction' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:87:50: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:96:50: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:257:53: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
2018-11-18 12:48:50 +02:00
Christoph Oelckers
fcb5684607 - do not use instructions from too recent instruction set extensions.
andn is part of BMI1 which was introduced in 2012, which is far too recent to be used unchecked.
2018-11-17 13:10:18 +01:00
Magnus Norddahl
68afc419af - inline ReadBarrier, GetClass and GetClassMeta 2018-11-17 10:54:16 +01:00
Magnus Norddahl
f99bba48dc - stop using lambda functions for CreateCall because MSVC lambas use a different calling convention and "converts" them to the right one by generating a thunk function 2018-11-17 05:12:47 +01:00
Magnus Norddahl
f3e0db913c - fix operand size mismatch error 2018-11-15 22:07:27 +01:00
Magnus Norddahl
e6023c55a8 - modify exception checks to jump ahead if the exception is to be thrown as it limits static misprediction 2018-11-10 22:48:20 +01:00
Magnus Norddahl
fc870fce87 - fix missing convert from float to double in LSP and LSP_R opcodes
- fix missing convert from double to float in SSP and SSP_R opcodes
2018-10-11 03:53:11 +02:00
Magnus Norddahl
47bcf318a5 - fix 32 bit compile errors 2018-10-07 20:55:06 +02:00
Magnus Norddahl
47485194f4 - reuse temp virtual registers 2018-10-07 09:02:28 +02:00
Magnus Norddahl
d47988202a - workaround bug in asmjit's register allocator for calls where the return register is already allocated in a physical register needed by one of the call arguments 2018-10-07 06:29:54 +02:00
Magnus Norddahl
5bf76523d6 - switch ToMemAddress to imm_ptr where allowed 2018-09-18 18:13:53 +02:00
Magnus Norddahl
05ac219ba6 - switch from ASMJIT_ARCH_X64 to ASMJIT_ARCH_64BIT when checking if we need to use 64-bit pointers 2018-09-18 18:05:53 +02:00
Magnus Norddahl
61735ddd8b - create CreateCall helper to get rid of a lot of the cc.call boilerplate 2018-09-17 12:00:25 +02:00
Magnus Norddahl
c8e4bf089c - implement OP_LFP 2018-09-16 03:39:54 +02:00
Jonathan Russell
69bc39914b - changed a bunch of manual address additions in string opcodes to leas 2018-09-15 21:09:43 +01:00
Magnus Norddahl
3477b22714 - more load fixes 2018-09-15 18:08:01 +02:00
Magnus Norddahl
4364feea9a - fix truncated load addresses due to a bug in asmjit
- change ToMemAddress to use uint64_t
2018-09-15 15:38:16 +02:00
Magnus Norddahl
06b54d3aaa - avoid certain x86::ptr overloads as the last argument is not always an offset 2018-09-15 15:05:52 +02:00
Jonathan Russell
407418a92e - fixed typo in last commit 2018-09-15 00:26:14 +01:00
Jonathan Russell
b83f4f48d6 - implemented SS_R, LCS_R, and LKS_R 2018-09-15 00:25:13 +01:00
Magnus Norddahl
ce9925d257 - fix bug in LKF_R 2018-09-15 01:06:48 +02:00
Jonathan Russell
11fbd9a0a4 - added string PARAM and RET 2018-09-14 18:20:31 +01:00
Magnus Norddahl
ef170883ef - split JitCompiler into multiple files 2018-09-13 02:29:04 +02:00