Commit graph

653 commits

Author SHA1 Message Date
Henrik Rydgard
db5478135b Typo fix 2014-12-13 21:26:13 +01:00
Henrik Rydgard
05a8e2e35d Some work towards being able to build two JITs together
This will be useful for testing/debugging, but not there yet.
2014-12-13 21:13:54 +01:00
Henrik Rydgard
8ad1ea4c84 Split JitCommon.h so that you can include it without getting the "NativeJit" definition 2014-12-13 21:13:28 +01:00
Henrik Rydgard
75a9420b21 Reduce the number of places we include JitCommon.h. Update native. 2014-12-12 23:49:08 +01:00
Unknown W. Brackets
afc779a824 jit: Add IN_RT to lwl/lwr and re-enable clobbering. 2014-12-08 21:17:01 -08:00
Unknown W. Brackets
bfe5f9276e jit: Re-disable clobbered thing.
No idea what's wrong...
2014-12-08 02:06:25 -08:00
Unknown W. Brackets
7734a4c912 jit: Re-enable clobbering with movz/movn support.
Oops, these should be the only ones that take rd "in".
2014-12-08 01:29:41 -08:00
Unknown W. Brackets
119c1ef83e jit: Disable clobber detection for now.
Should still spill better.  Something is wrong with flags detection, a
clobber to rd is incorrectly discarding outside a delay slot.  Don't have
time now to look into it further.
2014-12-08 01:24:17 -08:00
Unknown W. Brackets
f817d49dfb jit: Discard clobbered registers on spill.
If we're spilling anyway, discard rather than saving.
2014-12-07 23:08:21 -08:00
Unknown W. Brackets
eeff110c0f jit: Improve and unify GPR spill logic.
Now the same logic on x86 and ARM, and handles HI/LO/etc. better.
2014-12-07 21:10:28 -08:00
Unknown W. Brackets
487e175cf9 Fix a sign comparison warning.
This isn't really negative anyway.
2014-12-07 21:08:03 -08:00
Unknown W. Brackets
9dd6bb56bb jit: Make available js_ and jo_ in regcaches. 2014-12-07 21:07:23 -08:00
Henrik Rydgard
50bb3e1e05 Minor fixes 2014-12-08 00:18:13 +01:00
Henrik Rydgard
51d55bd645 Namespacing cleanup (it's bad to do "using namespace" in a header) 2014-12-07 14:44:15 +01:00
Henrik Rydgard
4457dca4c9 Rename the ARM Jit class to ArmJit 2014-12-07 14:25:22 +01:00
Henrik Rydgard
7740caeade Buildfix the arm emitter test in the unittest.
Also do some preparation for being able to have two JITs compiled at the same time
which may be useful in testing parts of the ARM jit on Windows.
2014-12-07 14:12:13 +01:00
Henrik Rydgard
e2f61459d3 ARM Jit: Implement vfad/vavg 2014-12-07 13:02:16 +01:00
Henrik Rydgard
80ce45f9fb ARM Jit: Join adjacent vrot ops on ARM too 2014-12-07 12:07:54 +01:00
Henrik Rydgard
c2503b1406 ARM jit: Prepare for joining vrot ops 2014-12-07 11:58:19 +01:00
Henrik Rydgard
4d8db38798 Some more 2014-12-07 00:30:45 +01:00
Henrik Rydgard
ceed0a92c3 Undo some accidental reverts 2014-12-07 00:25:15 +01:00
Henrik Rydgard
ff4746cd17 Merge the rest of the old NEON branch. 2014-12-06 13:14:03 +01:00
Henrik Rydgard
d98bde8e50 Merge the RegCache changes from the old neon-vfpu branch 2014-12-06 12:26:58 +01:00
Henrik Rydgard
e3a81f4346 x86 Jit: Basic implementation of vbfy1/2 (mostly to just cross another one off the list..) 2014-12-04 00:18:58 +01:00
Henrik Rydgard
ac772f25ff x86 JIT: Join adjacent vrot calls together to avoid redundant sin/cos calls. Add a prototype, fix minor issues. 2014-11-30 11:04:13 +01:00
Unknown W. Brackets
f6f943de63 jit: MAP_NOINIT should always mean MAP_DIRTY. 2014-11-29 00:14:08 -08:00
Henrik Rydgard
53b5d331b4 Assorted minor optimizations 2014-11-17 21:21:44 +01:00
Henrik Rydgard
e43c7af32c ARM Jit: Implement quaternion multiplication 2014-11-16 19:12:00 +01:00
Unknown W. Brackets
5bb9d32eaa jit: Fix partial invalidation of larger blocks.
Fixes #7031.
2014-10-27 19:04:19 -07:00
Unknown W. Brackets
1064f580e4 armjit: Add proxy blocks for continuing. 2014-10-12 17:20:26 -07:00
Unknown W. Brackets
01f9521dc5 jit: Invalidate blocks even if they end unevenly.
This allows blocks to start and end where ever they need, which should be
good for replacements and for continuing.
2014-10-12 17:13:04 -07:00
Unknown W. Brackets
0f32103615 x86jit: Consistently use mips_. 2014-10-12 15:16:09 -07:00
Unknown W. Brackets
2f598e8f38 jit: Statically jump for fixed branches.
This handles both loops (first step is known) and static branches (some
code uses them instead of jumps, and we disassemble that to "b".)

Not likely to be a big improvement, but might help if the branch predictor
was wrong.

This is as opposed to continuing, which would build a larger jit block.
2014-10-12 12:51:47 -07:00
Unknown W. Brackets
9228ac72da jit: Reorganize imm branch logic a bit. 2014-10-12 12:51:46 -07:00
Unknown W. Brackets
928e2adfc9 jit: Avoid applying/restoring the rounding mode.
If the game never sets it, we can skip around syscalls, interpreter,
replacements, etc.
2014-10-12 12:51:45 -07:00
Unknown W. Brackets
8d0dca71fe jit: Rename the rounding mode funcs to clarify.
They apply/restore the value, set/clear is confusing.
2014-10-12 11:35:20 -07:00
Henrik Rydgard
f84ebf6bff sprintf->snprintf, fix some too short buffers 2014-09-14 00:14:11 +02:00
Unknown W. Brackets
52b6f1095e armjit: Fix rounding mode, allow non flush-to-zero.
Default: force flush to zero (for RunFast mode.)  But now it's an ini
option so we can more easily compare armjit differences.
2014-09-11 07:58:51 -07:00
Unknown W. Brackets
4459b8f483 jit: Actually jit vmtfc/vmfvc.
Sicne we have them and they are easy.
2014-09-01 23:13:39 -07:00
Unknown W. Brackets
5f6f6827b5 jit: Update rounding mode immediately on ctc1. 2014-08-30 23:48:27 -07:00
Unknown W. Brackets
8daff0a25e armjit: Fix some downcount issues with rounding.
When setting the rounding mode we need to be super careful about not
destroying flags or R0 if they are needed.
2014-08-30 16:43:13 -07:00
Unknown W. Brackets
820a8e8f2b armjit: Don't reset downcount on fpu instructions.
It's maintained always, oops.
2014-08-30 16:30:13 -07:00
Henrik Rydgård
b7da82eebb Merge pull request #6762 from unknownbrackets/fpu-rounding
Handle fpu rounding mode at least in jits
2014-08-23 10:43:22 +02:00
Unknown W. Brackets
e9b5e6f277 armjit: Maintain rounding mode throughout jit. 2014-08-22 19:57:50 -07:00
Unknown W. Brackets
1fcbb7bbd4 armjit: Respect the rounding mode for mul/etc. 2014-08-22 00:32:01 -07:00
Sacha
97e93f48fd Clean up LitPool code and re-enable flushing in AsmJit 2014-08-20 18:29:37 +10:00
Unknown W. Brackets
245a2a3be0 Don't zero out downcount in replacements.
It doesn't write out js.downcountAmount in any of these cases, so zeroing
it is wrong.
2014-08-03 13:22:30 -07:00
Unknown W. Brackets
d060a06fa6 Disable a bunch of function replacements.
These are just for speed, let's turn them off.  Using a flag because:
 * I think there's still some issue with savestates, not sure.
 * We might swap this flag to a separate option.
2014-08-03 13:15:41 -07:00
Sacha
6ce3765b12 Sailfish: More compatibility with SailFish OS. It also needs stddef where Maemo does.
Set packaging by default for iOS with b.sh.
2014-07-24 23:20:09 +10:00
Sacha
6957808b97 ArmJit: Optimisation when comparing float against 0.0f 2014-07-17 05:12:43 +10:00