Commit graph

15156 commits

Author SHA1 Message Date
Magnus Norddahl
302d753d17 - convert JitCompile's switch into a class to enable easier code reuse 2018-08-19 01:46:56 +02:00
Magnus Norddahl
c17be9eb21 - fix clang compile error 2018-08-18 22:46:18 +02:00
Magnus Norddahl
3453f05f06 - implement throwing by storing exception information in a struct, then return from the jitted function and throw from c++ 2018-08-18 22:41:18 +02:00
Magnus Norddahl
b6f52c319a
Merge pull request #551 from Gutawer/asmjit
Add a first draft of exception handling
2018-08-18 21:41:14 +02:00
Jonathan Russell
d983ae66c7 - removed the ability to use printf-like formatting in emitAbortExceptionCall, it barely worked 2018-08-18 20:37:55 +01:00
Jonathan Russell
6424190cbf - add first draft of abort exceptions 2018-08-18 18:03:18 +01:00
Magnus Norddahl
c89d8bb9bb - call play sqrt when calculating lengths 2018-08-18 18:41:35 +02:00
Magnus Norddahl
b159b5667a - fix 8 and 16 bit store 2018-08-18 18:21:52 +02:00
Magnus Norddahl
e557e8fac0 - destroy the jit runtime when all script functions are destroyed 2018-08-18 17:50:47 +02:00
alexey.lysiuk
34f2d8f310
- fixed typo in error message 2018-08-18 17:45:26 +03:00
alexey.lysiuk
12b8510574 - cleaned up inconsistent leading whitespaces
Bump copyright year as well
2018-08-18 16:05:33 +03:00
alexey.lysiuk
31bd7cfc04
- prohibit assignment of dynamic arrays
https://forum.zdoom.org/viewtopic.php?t=61682
2018-08-18 15:20:38 +03:00
Magnus Norddahl
9d68d43ce7 - disable all unimplemented opcodes in the switch to ensure 'Unknown VM opcode' fatal error is generated if CanJit has a bug 2018-08-18 13:18:52 +02:00
Magnus Norddahl
68b2cd58d8 Fix compile errors on macOS 2018-08-18 12:37:33 +02:00
alexey.lysiuk
d965c9aa76
- support static const arrays inside structs
https://forum.zdoom.org/viewtopic.php?t=61677
2018-08-18 13:00:33 +03:00
Magnus Norddahl
1757acacff
Merge pull request #549 from Gutawer/asmjit
Added remaining int arithmetic opcodes
2018-08-18 00:57:53 +02:00
Jonathan Russell
6a40e092fe - added remaining int arithmetic opcodes (and fixed float loading offset issue) 2018-08-17 22:06:12 +01:00
Marisa Kirisame
20b6db30d7 Added missing check for HITOWNER on bouncers with 0 damage. 2018-08-17 21:39:41 +02:00
Magnus Norddahl
9bf47b7ed6
Merge pull request #546 from Gutawer/asmjit
Implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles
2018-08-17 21:03:25 +02:00
Jonathan Russell
758ee5cbfb - forgot to turn off debug switch in last commit 2018-08-17 19:15:27 +01:00
Jonathan Russell
08c0ac541f - made absMaskInt const 2018-08-17 19:14:31 +01:00
Jonathan Russell
d137b3c94e - implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles 2018-08-17 19:08:19 +01:00
Marisa Kirisame
155afebb65 Add HITOWNER flag, when set, allows a projectile to collide with its shooter. 2018-08-17 19:47:12 +02:00
Chronos Ouroboros
079391e5ac Updated CanJit's supported opcodes list. 2018-08-16 21:45:04 +02:00
Chronos Ouroboros
a8ce626708 Pointer addition opcodes must leave NULL pointers as they are. 2018-08-16 21:45:04 +02:00
Marisa Kirisame
02926a5567 Add "IsFinal" parameter for CheckReplacement.
If set to true it guarantees that the replacement is final and will not go through the rest of the replacement chain.
2018-08-16 21:44:21 +02:00
Marisa Kirisame
4e690b1f60 Fix SDL window "sticking" to the center of the screen after using vid_setsize. 2018-08-15 21:03:07 +02:00
Marisa Kirisame
e18b17217f Added CheckReplacement to event handlers, a function inspired by its namesake in Unreal's Mutator class.
Performs runtime replacement of actor classes.
Takes priority over the "replaces" keyword in both DECORATE and ZScript.
2018-08-15 19:31:09 +02:00
Magnus Norddahl
ac462638d3
Merge pull request #540 from Doom2fan/asmjit
Changed binary int ops to use a temporary register, fixed some opcodes.
2018-08-15 01:33:21 +02:00
Chronos Ouroboros
591783087d 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.
2018-08-14 20:08:04 -03:00
Magnus Norddahl
1a52c2ba00
Merge pull request #539 from Gutawer/asmjit
Added exact floating point comparison opcodes
2018-08-14 22:33:37 +02:00
Jonathan Russell
dc03cb7a80 - made CMP_CHECK checking compile time 2018-08-14 20:50:32 +01:00
Christoph Oelckers
7d40edd6ac - disable runtime buffer security check in release build.
This has a minor but measurable effect on performance because it gets inserted into every function which uses a local stack space structure.
2018-08-14 21:29:14 +02:00
Christoph Oelckers
96ec6b1dc6 - fixed FS camera for real. 2018-08-14 21:12:50 +02:00
Jonathan Russell
740415246e - added exact floating point comparison opcodes 2018-08-14 18:32:17 +01:00
Magnus Norddahl
f862b96763
Merge pull request #538 from Gutawer/asmjit
Added all integer comparison opcodes
2018-08-14 16:47:18 +02:00
Jonathan Russell
167693f102 - implemented all integer comparison operators 2018-08-14 15:07:09 +01:00
Jonathan Russell
b30df47499 - adds OP_EQ_R, the first instruction using jumps 2018-08-14 13:02:56 +01:00
argv-minus-one
0717f5aede Make various getter and pure-math Actor methods clearscope.
These methods do not examine or change playsim state. They only perform math or look at class metadata.

