Commit graph

16170 commits

Author SHA1 Message Date
Magnus Norddahl
c2669d3a03 - some jump fixes 2019-04-15 14:32:33 +02:00
Magnus Norddahl
f7dd6a1313 - fix jump direction in EmitComparisonOpcode 2019-04-15 14:32:31 +02:00
Jonathan Russell
9530a2e43c - more spelling mistakes... 2019-04-15 14:32:29 +02:00
Jonathan Russell
a770b3af16 - fix minor spelling error 2019-04-15 14:32:28 +02:00
Jonathan Russell
821c336c5e - add vector comparison opcodes 2019-04-15 14:32:26 +02:00
Magnus Norddahl
14d6aa8cac - remove some macros and add functions checking if a register needs to be copied 2019-04-15 14:32:25 +02:00
Magnus Norddahl
35a8162022 - implemented LBIT, SBIT, VTBL, SCOPE, NEW, NEW_K, THROW, EQA_R and EQA_K 2019-04-15 14:32:23 +02:00
Magnus Norddahl
4cab630871 - implement emitter functions for LKP_R, META, CLSS, LO, LO_R, LP, LP_R, SO, SO_R, SP, SP_R
- add emit code for throwing exceptions on null pointers
2019-04-15 14:32:22 +02:00
Magnus Norddahl
2efaa7846d - improve jit debug output slightly 2019-04-15 14:32:20 +02:00
Magnus Norddahl
f0dbc8414a - fix offsetting bug when loading address registers 2019-04-15 14:32:19 +02:00
Magnus Norddahl
db78d02d79 - fix swapped operands in EmitSUBF_KR 2019-04-15 14:32:17 +02:00
Magnus Norddahl
ede8c6d86b - implement MODF_RR, MODF_RK and MODF_KR 2019-04-15 14:32:16 +02:00
Magnus Norddahl
708362b31f - fix mul using wrong instruction 2019-04-15 14:32:14 +02:00
Magnus Norddahl
c46a4d4483 - implement BOUND opcodes and add logging the resulting assembly code if asmjit throws an exception 2019-04-15 14:32:13 +02:00
Magnus Norddahl
c2938926a7 - implement a few more opcodes and fix some bugs 2019-04-15 14:32:11 +02:00
Magnus Norddahl
9427e22d7c - implemented pow, min, max 2019-04-15 14:32:10 +02:00
Magnus Norddahl
f4181be6b8 - implement ATAN2 and FLOP 2019-04-15 14:32:08 +02:00
Magnus Norddahl
77fe376eca - implement DYNCAST*, TEST, TESTN and JMP opcodes 2019-04-15 14:32:07 +02:00
Magnus Norddahl
9474a2554d - convert JitCompile's switch into a class to enable easier code reuse 2019-04-15 14:32:05 +02:00
Magnus Norddahl
9889d2fbb6 - fix clang compile error 2019-04-15 14:32:03 +02:00
Magnus Norddahl
976a7fab3a - implement throwing by storing exception information in a struct, then return from the jitted function and throw from c++ 2019-04-15 14:32:02 +02:00
Jonathan Russell
45bc0d266e - removed the ability to use printf-like formatting in emitAbortExceptionCall, it barely worked 2019-04-15 14:32:00 +02:00
Jonathan Russell
197b20af5d - add first draft of abort exceptions 2019-04-15 14:31:58 +02:00
Magnus Norddahl
c65b7076eb - call play sqrt when calculating lengths 2019-04-15 14:31:57 +02:00
Magnus Norddahl
50d0049460 - fix 8 and 16 bit store 2019-04-15 14:31:55 +02:00
Magnus Norddahl
76c08bf725 - destroy the jit runtime when all script functions are destroyed 2019-04-15 14:31:54 +02:00
Magnus Norddahl
4820c32794 - disable all unimplemented opcodes in the switch to ensure 'Unknown VM opcode' fatal error is generated if CanJit has a bug 2019-04-15 14:31:52 +02:00
Magnus Norddahl
e9914f38af Fix compile errors on macOS 2019-04-15 14:31:51 +02:00
Jonathan Russell
601c492cf2 - added remaining int arithmetic opcodes (and fixed float loading offset issue) 2019-04-15 14:31:49 +02:00
Jonathan Russell
e771064657 - forgot to turn off debug switch in last commit 2019-04-15 14:31:47 +02:00
Jonathan Russell
4228891da2 - made absMaskInt const 2019-04-15 14:31:46 +02:00
Jonathan Russell
8306815292 - implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles 2019-04-15 14:31:44 +02:00
Chronos Ouroboros
e07af1428c Updated CanJit's supported opcodes list. 2019-04-15 14:31:43 +02:00
Chronos Ouroboros
63cda1c13d Pointer addition opcodes must leave NULL pointers as they are. 2019-04-15 14:31:41 +02:00
Chronos Ouroboros
3c8aa9f641 Changed binary int ops to use a temporary register, fixed some opcodes.
For some reason, binary ops might reuse one of the input registers as the output register.
This is a problem for very obvious reasons.
2019-04-15 14:31:39 +02:00
Jonathan Russell
62ece01c0a - made CMP_CHECK checking compile time 2019-04-15 14:31:37 +02:00
Jonathan Russell
f897f2bfd3 - added exact floating point comparison opcodes 2019-04-15 14:31:36 +02:00
Jonathan Russell
5846357268 - implemented all integer comparison operators 2019-04-15 14:31:34 +02:00
Jonathan Russell
166ce87a86 - adds OP_EQ_R, the first instruction using jumps 2019-04-15 14:31:33 +02:00
Magnus Norddahl
5c3ef8ac15 - add misc float opcodes 2019-04-15 14:31:31 +02:00
Jonathan Russell
b242ffdbbe - added most vector maths opcodes 2019-04-15 14:31:29 +02:00
Chronos Ouroboros
73892f4a6e Fix floats and implement some more opcodes. 2019-04-15 14:31:27 +02:00
Magnus Norddahl
113714990e - copy initial register values from the VM frame 2019-04-15 14:31:26 +02:00
Magnus Norddahl
10a6ab4d56 - implement most of the integer math opcodes 2019-04-15 14:31:24 +02:00
Magnus Norddahl
d651c02b17 - embed and use asmjit to JIT ZScript VM functions 2019-04-15 14:31:22 +02:00
drfrag
2039a306ae - Disable HRTF by default, it's slow on weak CPUs with many ambient sounds. 2019-04-15 13:30:21 +02:00
drfrag666
eafac3db33 - Fixed bad merge of "- more options for Doom 64 style gradients on walls". 2018-12-08 10:07:51 +01:00
drfrag666
6eca20a592 - Bumped version number for a new beta. 2018-12-04 18:54:17 +01:00
drfrag666
825a720b09 - Default gender for sound classes should be male and not other since it could be undefined in SNDINFO. 2018-12-03 20:19:46 +01:00
Player701
d72d820bba - Exported AActor::Grind to ZScript. 2018-11-30 10:18:43 +01:00