Commit Graph

1828 Commits

Author SHA1 Message Date
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
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
bunnei
67db6aa4ce Merge pull request #553 from lioncash/denorm
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 10:09:45 -05:00
bunnei
695beb8dcf Merge pull request #554 from lioncash/cp15
dyncom: Add more regs to MCR/MRC
2015-02-10 10:09:20 -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
Tony Wasserka
eb83ac48aa Merge pull request #543 from Alegend45/master
Add more blend equations from 3dbrew
2015-02-10 13:30:29 +01:00
bunnei
dab0b5cefb Merge pull request #528 from kevinhartman/scheduling-logic
Scheduler refactor Pt. 1
2015-02-10 00:53:06 -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
bunnei
848795f383 Merge pull request #551 from bunnei/mutex-fixes
Mutex/synch fixes
2015-02-09 22:17:20 -05:00
bunnei
1b0bf00cbc Mutex: Locks should be recursive. 2015-02-09 22:06:09 -05:00
bunnei
caa58acc84 WaitSynch: Always reschedule (verified behavior on hw). 2015-02-09 22:05:39 -05:00
Darius Goad
536958fb29 Add more blend equations from 3dbrew 2015-02-09 20:41:06 -06:00
bunnei
837439e7d5 Merge pull request #550 from lioncash/ftoui
vfpdouble: Fix the FTOUI NaN sign setting
2015-02-09 21:01:07 -05: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
bunnei
7dfdbe22de Merge pull request #549 from lioncash/tossed
Throw more unused/unnecessary VFP code out
2015-02-09 13:14:52 -05:00
Lioncash
a734e9fdca Throw more unused/unnecessary VFP code out 2015-02-09 11:54:39 -05:00
bunnei
7cc24562b4 Merge pull request #548 from lioncash/nits
Cleanup related to vfp_helper.
2015-02-09 11:20:46 -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
Tony Wasserka
4154560bd5 Merge pull request #545 from yuriks/patch-1
Appveyor: Do x64 builds
2015-02-08 16:29:31 +01:00
Yuri Kunde Schlesner
6638bf3b9b Appveyor: Adjust clone depth settings
The submodule update was doing a full clone. Also increase clone depth a
bit, since it can apparently cause issues checking out the source if
there are too many concurrent PRs trying to build (causing the commit
for the build to not be the top one on the repository anymore).
2015-02-08 13:00:05 -02:00
Yuri Kunde Schlesner
689d80e077 Appveyor: Do x64 builds 2015-02-08 12:57:35 -02:00
bunnei
126c8257b4 Merge pull request #542 from chinhodado/patch-1
Fix a wrong file name in a comment
2015-02-07 22:26:09 -05:00
chinhodado
34cce345a7 Fix a wrong file name in a comment 2015-02-07 00:37:06 -05:00
bunnei
c4e636681e Merge pull request #541 from lioncash/nits
Small VFP cleanups.
2015-02-06 15:29:47 -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
Tony Wasserka
1576a318f2 Merge pull request #535 from bunnei/color-modifiers
Implement color/alpha modifiers
2015-02-05 16:07:37 +01:00
bunnei
1eb591d6fd Rasterizer: Implement the other color and alpha modifiers. 2015-02-04 22:15:51 -05:00
bunnei
8c93a28fed VideoCore: Added same-component swizzlers to math utility functions. 2015-02-04 22:15:44 -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
Tony Wasserka
a45175ee0d Merge pull request #534 from neobrain/disassembler-improvements
Disassembler improvements
2015-02-03 22:12:17 +01:00
Tony Wasserka
5a90420c0b citra-qt: Fix horrible scrolling responsiveness in disassembler by giving the uniformRowHeight hint. 2015-02-03 21:11:50 +01:00
Tony Wasserka
79713d500b citra-qt: Fix a crash when double-clicking a disassembler list item. 2015-02-03 21:11:49 +01:00
bunnei
c8103127d7 Merge pull request #533 from lioncash/unused
dyncom: Remove more unnecessary code
2015-02-03 15:02:10 -05:00
Lioncash
3a5a39c6aa dyncom: Remove more unnecessary code 2015-02-03 14:05:53 -05:00
bunnei
a9b3f29b90 Merge pull request #483 from yuriks/cmake-fix
CMake: Inform the user when architecture auto-detection fails
2015-02-03 12:42:46 -05:00
bunnei
d64c836369 Merge pull request #532 from lioncash/warn
core: Fix some warnings on OSX
2015-02-03 12:40:16 -05:00
Lioncash
676daef3c7 core: Fix some warnings on OSX 2015-02-03 08:14:42 -05:00
bunnei
7f730ed158 Merge pull request #523 from yuriks/kernel-lifetime5
Kernel Lifetime Reform Pt. 5: The Reckoning
2015-02-02 13:04:04 -05:00
Yuri Kunde Schlesner
88a4a808c6 Kernel: Stop creating useless Handles during object creation
They're finally unnecessary, and will stop cluttering the application's
handle table.
2015-02-02 15:37:09 -02:00
Yuri Kunde Schlesner
52f58e64ef Kernel: Make WaitObjects share ownership of Threads waiting on them
During normal operation, a thread waiting on an WaitObject and the
object hold mutual references to each other for the duration of the
wait.

If a process is forcefully terminated (The CTR kernel has a SVC to do
this, TerminateProcess, though no equivalent exists for threads.) its
threads would also be stopped and destroyed, leaving dangling pointers
in the WaitObjects.

The solution is to simply have the Thread remove itself from WaitObjects
when it is stopped. The vector of Threads in WaitObject has also been
changed to hold SharedPtrs, just in case. (Better to have a reference
cycle than a crash.)
2015-02-02 15:37:08 -02:00
Yuri Kunde Schlesner
7725256f64 Explicitly instantiate constructors/destructors for Kernel objects
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
2015-02-02 15:37:07 -02:00
Yuri Kunde Schlesner
12232e0b08 Update boost external 2015-02-02 15:37:06 -02:00
Yuri Kunde Schlesner
4e84df8be3 Mutex: Replace g_mutex_held_locks with a set inside Thread 2015-02-02 15:37:06 -02:00