Lioncash
059c65a27a
armemu: Fix underflows in USAD8/USADA8
...
Initially reported by xdec.
2014-12-28 06:09:43 -05:00
Lioncash
af69b0840b
dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX.
2014-12-27 17:24:34 -05:00
Lioncash
60523113a9
armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAX
2014-12-27 17:06:19 -05:00
Lioncash
52d889d85d
dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-27 00:57:32 -05:00
Lioncash
84a0438cf5
armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-26 23:55:39 -05:00
bunnei
e5ddbfee02
Merge pull request #339 from bunnei/fixup-gsp-synch
...
Fixup gsp synch
2014-12-25 22:52:40 -05:00
bunnei
4783133bbd
ARM: Add a mechanism for faking CPU time elapsed during HLE.
...
- Also a few cleanups.
2014-12-25 22:46:44 -05:00
bunnei
9c8ec675d9
Merge pull request #343 from lioncash/smmla
...
armemu: Implement SMMUL, SMMLA, and SMMLS.
2014-12-25 21:57:31 -05:00
bunnei
254567056f
Merge pull request #341 from lioncash/moresmops
...
armemu: Implement SMLALD/SMLSLD
2014-12-25 21:46:54 -05:00
Lioncash
35dbfc7ab0
armemu: Implement SMMUL, SMMLA, and SMMLS.
2014-12-25 13:52:46 -05:00
Lioncash
82c3962b95
armemu: Implement SMLALD/SMLSLD
2014-12-24 09:29:48 -05:00
Lioncash
6b7808e412
armemu: Fix GE/Q flag setting semantics
2014-12-24 07:56:57 -05:00
Lioncash
20fc5f2a35
armemu: Set the Q flag correctly for much of the other ops
...
They were setting the old S flag.
2014-12-23 09:59:37 -05:00
Lioncash
79a7a432c5
armemu: Set the Q flag properly for SMLAD/SMUAD
2014-12-23 09:58:21 -05:00
bunnei
d31a94f06b
Merge pull request #334 from lioncash/cpsr
...
armemu: Fix retrieval of the CPSR in MRS instructions.
2014-12-23 09:44:04 -05:00
bunnei
53447da142
Merge pull request #335 from lioncash/cpsrcreate
...
armemu: Emulate the GE and Q flags.
2014-12-23 09:43:46 -05:00
Lioncash
6446331938
armemu: Properly set the Q flag for SSAT16/USAT16 upon saturation.
2014-12-22 23:52:05 -05:00
Lioncash
f66d356938
armemu: Fix SEL
...
Needs to use the updated state of the CPSR.
2014-12-22 23:52:05 -05:00
Lioncash
8e2accd974
armemu: Fix construction of the CPSR
2014-12-22 23:51:59 -05:00
Lioncash
8c72322422
armemu: Fix retrieval of the CPSR in MRS instructions.
2014-12-22 21:44:03 -05:00
Lioncash
97f3e884d2
dyncom: Move over QADD16/QASX/QSAX/QSUB16
2014-12-22 01:09:42 -05:00
bunnei
2188af4a65
Merge pull request #322 from chinhodado/master
...
More warning cleanups
2014-12-22 00:12:43 -05:00
Lioncash
245276c9cc
dyncom: Move SEL over
2014-12-21 21:19:15 -05:00
bunnei
770b274c86
Merge pull request #324 from lioncash/dync
...
dyncom: Move over SASX/SSAX/SADD16/SSUB16
2014-12-21 20:33:14 -05:00
Lioncash
c6f27055c9
dyncom: Move over SASX/SSAX/SADD16/SSUB16
2014-12-21 19:50:36 -05:00
bunnei
0de6a08d75
Merge pull request #291 from purpasmart96/license
...
License change
2014-12-21 16:05:44 -05:00
Chin
0199a7d9ef
More warning cleanups
2014-12-21 10:58:55 -05:00
purpasmart96
ebfd831ccb
License change
2014-12-20 21:20:24 -08:00
Lioncash
855eda6f85
armemu: Implement SADD8/SSUB8
2014-12-20 23:10:35 -05:00
bunnei
0e9262885d
Merge pull request #296 from lioncash/dyn
...
dyncom: Implement UMAAL
2014-12-20 16:24:12 -05:00
bunnei
993afd3bf0
Merge pull request #310 from lioncash/ssat16
...
armemu: Fix SSAT16.
2014-12-20 16:23:54 -05:00
Lioncash
2a097f0990
armemu: Should be using labs for USAD8/USADA8
2014-12-20 15:34:14 -05:00
bunnei
7095c4959b
Merge pull request #311 from lioncash/usada
...
armemu: Implement USAD8 and USADA8
2014-12-20 15:21:25 -05:00
bunnei
52bc58283d
Merge pull request #313 from lioncash/smlsd
...
armemu: Implement SMLSD
2014-12-20 15:18:52 -05:00
bunnei
1c50a036dd
Merge pull request #314 from lioncash/qsax-qasx
...
armemu: Implement QASX and QSAX
2014-12-20 15:18:05 -05:00
bunnei
245abb4125
Merge pull request #294 from lioncash/var
...
armemu: Narrow the scope of some variables in handle_v6_insn
2014-12-19 16:46:56 -05:00
bunnei
dc5d1a9061
Merge pull request #305 from lioncash/paren
...
armemu: Get rid of bitwise parenthesis warnings
2014-12-19 16:46:36 -05:00
Lioncash
4b506cec01
armemu: Implement QASX and QSAX
2014-12-19 14:09:18 -05:00
Lioncash
0f3a6a161c
armemu: Implement SMLSD
2014-12-19 09:53:54 -05:00
Lioncash
4a646ace1f
dyncom: Implement UMAAL
2014-12-19 04:02:14 -05:00
Lioncash
00e8ec4a9e
armemu: Implement USAD8 and USADA8
2014-12-18 23:38:57 -05:00
Lioncash
92c53fe522
armemu: Fix SSAT16
...
The lower-bound would never be negative like it should
2014-12-18 20:35:14 -05:00
Lioncash
b9fc0b4b80
armemu: Clean up naming and formatting for SSAT16
2014-12-18 20:34:22 -05:00
bunnei
24b5e87279
Merge pull request #304 from lioncash/sflags
...
armemu: Set GE flags properly for SSUB16, SADD16, SSAX, and SASX.
2014-12-18 17:46:10 -05:00
Lioncash
e683f654ce
armemu: Fix lower-bounds clamping for USAT16
2014-12-18 16:54:01 -05:00
Lioncash
6b632bbe37
armemu: More concise names for USAT16-related variables
2014-12-18 14:25:07 -05:00
Lioncash
eaae0ad502
armemu: Get rid of bitwise parenthesis warnings
2014-12-18 12:07:18 -05:00
Lioncash
4dc8eb40be
armemu: Set GE flags correctly for SSUB16, SADD16, SSAX, and SASX.
2014-12-18 11:45:40 -05:00
bunnei
8ac22e7efc
Merge pull request #299 from lioncash/join
...
Combine SSUB16, SADD16, SASX, and SSAX.
2014-12-18 10:04:31 -05:00
bunnei
797efbde1a
Merge pull request #298 from lioncash/flags
...
armemu: Unset GE flags for UADD8 if results are < 0x100
2014-12-17 22:06:27 -05:00
bunnei
a968adf50e
Merge pull request #295 from lioncash/umaal
...
armemu: Implement UMAAL
2014-12-17 21:44:13 -05:00
Lioncash
85c318078d
armemu: Combine SSUB16, SADD16, SASX, and SSAX.
2014-12-17 21:17:54 -05:00
bunnei
075126247f
Merge pull request #292 from lioncash/backports
...
Backport more skyeye fixes from 3dmoo
2014-12-17 20:58:00 -05:00
Lioncash
41fee1c940
armemu: Unset GE flags for UADD8 if results are < 0x100
...
Reference manual states these must be set to zero if this case is true.
2014-12-17 17:54:49 -05:00
Lioncash
58dc554733
armemu: Fix SSUB16
...
Broken from the same reason SADD16 was.
The lo part of the result should only be constructed from the lo halfwords of rm and rn.
The hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 15:40:10 -05:00
bunnei
e6f440ea7f
Merge pull request #293 from lioncash/sops
...
armemu: Fix SADD16
2014-12-17 14:54:24 -05:00
bunnei
3e9d4a7917
Merge pull request #287 from lioncash/qaddsub16
...
armemu: Join QADD16/QSUB16 and fix saturation clamping.
2014-12-17 12:34:52 -05:00
Lioncash
5820dba6b7
armemu: Implement UMAAL
2014-12-17 12:21:21 -05:00
Lioncash
2d91164bb9
armemu: Narrow the scope of some variables in handle_v6_insn
...
There's no reason to have these in the outer-most scope.
2014-12-17 10:26:20 -05:00
Lioncash
5289a496a7
armemu: Fix SADD16
...
The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 09:36:25 -05:00
Normmatt
73211dc8fe
armemu: Fix PKHTB
2014-12-17 03:26:12 -05:00
Normmatt
8045df14d2
armemu: Implement REVSH
2014-12-17 03:26:01 -05:00
Normmatt
bc81cc9490
armemu: Fix UXTAB/UXTAH
2014-12-17 03:24:25 -05:00
Normmatt
b5dbd6f2a2
armemu: Fix SXTAB
2014-12-17 03:17:44 -05:00
Normmatt
efebd5589a
armemu: Fix SXTAH
2014-12-17 03:16:40 -05:00
bunnei
fdb4ef5210
Merge pull request #289 from lioncash/smops
...
Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
2014-12-17 00:08:43 -05:00
bunnei
ec9ac2f51a
Merge pull request #290 from lioncash/vsub
...
armemu: Backport some VFP fixes from 3dmoo.
2014-12-16 23:22:58 -05:00
Normmatt
9c127f4a01
armemu: Fix FTOUI NaN sign.
2014-12-16 05:56:06 -05:00
Normmatt
2ed03c10e0
armemu: Fix FSUBS bug where NaN shouldn't be negated
2014-12-16 05:54:00 -05:00
Lioncash
d5bcddb77c
armemu: Fix SMUAD, SMUSD, and SMLAD
...
Wrong values were being multiplied together.
2014-12-16 03:13:06 -05:00
Lioncash
0f9e3baf39
armemu: Join SMUAD, SMUSD, and SMLAD
2014-12-16 03:11:50 -05:00
Lioncash
4c53799229
armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.
2014-12-16 00:11:51 -05:00
Lioncash
49817e89d9
armemu: Join QADD16 and QSUB16 together.
...
The only difference between these ops is one adds and one subtracts. Everything is literally the same.
2014-12-16 00:11:19 -05:00
Lioncash
1c7f77334c
armemu: Implement UXTAB16
2014-12-15 20:47:27 -05:00
Lioncash
2b0acd36e1
armemu: Fix UXTB16
...
Rotation bits are 10 and 11, not 9 and 10.
2014-12-14 23:00:31 -05:00
bunnei
1ee740898a
Merge pull request #276 from lioncash/decrappify
...
Clean up armdefs.h a little.
2014-12-14 22:08:14 -05:00
bunnei
d26b7146ce
ARM: Pull some SkyEye fixes from 3dmoo.
2014-12-14 21:51:46 -05:00
Lioncash
f6cb8c1927
Clean up armdefs.h
2014-12-14 02:00:42 -05:00
Yuri Kunde Schlesner
0600e2d8b5
Convert old logging calls to new logging macros
2014-12-13 02:08:02 -02:00
Lioncash
905e3b616a
armemu: Fix SSAX
2014-12-08 15:47:20 -05:00
Lioncash
62fd564854
armemu: Fix SASX
2014-12-08 01:44:37 -05:00
Lioncash
b4256431aa
armemu: Fix parenthesis warnings regarding bitwise ops
2014-12-07 23:58:12 -05:00
bunnei
13005d54aa
Merge pull request #235 from yuriks/dyncom-map
...
dyncom: Use unordered_map rather than the terrible 2-level bb_map
2014-11-30 08:35:03 -05:00
Yuri Kunde Schlesner
4a68e91a62
dyncom: Use unordered_map rather than the terrible 2-level bb_map
...
Seems (probably just placebo/wishful thinking) to make it slightly
faster. Also reduces memory usage and makes shutdown when debugging from
MSVC fast.
2014-11-29 17:42:39 -02:00
Lioncash
4f28861008
arm_dyncom_interpreter: Get rid of unused var warnings
2014-11-29 14:13:29 -05:00
darkf
a19354aced
Add comment regarding __WIN32__ in SkyEye code
2014-11-28 21:50:50 -08:00
darkf
459502e48c
Fix MinGW build
2014-11-28 21:38:20 -08:00
Emmanuel Gil Peyrot
f8c05e53c4
Remove unused includes to common/thread.h
2014-11-25 20:39:25 +00:00
Yuri Kunde Schlesner
c2588403c0
HLE: Revamp error handling throrough the HLE code
...
All service calls in the CTR OS return result codes indicating the
success or failure of the call. Previous to this commit, Citra's HLE
emulation of services and the kernel universally either ignored errors
or returned dummy -1 error codes.
This commit makes an initial effort to provide an infrastructure for
error reporting and propagation which can be use going forward to make
HLE calls accurately return errors as the original system. A few parts
of the code have been updated to use the new system where applicable.
One part of this effort is the definition of the `ResultCode` type,
which provides facilities for constructing and parsing error codes in
the structured format used by the CTR.
The `ResultVal` type builds on `ResultCode` by providing a container for
values returned by function that can report errors. It enforces that
correct error checking will be done on function returns by preventing
the use of the return value if the function returned an error code.
Currently this change is mostly internal since errors are still
suppressed on the ARM<->HLE border, as a temporary compatibility hack.
As functionality is implemented and tested this hack can be eventually
removed.
2014-11-24 17:08:36 -02:00
Yuri Kunde Schlesner
924bbde89b
Change some SkyEye defines to const ints
...
This prevents them from interfering with other constants defined in
different namespaces.
2014-11-24 16:47:01 -02:00
Emmanuel Gil Peyrot
f5d38649c7
Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated
2014-11-19 09:03:07 +00:00
Lioncash
64cc6cb6cf
Fix documentation of parameters
2014-11-18 08:31:24 -05:00
bunnei
613627205c
Merge pull request #194 from lioncash/virt
...
ARM_Interface: Make destructor virtual
2014-11-15 01:38:51 -05:00
Lioncash
e8f4361d76
ARM_Interface: Make destructor virtual
...
Fixes some warnings on OSX.
2014-11-14 12:10:35 -05:00
bunnei
b8e6f52419
ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable).
...
- Fixes single stepping in debugger.
2014-11-11 19:54:18 -05:00
bunnei
573756e241
ARM: Removed unnecessary goto with each instruction.
2014-11-11 19:53:46 -05:00
bunnei
3409790668
ARM: Fixed several dyncom bugs.
...
- Fixed NZCVT flags to properly save state when function returns.
- Fixed counter to keep track of the actual number of instructions executed.
- Fixed single-step mode to only execute one instruction at a time.
- DefaultIni: Removed comment that no longer applied to dyncom.
2014-11-11 19:53:19 -05:00
Sean Maas
d06420807c
Fix compilation errors
2014-11-02 18:43:52 -05:00
bunnei
0832cf7cd7
ARM: Merged additional ARMv6 instructions implemented by 3dmoo.
2014-11-02 01:04:54 -05:00
bunnei
bc6989b075
ARM: Merge latest VFP fixes from 3dmoo team.
2014-11-02 01:04:41 -05:00