Magnus Norddahl
|
56fe7af9d3
|
- implement OP_CALL and OP_CALL_K
|
2019-04-15 14:32:41 +02:00 |
|
Magnus Norddahl
|
60ee2c91a4
|
- fix misc integer opcodes and remove mov statements when they have no effect
|
2019-04-15 14:32:40 +02:00 |
|
Jonathan Russell
|
279e97fcc9
|
- changed the way EmitComparisonOpcode works to get rid of the temporary register that was used previously
|
2019-04-15 14:32:38 +02:00 |
|
Magnus Norddahl
|
c248fad17f
|
- implement PARAM and PARAMI
|
2019-04-15 14:32:37 +02:00 |
|
Magnus Norddahl
|
53b11dd0d8
|
- fix missing zero extend
|
2019-04-15 14:32:36 +02:00 |
|
Magnus Norddahl
|
29f6258d33
|
- fix that the code for META and CLSS was swapped
|
2019-04-15 14:32:34 +02:00 |
|
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 |
|