RSDuck
aa430608e7
support allocating more registers for aarch64 JIT
...
also some minor fixes for the x64 JIT as well
2021-06-29 22:25:43 +02:00
RSDuck
436b3c4c1d
update copyright year and add missing GPL headers
2021-03-12 20:07:40 +01:00
RSDuck
5865b4438e
fix JIT block hash after a merged thumb BL
...
fixes #928
2021-01-05 22:38:29 +01:00
Filippo Scognamiglio
fbca47381b
Fix a couple of wrong cpp function pointers. ( #785 )
2020-10-31 17:53:01 +01:00
RSDuck
5903b11bda
subtract cycles after checking IRQ and Halt
...
also switch back to adding to ARM::Cycles instead of subtracting from them
2020-07-27 23:14:39 +02:00
RSDuck
fea9f95bba
fix inlined IO register access
2020-06-16 12:06:43 +02:00
RSDuck
5a0b568647
allow allocating caller saved registers
...
currently system-v only
2020-05-09 14:34:52 +02:00
RSDuck
3787bab1f6
implement block linking + some refactoring
...
currently only supported for x64
2020-04-26 13:05:17 +02:00
RSDuck
9b98b8816a
improve nop handling and proper behaviour for LDM^
...
fixes dslinux
2020-04-26 13:05:08 +02:00
RSDuck
a687be9879
new block cache and much more...
...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
and loads/stores from constant addresses
2020-04-26 13:05:03 +02:00
RSDuck
5338c28f40
load register only if needed
...
- do thumb bl long merge in the first step
- preparations for better branch jitting
2020-04-26 13:05:02 +02:00
RSDuck
2ef776883f
more fixes for flag optimisation
...
+ small cycle counting optimisation
2020-04-26 13:05:02 +02:00
RSDuck
3001d9492c
abandon pipelining on jit
...
fixes Golden Sun Dawn
this makes the cpu state incompatible between interpreter and JIT. That's why switching cpu mode requires a restart(not requiring is stupid anyway) and the pipeline is manually filled when making a save state.
2020-04-26 13:04:59 +02:00
RSDuck
4a0f6b3b4b
jit: fix thumb hi reg alu and mcr halt
...
+ mcr/mrc aren't always, msr_imm is never unk on ARM7
2020-04-26 13:03:10 +02:00
RSDuck
be8846e31a
jit: fix misc static branch things
2020-04-26 13:03:08 +02:00
RSDuck
8ddc4d5904
jit: fix BLX_reg with rn=lr
2020-04-26 13:03:07 +02:00
RSDuck
dcf6e1cad2
jit: fix linux
2020-04-26 13:03:01 +02:00
RSDuck
2efab201e9
jit: LDM/STM finally(!) working + MUL, MLA and CLZ
2020-04-26 13:02:59 +02:00
RSDuck
c58fdbd66b
jit: branch instructions
2020-04-26 13:02:58 +02:00