Unknown W. Brackets
a514603f40
Fix some missing case warnings.
2014-12-20 09:10:09 -08:00
Unknown W. Brackets
a292fa87ea
x86jit: Fix an x32 compile error in disabled code.
2014-12-17 08:50:31 -08:00
Unknown W. Brackets
2743c5cacd
x86jit: Shave off a couple bytes in asm.
2014-12-17 08:25:18 -08:00
Unknown W. Brackets
77777e372d
x86jit: Use R15 when safe for the jit.
...
This is virtually always safe.
2014-12-17 08:09:59 -08:00
Unknown W. Brackets
b9eddc3d25
x86jit: Oops, fix a typesafety error.
2014-12-17 08:07:43 -08:00
Unknown W. Brackets
9022b48069
x86jit: Skip reload of EAX in safe cases.
...
Probably no real improvement in perf, but a bit cleaner and one less TODO.
2014-12-17 01:12:41 -08:00
Unknown W. Brackets
afdbf5610b
jit: Use nicknames for a few more static regs.
2014-12-17 01:11:33 -08:00
Unknown W. Brackets
b6a75bf255
x86jit: Set CTXREG in a fixed place.
2014-12-17 01:00:21 -08: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 Rydgård
5ae4cc8959
x86: Turn VFPU SIMD off again. See #7173 and #7174
2014-12-13 13:35:29 +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
9dd6bb56bb
jit: Make available js_ and jo_ in regcaches.
2014-12-07 21:07:23 -08: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
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
d46c9c2f74
x86 jit: Minor optimization in vmmul
2014-12-06 11:35:01 +01:00
Henrik Rydgard
ea6371921a
x86 jit: Hack around running out of regs on x86-32 with SIMD
2014-12-04 00:19:08 +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
5290ffd929
Minor cleanup in vtfm. Re-enable vrot combination. Optimize vfad/vavg when dpps is available.
...
Also fixes bug in emitter of dpps.
2014-12-03 22:44:32 +01:00
Henrik Rydgard
ca8ba9532c
x86 jit: Implement vtfm
2014-12-03 01:45:29 +01:00
Unknown W. Brackets
48b3a292d7
x86jit: Add more sanity checks.
2014-11-30 17:43:07 -08:00
Unknown W. Brackets
9cfe801075
x86jit: Ensure we don't sequence temps+regs.
2014-11-30 17:42:43 -08:00
Unknown W. Brackets
23e3916a77
x86jit: Fix a stupid typo.
2014-11-30 17:42:02 -08:00
Unknown W. Brackets
515b954670
x86jit: Re-enable vmmov simd.
2014-11-30 13:06:53 -08:00
Unknown W. Brackets
c6b090d82e
x86jit: When storing, verify alignment.
2014-11-30 13:06:16 -08:00
Unknown W. Brackets
fbc453b083
x86jit: Oops, here also.
...
Maybe I should kill these early returns after all..
2014-11-30 12:39:30 -08:00
Unknown W. Brackets
5758102be6
x86jit: Correct handling of temp vregs in VS.
2014-11-30 12:33:06 -08:00
Unknown W. Brackets
750f40e260
x86jit: Oops, forgot to add this back.
...
MapRegV() will be too dangerous if it locks so do it here.
2014-11-30 11:02:55 -08:00
Henrik Rydgård
2945a1acc1
Merge pull request #7120 from unknownbrackets/jit-simd
...
x86jit: Add a MAP_NOLOCK flag
2014-11-30 19:43:35 +01:00
Unknown W. Brackets
29e3819437
x86jit: Improve spilling in vf2i.
...
This should improve which ones we spill on 32 bit at least.
2014-11-30 10:38:58 -08:00
Unknown W. Brackets
0000be1bb2
x86jit: Add a MAP_NOLOCK flag to not lock.
...
Only for MapRegs*. And then lock all by default, including
TryMapRegsVS().
2014-11-30 10:36:44 -08:00
Unknown W. Brackets
52cfe4a8a3
x86jit: Avoid MOVSS into self.
2014-11-30 10:35:26 -08:00
Henrik Rydgard
466cdb8ddf
x86 Jit: Basic implementation of SIMD vmmul. Can be improved.
2014-11-30 19:27:43 +01:00
Henrik Rydgard
74e70f1159
Fix silly typo
2014-11-30 17:24:56 +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
Henrik Rydgård
7deb8055ee
Merge pull request #7117 from unknownbrackets/jit-simd
...
x86jit: Implement vmmov using SIMD
2014-11-30 09:24:22 +01:00
Unknown W. Brackets
679a824487
x86jit: when reusing a reg, don't zap slot.
...
If we returned the same reg it was in before, don't zap the slots because
slot #1 may be valid.
2014-11-29 23:11:50 -08:00
Unknown W. Brackets
c3578bd8eb
x86jit: Find the correct available regs.
...
If there aren't n available regs, they may not of course be in slots 0 and
1. Have to go and find them.
2014-11-29 22:12:40 -08:00
Unknown W. Brackets
df6a07f24e
x86jit: Allow only one reg for sequential load.
2014-11-29 22:11:52 -08:00
Unknown W. Brackets
bb26e4f7d0
x86jit: Implement vmmov using SIMD.
...
4x -> 87x in microbenchmarking.
2014-11-29 18:46:38 -08:00
Unknown W. Brackets
67608639c5
x86jit: Oops, can't have loaded regs here yet.
2014-11-29 09:07:25 -08:00
Henrik Rydgard
8bd20ed8d1
x86 jit: Implement matrix init ops in SIMD. Turn off SIMD again by default (oops)
2014-11-29 12:30:21 +01:00
Henrik Rydgard
8f016d3e48
Merge some matrix utils and stuff from the NEON branch
2014-11-29 11:37:45 +01:00
Henrik Rydgård
ae15722a2e
Merge pull request #7112 from unknownbrackets/jit-simd
...
jit: MAP_NOINIT should always mean MAP_DIRTY
2014-11-29 10:19:33 +01:00
Unknown W. Brackets
f6f943de63
jit: MAP_NOINIT should always mean MAP_DIRTY.
2014-11-29 00:14:08 -08:00