Commit graph

310 commits

Author SHA1 Message Date
Tony Wasserka 93e32bce72 Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
2015-03-07 15:30:40 +01:00
Lioncash 4b89cf9e43 vfp: Get rid of warnings 2015-03-03 19:13:01 -05:00
Yuri Kunde Schlesner cd1fbfcf1b Add profiling infrastructure and widget 2015-03-01 21:47:13 -03:00
bunnei d362eb2669 Merge pull request #620 from lioncash/bkpt
arm_disasm: Show conditional code for BKPT instructions.
2015-02-27 22:53:33 -05:00
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).
2015-02-27 21:59:30 -05:00
Lioncash 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
Lioncash 8812d2fbdb arm: The CP15 Main ID register is not writeable 2015-02-26 09:28:31 -05:00
Lioncash 1bb400be1b arm: Remove unnecessary booleans
We don't care about any of these.
2015-02-25 10:55:50 -05:00
Kevin Hartman 05c098a9e7 Cleaned up unaligned access. 2015-02-21 17:25:31 -08:00
bunnei 8e731b129d Merge pull request #582 from lioncash/warnings
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 23:57:54 -05:00
bunnei 60f9cd6a4a Merge pull request #579 from lioncash/bkpt
dyncom: Support conditional BKPT instructions
2015-02-17 23:54:01 -05:00
Lioncash 4f910bb1a1 vfpinstr: Fix trivial signed/unsigned mismatch warnings 2015-02-17 18:53:50 -05:00
Lioncash a7120662e6 dyncom: Support conditional BKPT instructions 2015-02-17 01:37:22 -05:00
bunnei 2b2b343ce0 Merge pull request #574 from lioncash/warn
vfpdouble: Use %p for printing pointer addresses.
2015-02-16 09:45:43 -05:00
Lioncash 012d1e32ad dyncom: Actually set the destination register for USAD8/USADA8.
Idiotville: Population: 1 - Inhabitant name: Lioncash
2015-02-16 01:03:01 -05:00
Lioncash f0c4bd629c vfpdouble: Use %p for printing pointer addresses. 2015-02-15 17:11:02 -05:00
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.
2015-02-15 00:35:50 -05:00
Lioncash 0c6434c379 core: Apply static to local functions 2015-02-13 10:48:32 -05:00
Lioncash 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
Lioncash b7fac494cd dyncom: Switch the app and system cores into the correct mode at initialization 2015-02-12 21:54:28 -05:00
Lioncash 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
Lioncash df9e0c0f81 dyncom: Remove warning for SXTAH
This is tested to work correctly.
2015-02-12 20:11:20 -05:00
Lioncash 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
Lioncash f48b0100a6 armdefs: Remove unnecessary extern C 2015-02-12 08:29:57 -05:00
Lioncash 49a22acd02 arm: Remove ARM26 support.
This will never be used. 32-bit is the norm.
2015-02-11 12:23:21 -05:00
bunnei 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
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.
2015-02-11 10:49:55 -05:00
Lioncash 93cd199633 arm: Change some more constants into enums 2015-02-11 10:14:20 -05:00
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.
2015-02-10 18:30:31 -08:00
bunnei 5b735bdeea Merge pull request #556 from lioncash/clean
arm: Remove TRUE/FALSE defines
2015-02-10 18:28:30 -05:00
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.
2015-02-10 13:09:41 -05:00
Lioncash 8d2fb3bb2b arm_dyncom_thumb: Make lookup tables static
These don't need to be recreated all the time.
2015-02-10 10:42:09 -05:00
bunnei 67db6aa4ce Merge pull request #553 from lioncash/denorm
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 10:09:45 -05:00
Lioncash 3eccc66abf dyncom: Add more regs to MCR/MRC
Adds the registers that were left out of some coprocessor ranges.
2015-02-10 09:34:42 -05:00
Lioncash a86d5e2752 vfp: Normalize accumulator for multiply accumulate instructions 2015-02-10 08:16:26 -05:00
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.
2015-02-09 21:47:12 -08:00
Lioncash 53fa04f326 vfpdouble: Fix the FTOUI NaN sign setting
This was fixed for vfpsingle, but not vfpdouble
2015-02-09 17:18:29 -05:00
Lioncash a734e9fdca Throw more unused/unnecessary VFP code out 2015-02-09 11:54:39 -05:00
Lioncash ca7babe062 vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff 2015-02-09 09:53:17 -05:00
Lioncash d832c48864 vfp_helper: Normalize tabs to spaces 2015-02-09 09:32:56 -05:00
Lioncash 1ecd75ea1a vfp_helper: Remove unnecessary extern C blocks 2015-02-06 14:52:29 -05:00
Lioncash 3e576219c4 vfp: Move FPSID, FPEXC, and FPSCR values over to enums.
Also got rid of duplicate definitions of some of these values.
2015-02-06 14:52:05 -05:00
bunnei 7f900ac68e Merge pull request #537 from lioncash/vfp
vfp: Fix VCVT
2015-02-04 14:58:36 -05:00
bunnei 4d36a6a255 Merge pull request #536 from lioncash/dead
vfp: Throw out unused code
2015-02-04 14:57:00 -05:00
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.
2015-02-04 14:06:10 -05:00
Lioncash 7ecedfb970 vfp: Throw out unused code 2015-02-04 13:11:03 -05:00
Lioncash 3a5a39c6aa dyncom: Remove more unnecessary code 2015-02-03 14:05:53 -05:00
Lioncash 676daef3c7 core: Fix some warnings on OSX 2015-02-03 08:14:42 -05:00
bunnei c8628f5d56 Merge pull request #525 from lioncash/armwarn
vfp: Get rid of some compile warnings
2015-02-01 00:28:50 -05:00
Lioncash 8c944bd1f0 vfp: Get rid of some compile warnings 2015-01-31 22:14:00 -05:00