Lioncash
490df716f3
dyncom: Move CP15 register writing into its own function.
Also implements writing to the rest of the ARM11 MPCore CP15 register set.
11 years ago
Lioncash
5e5954c63b
dyncom: Move CP15 register reading into its own function.
Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
11 years ago
Lioncash
de6eba0288
dyncom: Migrate InAPrivilegedMode to armsupp
It's a generic helper function, so it should be here anyway.
11 years ago
Lioncash
a80d93685a
dyncom: Implement SRS
11 years ago
Lioncash
cde671795c
dyncom: Implement RFE
11 years ago
Lioncash
2df10d2284
dyncom: Remove unused/unnecessary macros and macro constants
11 years ago
Lioncash
f23f2a9a42
armmmu: Remove unnecessary enum values
We don't need to care about XScale or Intel specific ARM stuff.
11 years ago
Lioncash
9fdb311d6e
dyncom: Make Load/Store instructions support big endian
11 years ago
Lioncash
8cf81643a9
arm_interface: Get rid of GetTicks.
Removes a TODO.
11 years ago
Lioncash
f280806214
dyncom: Implement SETEND
11 years ago
Lioncash
e34ba68e1f
dyncom: Minor cleanup
Assemblers will exit with an error when trying to assemble instructions with disallowed registers.
11 years ago
Lioncash
386dbab5ea
dyncom: Fix an indexing bug in STM
Previously it would write the contents of register 13 for the case where the link register (r14) is supposed to be written.
11 years ago
Lioncash
36dab56c31
dyncom: General cleanup of STM
11 years ago
Lioncash
e37425b380
dyncom: Increment addr when accessing LR in LDM
11 years ago
Lioncash
4b89cf9e43
vfp: Get rid of warnings
11 years ago
Yuri Kunde Schlesner
cd1fbfcf1b
Add profiling infrastructure and widget
11 years ago
Lioncash
9ed3488925
arm_disasm: Show conditional code for BKPT instructions.
Changed cond_to_str to take a uint32, since unsigned numbers are only ever passed to it, and this can be a source of warnings for some compilers (also indexing an array without bounds checking a signed number is kind of iffy).
11 years ago
Lioncash
1a70782cda
arm_disasm: Remove unused variable
Also declared an array as static, as it's only used in this translation unit.
11 years ago
Lioncash
8812d2fbdb
arm: The CP15 Main ID register is not writeable
11 years ago
Lioncash
1bb400be1b
arm: Remove unnecessary booleans
We don't care about any of these.
11 years ago
Kevin Hartman
05c098a9e7
Cleaned up unaligned access.
11 years ago
Lioncash
4f910bb1a1
vfpinstr: Fix trivial signed/unsigned mismatch warnings
11 years ago
Lioncash
a7120662e6
dyncom: Support conditional BKPT instructions
11 years ago
Lioncash
012d1e32ad
dyncom: Actually set the destination register for USAD8/USADA8.
Idiotville: Population: 1 - Inhabitant name: Lioncash
11 years ago
Lioncash
f0c4bd629c
vfpdouble: Use %p for printing pointer addresses.
11 years ago
Lioncash
473afa4530
arm: Set the A bit on reset.
This enum value is ORed against in ARMul_Reset (and used to refer to all interrupt bits in the CPSR). So simply updating this is enough.
11 years ago
Lioncash
0c6434c379
core: Apply static to local functions
11 years ago
Lioncash
a75e1ff6e6
arm: General cleanup
- Remove several typedefs for ARMul_State.
- Remove unused functions
- Remove unused/unnecessary headers
- Removed unused enums, etc.
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
df9e0c0f81
dyncom: Remove warning for SXTAH
This is tested to work correctly.
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
f48b0100a6
armdefs: Remove unnecessary extern C
11 years ago
Lioncash
49a22acd02
arm: Remove ARM26 support.
This will never be used. 32-bit is the norm.
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
Lioncash
93cd199633
arm: Change some more constants into enums
11 years ago
archshift
ef24e72b26
Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)
Also removed some GEKKO cruft.
11 years ago
Lioncash
088fab743f
arm: Remove TRUE/FALSE defines
- Removed the Debug parameter from ARMul_State since it isn't used.
- Changed ARMul_CoProInit to a void function. It always returned true.
11 years ago
Lioncash
8d2fb3bb2b
arm_dyncom_thumb: Make lookup tables static
These don't need to be recreated all the time.
11 years ago
Lioncash
3eccc66abf
dyncom: Add more regs to MCR/MRC
Adds the registers that were left out of some coprocessor ranges.
11 years ago
Lioncash
a86d5e2752
vfp: Normalize accumulator for multiply accumulate instructions
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
53fa04f326
vfpdouble: Fix the FTOUI NaN sign setting
This was fixed for vfpsingle, but not vfpdouble
11 years ago
Lioncash
a734e9fdca
Throw more unused/unnecessary VFP code out
11 years ago
Lioncash
ca7babe062
vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff
11 years ago
Lioncash
d832c48864
vfp_helper: Normalize tabs to spaces
11 years ago
Lioncash
1ecd75ea1a
vfp_helper: Remove unnecessary extern C blocks
11 years ago
Lioncash
3e576219c4
vfp: Move FPSID, FPEXC, and FPSCR values over to enums.
Also got rid of duplicate definitions of some of these values.
11 years ago
Lioncash
82e8f25fe7
vfp: Fix VCVT
These variants exclusively read from the single precision regs and write to double-precision registers
Fixes issues where converted values would be way off from what they should be due to the results being stored in the wrong registers.
11 years ago
Lioncash
7ecedfb970
vfp: Throw out unused code
11 years ago