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
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
Yuri Kunde Schlesner
c6e3c7df62
Fix VFP compilation errors with gcc
2014-10-30 22:24:03 -02:00
bunnei
19d91a45f5
Merge pull request #153 from yuriks/add-override
...
Add override keyword where appropriate
2014-10-27 21:23:16 -04:00
Lioncash
d155586801
vfp_helper: Get rid of integer type redefinitions
2014-10-26 14:19:47 -04:00
Yuri Kunde Schlesner
d72708c1f5
Add override
keyword through the code.
...
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02:00
bunnei
818ba32746
ARM: Removed unnecessary and unused SkyEye MMU code.
...
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
2014-10-25 14:11:41 -04:00
bunnei
3c823c0028
ARM: Removed unused armos code from SkyEye.
2014-10-25 14:11:40 -04:00
bunnei
130efd461d
ARM: Updated dyncom core to use fast label lookup table on clang.
2014-10-25 14:11:40 -04:00
bunnei
53a22b84da
ARM: Integrate SkyEye faster "dyncom" interpreter.
...
Fixed typo (make protected member public)
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
ARM: Fixed a type error in dyncom interpreter.
ARM: Updated dyncom to use unique_ptr for internal ARM state.
2014-10-25 14:11:39 -04:00
bunnei
b5e6524594
ARM: Reorganized file structure to move shared SkyEye code to a more common area.
...
Removed s_ prefix
2014-10-25 14:11:39 -04:00
bunnei
5481115e71
Merge pull request #97 from archshift/cleanup
...
Small, general code cleanup
2014-09-13 22:58:58 -04:00
bunnei
532a9e80a0
Merge pull request #99 from archshift/ext-check
...
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
2014-09-11 00:04:36 -04:00
archshift
6e606c515f
core: Prune redundant includes
2014-09-08 17:54:14 -07:00
archshift
5472fd4d9b
Added string_util to common, small changes in loader.cpp
2014-09-08 15:43:22 -07:00
archshift
1c02c03e32
Dead code removal: video_core.cpp, load_symbol_map.cpp
2014-09-07 12:09:02 -07:00
Lioncash
403c84cdab
core: Make the ARM disassembler use std::string internally
2014-09-06 14:45:56 -04:00
bunnei
304999dfeb
Threading: Fix thread starting to execute first instruction correctly.
2014-08-28 17:51:49 -04:00
Emmanuel Gil Peyrot
ef27770a53
ARM: Remove a forgotten const in vfp.
2014-08-20 17:50:27 +00:00
bunnei
77fc029a00
ARM: Synchronize Citra's SkyEye core with 3dmoo's.
2014-07-23 19:16:40 -04:00
Lioncash
8761461003
core: Kill off type redefenitions in armdefs.h
2014-07-19 22:02:21 -04:00
bunnei
004df76795
Merge branch 'threading' of https://github.com/bunnei/citra
...
Conflicts:
src/core/hle/function_wrappers.h
src/core/hle/service/gsp.cpp
2014-06-14 12:13:16 -04:00
bunnei
6cdad8390c
arm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually executing one more instruction than expected
2014-06-05 00:25:32 -04:00
bunnei
9ece9da50d
arm: fixed bug in how thread context switch occurs with SkyEye
2014-06-05 00:20:11 -04:00
bunnei
c330a0a1d6
arm: reverting a change made with cb0663de
- this has to have been a typo!
2014-06-04 18:41:44 -04:00
bunnei
e8a17ee6fd
arm: added option to prepare CPU core (while mid-instruction) for thread reschedule
2014-06-01 21:40:10 -04:00
Disruption
0be75c13ee
Added 'this' reference to num_instructions field so it's properly updated,as before the method was affecting the local method parameter rather than the class field
2014-06-01 21:08:26 +02:00
bunnei
55a540eb02
arm: removed unnecessary code when calling SVC from skyeye
2014-05-29 23:03:47 -04:00
bunnei
32c314c992
Merge branch 'threading'
2014-05-22 22:57:45 -04:00
bunnei
481d936d34
arm_interpreter: fixed load context to currently resume a thread
2014-05-22 18:47:42 -04:00
bunnei
a721a4eb33
arm: removed include of windows.h from armdefs.h to arminit.c (only module that uses it)
2014-05-20 22:26:40 -04:00
bunnei
22eb9a8981
armemu: missed rename of "Syscall" to "SVC"
2014-05-20 22:25:40 -04:00
bunnei
0012802456
ARM_Interpreter/ARM_Interface: Fixed member variable naming to be consistent with style guide
2014-05-20 18:52:54 -04:00
bunnei
49dc2ce8ac
ARM_Interface: added SaveContext and LoadContext functions for HLE thread switching
2014-05-20 18:50:16 -04:00
bunnei
29930ac110
VFP: disable DBG messages because they spam the console with unimportant skyeye junk
2014-05-19 22:19:10 -04:00
bunnei
204c6bfeca
Merge pull request #2 from archshift/issue-7-fix
...
Fixes issues with building Citra on OSX
2014-05-19 21:46:57 -04:00
archshift
c396a5ac57
Fixed vfp issues
2014-05-17 10:55:45 -07:00
bunnei
fbc04ad0c7
ignore thumbemu 0xDEADCODE debugging catch on MCR
2014-05-17 13:48:27 -04:00
bunnei
3fac6dc39e
Merge branch 'master' into threading
2014-05-17 13:35:20 -04:00
bunnei
265c770a9d
updated how we call ARM core to make things much faster
2014-05-17 11:59:18 -04:00
bunnei
0b1ba2f37a
Merge master into threading to add support for VFP
2014-05-16 22:24:34 -04:00
bunnei
92be5517c4
same fix as last commit - just for vfpsingle.cpp
2014-05-16 21:25:33 -04:00
bunnei
1dc08765a8
another VFP fix for GCC
2014-05-16 21:18:01 -04:00
bunnei
509f63486a
fixed VFP DBG log for GCC
2014-05-16 21:10:30 -04:00
bunnei
145a91f21f
- reenabled MCR and MRC functions now that VFP is attached
...
- removed HLE::CallMCR function (was pointless)
2014-05-16 20:52:46 -04:00
bunnei
a2804bf701
- removed unused stubbed out code
...
- fixed some compiler issues with xscale_copro when porting code to Windows
- fixed some #include's
2014-05-16 20:04:13 -04:00
bunnei
f872807de2
added maverick.cpp to ARM core from skyeye
2014-05-16 00:52:42 -04:00
bunnei
f3c9875acb
fixed includes
2014-05-16 00:52:13 -04:00
bunnei
f5400080bd
enabled CP_ACCESS_ALLOWED
2014-05-16 00:51:59 -04:00
bunnei
68408ed9b9
fixed include path
2014-05-16 00:51:45 -04:00
bunnei
7cd7d17954
removed undefined function ARMul_ConsolePrint
2014-05-16 00:51:36 -04:00
bunnei
ad49d481a8
added missing armcopro from skyeye
2014-05-16 00:23:36 -04:00
bunnei
9a642caee7
added missing skyeye mmu code
2014-05-15 23:39:06 -04:00
bunnei
56846a4200
fixed armmmu imports
2014-05-15 22:58:21 -04:00
bunnei
3e1eafa244
- moved mmu to arm/interpreter folder
...
- added initial VFP code from skyeye
2014-05-15 22:54:17 -04:00
bunnei
ce4d271a53
added option to set CPSR register to arm_interface
2014-05-11 22:14:13 -04:00
bunnei
d1472b816f
- disable strict alignment on LDRD/STRD
...
- handle RD in STREX/STREXB
2014-05-06 21:34:00 -04:00
bunnei
e3ee3e441b
commented out useless debug logs that just spammed console
2014-05-06 17:17:00 -04:00
bunnei
f7c6302009
- added CallMCR function to coprocessor HLE module
...
- moved instruction decoding to coprocessor HLE module
2014-05-01 23:03:50 -04:00
bunnei
f043424915
renamed hle "mrc" module to "coprocessor"
2014-05-01 19:20:44 -04:00
bunnei
29da6e9ab5
added a module to load symbol map files for debugging
2014-04-30 23:46:06 -04:00
bunnei
a48c6b947d
removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class
2014-04-27 18:29:51 -04:00
bunnei
f76a60be05
removed commented out line - this was for an unimplemented MRC call, no longer need to leave this here
2014-04-27 18:22:30 -04:00
bunnei
cb0663de51
moved HLE::MRC to its own module, added support for catching data synchronization barrier command
2014-04-25 17:15:19 -04:00
bunnei
6151e26958
added disassembly to unimplemented instruction
2014-04-25 15:57:32 -04:00
bunnei
7a136b8a84
fixes to build on linux
2014-04-22 19:42:29 -07:00
bunnei
68e198476f
- added HLE to connect to "srv:" service
...
- added a manager for keeping track of services/ports
- added a memory mapped region for memory accessed by HLE
- added HLE for GetThreadCommandBuffer function
2014-04-12 21:55:36 -04:00
bunnei
4d88318903
hacked CPU interpreter to ignore branch on SVC instruction (as we are HLEing this...)
2014-04-12 01:36:39 -04:00
bunnei
cd7de52fea
added a SETABORT method that does not update LR (for HLE'd SVC that does not jump appcore CPU to an IRQ vector)
2014-04-12 01:35:45 -04:00
bunnei
2bde8f2856
base code to call a syscall from ARM11 appcore
2014-04-10 23:26:12 -04:00
bunnei
fccbfc208c
missed this file with commit 95e5436f
2014-04-10 19:57:56 -04:00
bunnei
95e5436f41
cleaned up arm_interface, added a setter to set registers for use with HLE return values
2014-04-10 19:55:59 -04:00
bunnei
d0674cc98b
fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend module
2014-04-08 20:38:33 -04:00
bunnei
de0a034a84
fixed project includes to use new directory structure
2014-04-08 20:15:08 -04:00
bunnei
63e46abdb8
got rid of 'src' folders in each sub-project
2014-04-08 19:25:03 -04:00