Methods changed are:

• deltaangle
• absangle
• AngleToVector
• RotateVector
• Normalize180
• BobSin
• GetDefaultSpeed
• FindState
• GetDropItems (which changes the scope of the returned struct, but the returned struct is all-readonly anyway)
2018-08-14 11:52:44 +02:00
Magnus Norddahl
0ced612d2c - add misc float opcodes 2018-08-14 01:07:30 +02:00
Magnus Norddahl
eb20e5482d
Merge pull request #535 from Gutawer/asmjit
- added most vector maths opcodes
2018-08-13 22:38:42 +02:00
Jonathan Russell
cdb5a9d91e - added most vector maths opcodes 2018-08-13 21:36:55 +01:00
Christoph Oelckers
57ed4df85e - fixed FraggleScript's moving camera.
The logic here was a bit more complicated than I assumed but it was all buried in a heap of code that tried to deal with angular wraparounds in the BAM format.
2018-08-13 20:48:27 +02:00
Christoph Oelckers
c33f358894 - clear GLWF_TRANSLUCENT at the end of PutWall. 2018-08-13 20:48:27 +02:00
Magnus Norddahl
cb0a296fa7
Merge pull request #534 from Doom2fan/asmjit
Fix floats and implement some more opcodes.
2018-08-13 18:12:25 +02:00
Chronos Ouroboros
cb28bbc72e Fix floats and implement some more opcodes. 2018-08-13 13:07:36 -03:00
Magnus Norddahl
83d769f55c - copy initial register values from the VM frame 2018-08-13 00:15:42 +02:00
argv-minus-one
a10f9526bc Bump ZScript version to 3.5.0.
When GZDoom 3.5.0 was released, the ZScript version in the release commit was set to 3.5.0, but on master it was left at 3.4.0.

In the future, I suggest setting the ZScript version *before* making a release commit. Then master will remain up to date.
2018-08-12 10:01:27 +02:00
alexey.lysiuk
b6ff468aaf - creation of dither texture no longer affects active unit
Red checkerboard was rendered upon startup instead of
* the first saved game's thumbnail
* the first game frame
2018-08-12 10:55:24 +03:00
Magnus Norddahl
7108fd6228 - implement most of the integer math opcodes 2018-08-12 04:34:57 +02:00