c3ffe8f9c3
arm_interface: Support retrieval/storage to CP15 registers
2015-04-06 12:57:49 -04:00
b7b8b67620
Move CP15 enum definitions into their own enum.
...
Also gets rid of preprocessor mumbo-jumbo
2015-04-06 12:48:35 -04:00
23dd2ca8a6
dyncom: Properly return the value of the user RO thread register
2015-04-06 09:26:04 -04:00
e628ed4810
dyncom: Set CP15 reset values on initialization
2015-04-06 09:16:42 -04:00
bb7dac022e
dyncom: Suppress uninitialized variable warnings
...
The switch cases will always be hit, but this makes compilers stop complaining.
2015-04-05 23:49:06 -04:00
490df716f3
dyncom: Move CP15 register writing into its own function.
...
Also implements writing to the rest of the ARM11 MPCore CP15 register set.
2015-04-02 00:20:52 -04:00
5e5954c63b
dyncom: Move CP15 register reading into its own function.
...
Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
2015-04-02 00:19:11 -04:00
de6eba0288
dyncom: Migrate InAPrivilegedMode to armsupp
...
It's a generic helper function, so it should be here anyway.
2015-03-26 09:22:02 -04:00
b3d4a10e29
Merge pull request #674 from lioncash/sys-instrs
...
dyncom: Implement RFE and SRS.
2015-03-24 23:21:44 -04:00
a80d93685a
dyncom: Implement SRS
2015-03-24 12:44:31 -04:00
cde671795c
dyncom: Implement RFE
2015-03-24 11:34:48 -04:00
2df10d2284
dyncom: Remove unused/unnecessary macros and macro constants
2015-03-24 09:55:56 -04:00
f23f2a9a42
armmmu: Remove unnecessary enum values
...
We don't need to care about XScale or Intel specific ARM stuff.
2015-03-20 19:35:32 -04:00
1981aa3d7e
Merge pull request #659 from lioncash/setend
...
Implement SETEND.
2015-03-19 21:37:43 -04:00
9fdb311d6e
dyncom: Make Load/Store instructions support big endian
2015-03-17 15:13:32 -04:00
8cf81643a9
arm_interface: Get rid of GetTicks.
...
Removes a TODO.
2015-03-16 12:18:37 -04:00
f280806214
dyncom: Implement SETEND
2015-03-14 23:08:36 -04:00
e34ba68e1f
dyncom: Minor cleanup
...
Assemblers will exit with an error when trying to assemble instructions with disallowed registers.
2015-03-10 08:13:58 -04:00
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.
2015-03-08 22:03:11 -04:00
36dab56c31
dyncom: General cleanup of STM
2015-03-08 22:03:06 -04:00
e37425b380
dyncom: Increment addr when accessing LR in LDM
2015-03-08 21:46:57 -04:00
93e32bce72
Merge pull request #538 from yuriks/perf-stat
...
Add profiling infrastructure and widget
2015-03-07 15:30:40 +01:00
4b89cf9e43
vfp: Get rid of warnings
2015-03-03 19:13:01 -05:00
cd1fbfcf1b
Add profiling infrastructure and widget
2015-03-01 21:47:13 -03:00
d362eb2669
Merge pull request #620 from lioncash/bkpt
...
arm_disasm: Show conditional code for BKPT instructions.
2015-02-27 22:53:33 -05:00
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).
2015-02-27 21:59:30 -05:00
1a70782cda
arm_disasm: Remove unused variable
...
Also declared an array as static, as it's only used in this translation unit.
2015-02-27 21:31:36 -05:00
8812d2fbdb
arm: The CP15 Main ID register is not writeable
2015-02-26 09:28:31 -05:00
1bb400be1b
arm: Remove unnecessary booleans
...
We don't care about any of these.
2015-02-25 10:55:50 -05:00
05c098a9e7
Cleaned up unaligned access.
2015-02-21 17:25:31 -08:00
8e731b129d
Merge pull request #582 from lioncash/warnings
...
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 23:57:54 -05:00
60f9cd6a4a
Merge pull request #579 from lioncash/bkpt
...
dyncom: Support conditional BKPT instructions
2015-02-17 23:54:01 -05:00
4f910bb1a1
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 18:53:50 -05:00
a7120662e6
dyncom: Support conditional BKPT instructions
2015-02-17 01:37:22 -05:00
2b2b343ce0
Merge pull request #574 from lioncash/warn
...
vfpdouble: Use %p for printing pointer addresses.
2015-02-16 09:45:43 -05:00
012d1e32ad
dyncom: Actually set the destination register for USAD8/USADA8.
...
Idiotville: Population: 1 - Inhabitant name: Lioncash
2015-02-16 01:03:01 -05:00
f0c4bd629c
vfpdouble: Use %p for printing pointer addresses.
2015-02-15 17:11:02 -05:00
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.
2015-02-15 00:35:50 -05:00
0c6434c379
core: Apply static to local functions
2015-02-13 10:48:32 -05:00
a75e1ff6e6
arm: General cleanup
...
- Remove several typedefs for ARMul_State.
- Remove unused functions
- Remove unused/unnecessary headers
- Removed unused enums, etc.
2015-02-13 09:11:12 -05:00
b7fac494cd
dyncom: Switch the app and system cores into the correct mode at initialization
2015-02-12 21:54:28 -05:00
c3211c9c80
dyncom: Clean up the constructor
...
Some function calls aren't necessary and would be handled by regular initialization routines.
2015-02-12 21:50:51 -05:00
df9e0c0f81
dyncom: Remove warning for SXTAH
...
This is tested to work correctly.
2015-02-12 20:11:20 -05:00
e3f5c6366c
arm: Remove ARMul_EmulateInit
...
This was only used for armemu, which has since been removed. Removed components related to this as well.
2015-02-12 11:30:28 -05:00
f48b0100a6
armdefs: Remove unnecessary extern C
2015-02-12 08:29:57 -05:00
49a22acd02
arm: Remove ARM26 support.
...
This will never be used. 32-bit is the norm.
2015-02-11 12:23:21 -05:00
c51b23b052
Merge pull request #559 from lioncash/clean
...
arm: Some cleanup. Also fixed the initial ARM mode that is emulated.
2015-02-11 12:02:35 -05:00
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.
2015-02-11 10:49:55 -05:00
93cd199633
arm: Change some more constants into enums
2015-02-11 10:14:20 -05:00
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.
2015-02-10 18:30:31 -08:00