Unknown W. Brackets
df2462b1d9
irjit: Implement ll/sc.
...
These occur more than I expected in LittleBigPlanet while loading.
2023-07-29 17:57:44 -07:00
Unknown W. Brackets
47b81985bd
riscv: Initial untested dispatcher.
...
The minimum to actually, probably, running code. Pretty slow.
2023-07-23 18:01:00 -07:00
Unknown W. Brackets
cae0815095
jit: Avoid using mips identifier directly.
...
Apparently this gets defined on mips systems.
2021-02-26 07:24:58 -08:00
Henrik Rydgård
6b4356a060
Handle exec addr errors better - don't let IgnoreBadMemoryAccesses skip dispatcher exceptions.
...
It would then just fall through into the compiler and die.
Should remove one of the "mystery" crashes from #14082 .
2021-02-09 09:32:38 +01:00
Henrik Rydgard
c988d42b04
ARM/ARM64 instruction analysis, hook up to handler
2020-07-14 09:25:45 +02:00
Unknown W. Brackets
4c3fe47372
jit: Remove unused breakpoint code.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets
eb4b59b530
arm64jit: Enable breakpoints.
...
Memory breakpoints not yet really tested.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets
ab809bd19e
jit: Apply hasSetRounding at compile time.
...
Otherwise, the block will be executed with the wrong rounding mode the
first time rounding is set. This could be important if it was set for a
single operation.
This is only a problem the first time it's set.
2018-04-01 10:36:16 -07:00
Unknown W. Brackets
09e307b097
arm64jit: Update rounding mode on thread switch.
...
Since fcr31 is per-thread, we must update jit state when it changes.
This also fixes the rounding mode on load state and jit/interp switch.
2018-04-01 10:12:32 -07:00
Henrik Rydgård
468b830bec
Show IR disassembly in JIT Compare screen
2018-01-04 12:23:23 +01:00
Unknown W. Brackets
1ecce2a2e1
arm64jit: Reuse code in I2R funcs.
2017-12-29 17:30:07 -08:00
Henrik Rydgård
0207739d76
Can't call functions through known-nil pointers, even if they don't touch local data - LLVM's optimizer might have done something stupid.
2017-11-30 01:07:03 +01:00
Henrik Rydgård
0ec1e5e3b2
Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708
2017-05-26 15:48:03 +02:00
Henrik Rydgård
635b2ada43
Remove a function that didn't make a lot of sense.
2017-01-26 09:50:16 +01:00
Unknown W. Brackets
b09c2b1f75
Add some missing override definitions.
2016-05-21 09:29:03 -07:00
Unknown W. Brackets
e37777648e
jit-ir: Restore emuhacks before saving state.
...
Let's just ask jit to do this, not its block cache directly.
2016-05-14 08:59:44 -07:00
Henrik Rydgard
6e44e97ffa
Refactor prep: Split JitInterface into MIPSFrontendInterface and JitInterface
2016-05-09 19:41:39 +02:00
Henrik Rydgard
f8659b8e1e
Move the IR interpreter out into its own file. Rename it in the UI. First CMake and Android fixes.
2016-05-08 22:06:13 +02:00
Henrik Rydgard
8b450c8034
Merge NativeJit.cpp/h with JitCommon.cpp/h
2016-05-01 11:39:59 +02:00
Henrik Rydgard
5aadce59a2
Move architecture-specific code out of JitBlockCache
2016-05-01 11:39:58 +02:00
Henrik Rydgard
a5be0976bd
Remove preprocessor hacks to choose JIT implementation.
...
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.
Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Unknown W. Brackets
0fc774927f
jit: Minor cleanups.
2016-01-10 12:28:29 -08:00
Henrik Rydgard
c41baab747
Pregenerate code to handle rounding mode switches. This time, for all three cores.
2015-10-08 19:58:37 +02:00
Henrik Rydgard
b7725c4f40
Remove empty header files
2015-10-08 18:54:33 +02:00
Henrik Rydgard
42ce836ba5
Some minor renames and cleanups
2015-10-08 14:43:16 +02:00
Henrik Rydgard
a0bf934796
ARM64: Some work on static allocation. Close to working, cube.elf runs 700 blocks but then hangs (?!)
2015-07-11 16:59:09 +02:00
Unknown W. Brackets
b6612edf67
arm64: Use a cached rounding func for cvt.w.s.
...
This is much faster for this particular instruction, although not all
games even use it.
2015-06-28 12:40:29 -07:00
Unknown W. Brackets
fbd4db0fc4
arm64: Add a safemem path.
...
This is probably not optimal but at least it works.
2015-06-27 00:22:04 -07:00
Henrik Rydgård
d014d420db
Unify JitOptions across the backends.
...
This is required to make ExtractIR not a member of the various backends.
2015-04-12 11:41:26 -07:00
Henrik Rydgård
81dec36da8
Use an accessor to read the compilerPC.
...
In the IR it will be read from the block.
2015-04-11 01:14:37 -07:00
Henrik Rydgård
a897723e6a
Separate out jit reading nearby instructions.
...
This makes it easier to use an IR for these things, or remove them.
2015-04-11 00:53:24 -07:00
Henrik Rydgard
8df8c210d1
ARM64: Start porting over VFPU stuff from ARM, fix regalloc bug
2015-04-06 18:13:28 +02:00
Henrik Rydgard
57e759a605
ARM64: Fix and turn on basic block linking
2015-04-06 18:13:17 +02:00
Henrik Rydgard
2bca05c4f2
ARM64: implement shifts, movz/movn. Corresponding fixes to emitter/disasm
2015-04-06 18:13:14 +02:00
Henrik Rydgard
d2c746dd64
ARM64: Get the FP reg cache working, implement some basic FP arith
2015-04-06 18:13:11 +02:00
Henrik Rydgard
d16bd1fd30
ARM64: Port over basic load/store from ARM. Works in FastMem only.
2015-04-06 18:13:10 +02:00
Henrik Rydgard
8dc77ff32e
ARM64: Turn off some debugging stuff, start implementing instructions. Something is wrong though, if I implement more than addiu things break..
2015-04-06 18:13:09 +02:00
Henrik Rydgard
cc722f09f6
Improve ARM64 disassembly by merging MOVZ+MOVK. Minor stuff.
2015-04-06 18:13:07 +02:00
Henrik Rydgard
e7e58591da
More JIT work, not quite there yet...
2015-04-06 18:13:04 +02:00
Henrik Rydgard
524583d53e
ARM64 emitter work, dispatcher work, etc. More work needed.
2015-04-06 18:13:03 +02:00
Henrik Rydgard
b309c83973
Initial work on ARM64, based on the ARM jit.
2015-04-06 18:13:01 +02:00