Henrik Rydgård
bb9181b949
Fix the prefix problems on ARM 32-bit as well.
2017-11-24 17:05:10 +01:00
Henrik Rydgård
22e65ba80d
Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11
2017-08-31 01:14:51 +02:00
Henrik Rydgård
29ad3180a0
Add hack to make the JIT stable(r) on UWP ARM. Can't make it right without FlushInstructionCache which is not available. Sigh...
2017-03-23 10:02:29 +01:00
Henrik Rydgard
d64f367e1d
Assorted warning fixes
2017-03-05 10:52:45 +01:00
Florent Castelli
8c3552de74
cmake: Detect features at compile time
...
Instead of relying on manually passed down flags from CMake,
we now have ppsspp_config.h file to create the platform defines for us.
This improves support for multiplatform builds (such as iOS).
2016-10-19 12:31:19 +02:00
Unknown W. Brackets
0fc774927f
jit: Minor cleanups.
2016-01-10 12:28:29 -08:00
Henrik Rydgard
f50828a66a
ARM32 JIT: Implement vs2i, vus2i, vc2i (but not vuc2i)
2015-07-11 00:37:57 +02:00
Henrik Rydgard
cd1665e8f6
ARM32 jit: Implement vi2s, vi2c (but not the unsigned variants yet). uses the new shifts from the last commit
2015-07-09 00:27:12 +02:00
Unknown W. Brackets
66adc4e695
jit: Normalize CONDITIONAL_DISABLE formatting.
2015-07-02 20:31:37 -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 Rydgard
acf08eefa8
ARM64: Fix FCVTL, use it in v2hf
2015-04-06 18:13:33 +02:00
Henrik Rydgard
2780eef595
ARM64: Another couple of VFPU ops
2015-04-06 18:13:31 +02:00
Henrik Rydgard
1b1ab73b0f
ARM64: Enable some more VFPU instructions, some code cleanup
2015-04-06 18:13:29 +02:00
Henrik Rydgard
500ca94ab8
ARM64: Port over tons of VFPU code from ARM, leave most of it disabled.
2015-04-06 18:13:28 +02:00
Unknown W. Brackets
ab978b1eb1
armjit: Fix vfad/vavg sign for -0.000.
...
But, NEON is still broken pretty bad, not sure why.
2015-01-03 11:14:52 -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
75a9420b21
Reduce the number of places we include JitCommon.h. Update native.
2014-12-12 23:49:08 +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
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
Henrik Rydgard
e43c7af32c
ARM Jit: Implement quaternion multiplication
2014-11-16 19:12:00 +01:00
Unknown W. Brackets
0f32103615
x86jit: Consistently use mips_.
2014-10-12 15:16:09 -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
Sacha
6957808b97
ArmJit: Optimisation when comparing float against 0.0f
2014-07-17 05:12:43 +10:00
Unknown W. Brackets
252100aee5
Remove outdated comment (real cause found/fixed.)
2014-06-28 16:06:10 -07:00
Unknown W. Brackets
bc3d789c8a
x86jit: Cache the vfpu compare flags in a reg.
...
Again, to match armjit.
2014-06-28 00:38:55 -07:00
Unknown W. Brackets
d7e2c2c1d2
armjit: Oops, correctly handle plus/minus vmin/max.
2014-06-21 07:45:47 -07:00
Unknown W. Brackets
62daf6d7c8
armjit: Fix vmin/vmax to follow the PSP's rules.
...
Also the interpreter. Fixes #6107 .
2014-06-20 23:55:33 -07:00
Henrik Rydgard
0879d76503
VFPU: Ensure that sin(4*x) returns 0.0 (and cos 1) for all x. Fixes #2921
2014-06-15 11:03:00 +02:00
Sacha
55221b5c7c
Sin/cos fix for hardfp builds.
2014-06-12 23:10:22 +10:00
Unknown W. Brackets
5ccc227462
armjit: Minor const optimization in Comp_VV2Op.
2014-05-31 11:12:36 -07:00
Unknown W. Brackets
df289e46a9
armjit: Use sat0/1 method from prefixes in vsat.
2014-05-31 11:12:35 -07:00
Unknown W. Brackets
69b0b622be
armjit: Fix D-prefix sat clamp NAN handling.
...
They should leave NAN alone.
2014-05-16 01:04:57 -07:00
Unknown W. Brackets
bc32f0e0b2
armjit: Correct disabled vslt NaN handling.
...
Can possibly enable?
2014-05-16 01:04:57 -07:00
The Dax
086d97516d
Fix a couple ARM VFPU flags.
...
Unknown's explanation:
LO means Lower (unsigned), but for floats, it means "Less than".
LT means Lower (signed), but for floats it means "Less than OR unordered".
ARM docs at http://infocenter.arm.com/help/topic/com.arm.doc.dui0068b/Chdhcfbc.html explain the following:
LE means Signed less than or equal, and for floats it means "Less than or equal, or unordered".
LS means Unsigned lower or same, but for floats, it means "Less than or equal"
2014-05-04 22:37:41 -04:00
Henrik Rydgård
717c1cd34e
Merge pull request #5748 from unknownbrackets/armjit-minor
...
armjit: Allow R1 in regalloc, use LR as temp
2014-03-29 04:09:58 -04:00
Unknown W. Brackets
600842d9a2
armjit: Use prefixes on vscl's T arg.
...
Makes it pass one more thing in the prefixes test, but not sure exactly
how it operates. Better to have it the same as x86 and int anyway.
2014-03-29 01:00:29 -07:00
Unknown W. Brackets
5a89c17cf0
armjit: Allow R1 in regalloc, use LR as temp.
...
LR should be safe, although it may make stack traces not work within jit,
they don't really tend to work anyway.
2014-03-28 18:38:38 -07:00
Henrik Rydgard
c80510fb3b
MemMap should not be included in MIPS.h.
2014-03-15 10:45:39 +01:00
Henrik Rydgard
174b5187e6
Arm VFPU: 2-op and 3-op: map registers before work, improving instruction order a little.
2014-03-12 11:06:26 +01:00
Henrik Rydgard
adadf11890
An attempt to combine FPU regcache writebacks with VSTMIA. Disabled due to bugs.
2014-03-11 11:03:51 +01:00
Sacha
30a6a5d10f
ARMJIT: Implement VLDM/VSTM load/store combinations and use in armjit. Also add them to disassembler.
2014-03-07 02:56:34 +10:00