Ryan Houdek
715d5ae8a7
Merge branch 'JitArmIL'
...
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
Ryan Houdek
f5e1b4659a
[ARM] Clean up LSL, LSR, and ASR emitters, we don't need a separate instruction for each to support registers.
2013-10-09 22:57:31 +00:00
Ryan Houdek
7dd8deecec
[ARM] Update the ArmEmitter with a bunch of NEON emitters. This adds around 47 instruction emitters if I counted correctly. None well tested at this point. On going to add all the NEON emitters.
2013-10-08 10:17:01 +00:00
Ryan Houdek
eb6ed3e42a
[ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker.
2013-09-24 05:41:58 +00:00
Ryan Houdek
6fc2117503
[ARM] Enable VMOV to move from double VFP reg to two ARM registers.
2013-09-18 17:21:22 -05:00
Ryan Houdek
06062d5744
[ARM] Fix VSQRT/VCMP/VCMPE/VCMPE0/VCMP0 emitters when using the high 16 double registers.
2013-09-17 22:08:23 +00:00
Ryan Houdek
7d410ec95c
[ARM] VRSQRTE NEON emitter.
2013-09-16 12:58:20 +00:00
Ryan Houdek
beb41a8f56
[ARM] Add NEON VORR and fix encoding on NEON VEOR. Remove VMRS_APSR because it is the same as VMRS(PC)
2013-09-16 07:49:16 +00:00
Ryan Houdek
81d7986202
[ARM] Add LSRS emitters, and ASR{S} register emitters. Fixes encoding in LSR emitter.
2013-09-14 09:06:49 +00:00
Ryan Houdek
c1aa80cefa
[ARM] Add support for double registers in VMOV(immediate). Add VEOR and VSTR1. Fix some minor encoding bugs.
2013-09-08 21:56:17 +00:00
Ryan Houdek
e6af4970d8
[ARM] Use NEON for loading the values from psq_l, gives a minimal performance increase. This change also begins a new NEONXEmitter for having cleaner support for NEON.
2013-09-08 07:07:15 +00:00
comex
35b8dfbe0c
A few more warnings.
2013-09-01 23:33:35 -04:00
Ryan Houdek
710ac04084
[ARM] Fix the VMOV encoding to encode the destination VFP register correctly.
2013-08-30 05:13:43 -05:00
Ryan Houdek
2c1337eb5f
[ARM] Support both hardfp and softfp with lfs and lfd. Fixes these two instructions on Android since it uses softfp calling conventions. This adds a emitter for moving from two ARM Registers to a double VFP reg.
2013-08-30 09:38:11 +00:00
Ryan Houdek
9bded1382c
[ARM] Add ASR/ASRS and UMULLS emitters.
2013-08-19 06:26:34 +00:00
Ryan Houdek
ca7fb9f38e
[ARM] Fix VCVT F32<->F64 encoding.
2013-08-03 00:48:44 +00:00
Ryan Houdek
ab0f42636d
[ARM] Push new ArmEmitter changes from PPSSPP. Mostly Fixes a few VFP/NEON instruction encodings.
2013-08-02 23:18:44 +00:00
Ryan Houdek
f4b414a9c1
Fix encoding issue with VADD(Integer)
2013-07-16 22:18:15 -05:00
Ryan Houdek
7d6b36bf73
Fix most ARM warnings
2013-07-05 19:56:15 -05:00
Ryan Houdek
d68955c539
Clang uses __clear_cache instead of __builtin___clear_cache like GCC
2013-04-18 22:50:58 -05:00
Ryan Houdek
6d9c0c8863
Merge in latest changes to ArmEmitter from the PPSSPP crew. Should fix the dumb random crashes I had from IOS icache clearing not initializing a value.
2013-04-12 11:59:19 -05:00
lioncash
edd9d0e0ef
Clean up more space/tab mismatches in AudioCommon, Common, and VideoCommon.
...
Not planning to touch Core since it's the most actively changed part of the project.
2013-03-19 21:51:12 -04:00
Ryan Houdek
7d74293170
Fix a typo in ArmEmitter noticed by LionCash.
2013-03-18 08:45:33 -05:00
Ryan Houdek
9ae9910490
Finish up VFP cleanup. A few more instructions are left for VFP, and a bunch of NEON ones if it will ever be used.
2013-03-18 00:10:56 +00:00
Ryan Houdek
e6c6053fcc
Beginning of VFP cleanup. Will finish when I have the hardware in front of me.
2013-03-14 10:45:26 -05:00
Ryan Houdek
c93f7760ce
Really clean up all the emitter loadstores on ARM. If a ARM device supports VFPv4, then it supports IDIVA, so handle that in CPUDetect.
2013-03-14 01:50:38 +00:00
Ryan Houdek
202e2fa5c8
Add a new WriteNewStoreOp emitter function for beginning of rewrite of the Arm Emitter LoadStores. Will finish when I have the hardware in front of me to test on.
2013-03-13 14:08:54 -05:00
Ryan Houdek
8406d9972d
Fix JIT from rebasing on PPSSPP ArmEmitter.
2013-03-12 02:35:29 +00:00
Ryan Houdek
b94b4a9e8f
Rebase ArmEmitter on PPSSPP's base. The loadstores are making my heart cry at this point.
2013-03-11 13:57:55 -05:00
Ryan Houdek
be217bf096
Add a comment about Qualcomm in load stores.
2013-03-07 20:28:18 -05:00
Ryan Houdek
d6558e1c31
Make the (V)LDR/(V)STR instructions support negative offsets. This fixes a bug where Arm Jit couldn't load the top 33 FPRs. Also makes it so the core can access all GPRs, FPRs, and SPRs in ppcState. This increases VPS 15-20 on SSBM intro movie on ODROIDX
2013-03-06 01:51:59 +00:00
Ryan Houdek
f1d727cf13
Merge latest ArmEmitter changes from ppsspp while we're at it.
2013-02-27 11:53:24 -06:00
Ryan Houdek
8c779bb242
Ah. I blame vim on this typo entirely.
2013-02-27 10:26:32 -06:00
Ryan Houdek
717b976875
ARM Support without GLSL
2013-02-26 13:49:00 -06:00