Commit Graph

129 Commits

Author SHA1 Message Date
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 Rydgard
7b3f84aae8 More buildfixes for Windows on ARM 2017-03-05 10:52:08 +01:00
Florent Castelli
4145b60a0e symbian: Remove! 2016-10-11 18:49:08 +02:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgard
59164cdbfb ARM32: Disasm and emit NEON shifts-by-immediate 2015-07-09 00:24:57 +02:00
Henrik Rydgard
73dd26fb75 More ARM64 disasm, warning fixes 2015-04-06 18:13:07 +02:00
Henrik Rydgard
58b059ca14 Some casting cleanup, misc 2015-04-06 18:13:06 +02:00
Lioncash
f0f7e48ef4 Common: Move headers over to using pragma once
Just makes the headers more consistent.
2014-12-15 17:09:40 -05:00
Henrik Rydgard
4ec30d98e1 Port the x86 and ARM emitters over to use the generic CodeBlock class 2014-12-15 22:32:55 +01:00
Henrik Rydgard
b2951f0def Transplant Dolphin's ARM64 emitter over. Not hooked up to anything (yet...) 2014-12-15 22:09:26 +01:00
Lioncash
a962bc5a6c Mark some functions as const 2014-12-07 17:08:13 -05:00
Henrik Rydgard
66d74981b5 Merge ARM emitter updates from the NEON branch 2014-11-29 10:49:22 +01:00
Henrik Rydgard
53b5d331b4 Assorted minor optimizations 2014-11-17 21:21:44 +01:00
Henrik Rydgard
215abfb951 Some cleanup in /Common 2014-09-06 10:47:25 +02:00
Unknown W. Brackets
f339f7d539 armjit: Handle NAN correctly in float conversion. 2014-06-29 20:05:59 -07:00
Sacha
4c8a615f76 CMake: Make the code more platform-agnostic and cleaner. 2014-05-31 01:22:11 +10:00
Unknown W. Brackets
2f5c6a5660 Fix VLDM/VSTM encoding for double/quad regs.
Duh, forgot to check Vd.  Fixes #5723.
2014-03-25 22:08:20 -07:00
Unknown W. Brackets
009c3ee3f7 vertexjit: Save S16-S31 registers in ARM. 2014-03-23 16:26:13 -07:00
Unknown W. Brackets
ff2d5bb17e Add a float->GP reg, fix VDUP for I_16. 2014-03-23 16:25:56 -07:00
Unknown W. Brackets
8056440ba1 Implement NEON register VMOVs. 2014-03-23 16:25:52 -07:00
Unknown W. Brackets
3e1cd5c161 Add a NEON VMOV imm encoding to the emitter. 2014-03-23 16:12:46 -07:00
Unknown W. Brackets
f3d38ee269 Fix VMOV for Dregs and VSHL reg order. 2014-03-22 16:12:00 -07:00
Unknown W. Brackets
0da9c1851c vertexjit: Add VQMOV(U)N and fix VMOVN size.
It will be too confusing if it's specified as the destination, unlike
VMOVL.  Plus the assembler syntax uses the source size.
2014-03-22 16:11:36 -07:00
Henrik Rydgård
8dfadf7b8e ArmEmitter: Add VMOV_neon and a Size parameter to VFMA for consistency. 2014-03-22 16:31:16 +01:00
Unknown W. Brackets
e783627947 armjit: Use our I2R funcs on reg/reg math too.
When one is a known immediate.  This should catch more cases, like:

ori v0, $0, 0xFFFF
and v1, v1, v0
2014-03-14 19:15:43 -07:00
Unknown W. Brackets
3a07924ad9 Add Try arm emitter I2R funcs.
This way we can use them without giving up the regcache's immediate
optimizations.
2014-03-14 19:15:42 -07:00
Unknown W. Brackets
76305130ee Add a couple missing (unused) ARM instructions. 2014-03-14 19:15:39 -07: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
Unknown W. Brackets
2655a4cba6 Include some now-missing things for Linux. 2013-12-30 21:15:00 -08:00
Henrik Rydgård
e5e17fbc6e More include cleanup. Hoping for very slightly faster compile times.. 2013-12-30 10:49:05 +01:00
Unknown W. Brackets
e6b2d00a2f Avoid reseved identifiers like _SP, etc.
R_SP is not that bad.
2013-12-29 14:25:34 -08:00
Unknown W. Brackets
5d2ff64252 Support for modified jit-enabled VerySleepy.
This allows profiling the jit.  Should have zero perf impact when not
in use, since it's entirely triggered by VerySleepy.
2013-11-30 19:20:21 -08:00
Henrik Rydgard
030e6460cc ARM: NEON-optimize software skinning 2013-11-24 18:03:42 +01:00
Henrik Rydgard
dfea160491 ARM: Use PLD (cache preload) in vertex decoder loop. 2013-11-24 15:08:47 +01:00
Henrik Rydgard
f650b23c90 ARM: Add NEON widening and narrowing moves, and float/int convert.
Experiment a little in the vertex decoder.
2013-11-24 13:30:28 +01:00
Henrik Rydgard
8e513ec38a MOVP2R linux buildfix attempt 2013-11-23 16:50:08 +01:00
Henrik Rydgard
16509ba3e9 ARMEmitter: Make the helper functions private. 2013-11-23 13:43:22 +01:00
Henrik Rydgard
cda4e9cbf3 ARM emitter: Complete VLD1/VST1 for lanes and to-all-lanes. 2013-11-23 13:36:26 +01:00
Henrik Rydgard
e0eb152fb9 VLD1/VST1: Change argument ordering again. 2013-11-23 11:05:19 +01:00
Henrik Rydgard
b64f44c3fc ARM emitter: Implement VMLA and VMUL by scalar, VLD1/VST1 multiple 2013-11-23 01:51:35 +01:00
Henrik Rydgard
97cfbd1a5f ArmEmitter: Introduce MOVP2R, let's you load a pointer without casting. 2013-11-22 23:10:25 +01:00
Henrik Rydgård
ddf5b695ac Update ArmEmitter with Sonic1's new NEON emitters. Thanks! 2013-11-13 11:34:47 +01:00
Sacha
d50b01a778 Doesn't really 'free', so called 'reset' instead. 2013-11-12 02:13:34 +10:00
Sacha
3bc8adf426 Fix crashes on Symbian related to memory allocation. 2013-11-12 02:06:12 +10:00
Sacha
2c795907b2 Symbian: Handle multiple executable memory allocations.
Windows: Remove MemUsage (from Dolphin) as it was unused.
Fix some tabbing.
2013-11-11 02:55:45 +10:00
Unknown W. Brackets
6038d96b46 armjit: Flush regs using STMIA where possible. 2013-11-09 08:25:07 -08:00
Unknown W. Brackets
7a8671f8a2 Add a TSTI2R helper for readability mainly. 2013-11-03 21:58:26 -08:00
Unknown W. Brackets
5de7181b36 Add other forms of LDM/STM to the emitter. 2013-11-03 21:31:05 -08:00
Unknown W. Brackets
ffa0f2fb44 Fix some arm emitter warnings on win64.
We link it in for debugging purposes.
2013-10-26 17:57:40 -07:00
Henrik Rydgård
4582902cf2 Make the ARM stuff build on clang so we can later get the unit test to
work there. also fixes the build.
2013-09-29 20:01:38 +02:00