Lioncash
0ecc6e2f04
dyncom: Use ARMul_State as an object
Gets rid of C-like parameter passing.
11 years ago
Lioncash
03213f893e
dyncom: Remove unnecessary initialization code.
Targeting ARM version variants was only a thing on armemu.
The reset routine also does basically the same thing as NewState.
11 years ago
Lioncash
3257d797e1
dyncom: Remove unnecessary abort-related cruft
Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
11 years ago
Lioncash
dfb424b6d1
dyncom: Rename armdefs.h to armstate.h
11 years ago
Lioncash
0191c26521
dyncom: Move helper functions to their own header
11 years ago
Lioncash
6278937a28
dyncom: Get rid of armemu.h
11 years ago
Subv
115ad8e16a
fixup! Set the TLS address in the scheduler
11 years ago
Subv
000876858d
Core/Memory: Give every emulated thread it's own TLS area.
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
11 years ago
Lioncash
ae0c38a333
Remove unnecessary dyncom header files
11 years ago
Yuri Kunde Schlesner
e1fbac3ca1
Common: Remove common.h
11 years ago
bunnei
bab5abaf46
Dyncom: Move cream cache to ARMul_State.
11 years ago
Lioncash
8b2b620a5e
dyncom: Remove more unused/unnecessary code
Gets rid of a sizeable amount of stuff in armdefs.
11 years ago
Lioncash
c3ffe8f9c3
arm_interface: Support retrieval/storage to CP15 registers
11 years ago
Lioncash
8cf81643a9
arm_interface: Get rid of GetTicks.
Removes a TODO.
11 years ago
Lioncash
b7fac494cd
dyncom: Switch the app and system cores into the correct mode at initialization
11 years ago
Lioncash
c3211c9c80
dyncom: Clean up the constructor
Some function calls aren't necessary and would be handled by regular initialization routines.
11 years ago
Lioncash
e3f5c6366c
arm: Remove ARMul_EmulateInit
This was only used for armemu, which has since been removed. Removed components related to this as well.
11 years ago
Lioncash
c94c41f95a
arm: Get rid of some magic constants. Specify proper ARM mode.
Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
11 years ago
Kevin Hartman
5fcbfc06eb
Scheduler refactor Pt. 1
* Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid
for a thread at any given point in the system.
* Removes dead code from thread.cpp.
* Moves the implementation of resetting a ThreadContext to the corresponding core's implementation.
Other changes:
* Fixed comments in arm interfaces.
* Updated comments in thread.cpp
* Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp.
* Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
11 years ago
Lioncash
3f00dd9117
arm: Clean up ARMul_State
Remove unnecessary/unused struct variables.
11 years ago
Lioncash
83bc1a3120
arm: Get rid of armcpu.h and skyeye_types.h
11 years ago
Yuri Kunde Schlesner
7b3452c730
Move ThreadContext to core/core.h and deal with the fallout
11 years ago
Subv
fc842963c8
DynCom: Add a comment to GetTicks.
11 years ago
Subv
620d77b7e3
Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
11 years ago
Subv
9bf82beb4c
CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work.
CoreTiming: Added a new logging class Core_Timing.
11 years ago
bunnei
4783133bbd
ARM: Add a mechanism for faking CPU time elapsed during HLE.
- Also a few cleanups.
11 years ago
purpasmart96
ebfd831ccb
License change
11 years ago
Emmanuel Gil Peyrot
f5d38649c7
Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated
11 years ago
bunnei
b8e6f52419
ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable).
- Fixes single stepping in debugger.
11 years ago
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.
11 years ago
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
11 years ago
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.
11 years ago
bunnei
b5e6524594
ARM: Reorganized file structure to move shared SkyEye code to a more common area.
Removed s_ prefix
11 years ago
bunnei
3ade84cb7b
Threading: Fix thread starting to execute first instruction correctly.
11 years ago
bunnei
304999dfeb
Threading: Fix thread starting to execute first instruction correctly.
11 years ago
bunnei
77fc029a00
ARM: Synchronize Citra's SkyEye core with 3dmoo's.
12 years ago
bunnei
6cdad8390c
arm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually executing one more instruction than expected
12 years ago
bunnei
9ece9da50d
arm: fixed bug in how thread context switch occurs with SkyEye
12 years ago
bunnei
e8a17ee6fd
arm: added option to prepare CPU core (while mid-instruction) for thread reschedule
12 years ago
bunnei
481d936d34
arm_interpreter: fixed load context to currently resume a thread
12 years ago
bunnei
0012802456
ARM_Interpreter/ARM_Interface: Fixed member variable naming to be consistent with style guide
12 years ago
bunnei
49dc2ce8ac
ARM_Interface: added SaveContext and LoadContext functions for HLE thread switching
12 years ago
bunnei
265c770a9d
updated how we call ARM core to make things much faster
12 years ago
bunnei
68408ed9b9
fixed include path
12 years ago
bunnei
ce4d271a53
added option to set CPSR register to arm_interface
12 years ago
bunnei
95e5436f41
cleaned up arm_interface, added a setter to set registers for use with HLE return values
12 years ago
bunnei
d0674cc98b
fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend module
12 years ago
bunnei
63e46abdb8
got rid of 'src' folders in each sub-project
12 years ago
bunnei
31abc42d3d
added initial support for hw.cpp module
12 years ago
bunnei
69223d007e
- added an interface layer for ARM cores
- cleaned up core.cpp a bit
12 years ago