Commit graph

22323 commits

Author SHA1 Message Date
archshift 228843c43e Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance. 2015-01-10 14:32:10 -08:00
bunnei 083072de56 Merge pull request #458 from yuriks/cmake-debug
CMake: Consistently set _DEBUG and NDEBUG in all platforms
2015-01-10 16:04:56 -05:00
Subv 115a4bfc9e citra-qt: Add explicit casts to prevent some warnings. 2015-01-10 15:55:52 -05:00
Yuri Kunde Schlesner 57503df97f CMake: Consistently set _DEBUG and NDEBUG in all platforms 2015-01-10 18:42:24 -02:00
Subv 1b01938767 citra-qt: Fixed some Qt errors on initialization 2015-01-10 15:35:26 -05:00
bunnei 5a4b361f60 Merge pull request #455 from yuriks/handle-reform3
Kernel Lifetime Reform Pt. 3
2015-01-10 15:19:21 -05:00
bunnei e213f91373 Fix Windows build 2015-01-10 12:32:28 -05:00
bunnei e7d2118858 Merge pull request #342 from uppfinnarn/master
Build improvements
2015-01-10 02:03:07 -05:00
Yuri Kunde Schlesner 8ad41775cc Kernel: Start using boost::intrusive_ptr for lifetime management 2015-01-09 19:43:52 -02:00
Yuri Kunde Schlesner d751de7341 Kernel: Don't re-assign object's handle when duplicating one 2015-01-09 19:43:51 -02:00
bunnei d0ed01bc7f Merge pull request #454 from chinhodado/patch-1
Cleanup: Remove redundant /Oi flag
2015-01-09 14:23:24 -05:00
bunnei 6ae12424df Merge pull request #444 from yuriks/handle-reform2
Kernel Lifetime Reform Pt. 2
2015-01-09 12:59:35 -05:00
bunnei 86e07124ad Merge pull request #436 from kevinhartman/system-core
Warn if a new thread is intended to be run on the system CPU core
2015-01-09 11:14:35 -05:00
chinhodado f689e97380 Cleanup: Remove redundant /Oi flag
`/Oi` is included in `/Ox` already
2015-01-09 10:59:01 -05:00
bunnei e5cf344155 Merge pull request #453 from yuriks/vs-parallel
CMake: Enable VS parallel builds for a good reduction in compile times
2015-01-09 10:15:43 -05:00
Johannes Ekberg b027f7fe15 Looks like that might be needed on OSX after all 2015-01-09 15:50:47 +01:00
Johannes Ekberg d7ad14ae20 Use -pthread where and only where needed
Passing -pthread to GCC as a flag makes it both link to libpthread, and make C standard library routines reentrant. This makes the additional explicit links unnecessary.

Additionally, on OSX, this is the default behavior, and clang will print a message about it being unused if it's present there.
2015-01-09 15:50:46 +01:00
Johannes Ekberg 1351819810 Link Cocoa, IOKit and CoreVideo on OSX
These are implicitly linked by Xcode, but with this, you can also build it with any other generator, which does not have this behavior.

CoreFoundation is included as a part of Cocoa (which is an umbrella framework), and Cocoa is generally recommended to link against, rather than its individual components (CoreFoundation, Foundation, libobjc, ...).
2015-01-09 15:50:46 +01:00
Johannes Ekberg 7d7ab70279 Generic PLATFORM_LIBRARIES var
This both reduces redundancy in add_executable definitions, and makes it easier to link additional libraries. In particular, extra libraries are needed on OSX - see next commit.
2015-01-09 15:50:46 +01:00
Yuri Kunde Schlesner f983d955f9 CMake: Enable VS parallel builds for a good reduction in compile times
This enables the /MP compiler flag, which parallelizes builds of by
distributing compilation of individual object files across workes
processes, instead of being limited to per-project parallelism.

Reduces the time for a full compile from 72 s to 45 s on my machine.
2015-01-09 12:42:35 -02:00
Yuri Kunde Schlesner 78ea76e12f Thread: Fix nullptr access in a logging function 2015-01-09 04:02:28 -02:00
Yuri Kunde Schlesner 7f1557fbbd Thread: Rename thread_queue => thread_list 2015-01-09 04:02:17 -02:00
Yuri Kunde Schlesner 9bf8462b96 Thread: Reduce use of Handles and move some funcs to inside the class. 2015-01-09 04:02:15 -02:00
Yuri Kunde Schlesner ba72208cd4 Kernel: Move Thread's definition to the header file 2015-01-09 03:51:55 -02:00
Yuri Kunde Schlesner 7b3452c730 Move ThreadContext to core/core.h and deal with the fallout 2015-01-09 03:51:55 -02:00
bunnei d46f650036 Merge pull request #255 from Subv/cbranch_3
Implemented timers
2015-01-08 22:38:33 -05:00
bunnei 97cfdd16e6 Merge pull request #451 from Subv/wut
Core: Fixed a crash and removed some unused variables.
2015-01-08 22:20:42 -05:00
Subv 40c1439c34 Core: Fixed a crash and removed some unused variables.
ARM_Disasm only has static methods, so there's no need to have an instance of it.
2015-01-08 21:49:41 -05:00
Subv 07044651ef SVC: Implemented the Timer service calls. 2015-01-08 21:22:14 -05:00
bunnei 0d0d6ef31a Merge pull request #450 from Subv/ticks_fix
Timing: Use CoreTiming::GetTicks to keep track of ticks.
2015-01-08 20:01:19 -05:00
Subv fc842963c8 DynCom: Add a comment to GetTicks. 2015-01-08 19:46:00 -05:00
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
2015-01-08 19:39:14 -05:00
bunnei cf1bbe8705 Merge pull request #443 from Subv/sleep_thread
SVC: Fixed SleepThread
2015-01-08 18:45:35 -05:00
Subv dfc440785a SVC: Fixed SleepThread.
It will now properly wait the specified number of nanoseconds and then wake up the thread.
2015-01-08 18:39:12 -05:00
bunnei 2432f317e4 Merge pull request #446 from lioncash/umaal
dyncom: Fix UMAAL
2015-01-08 11:22:20 -05:00
Lioncash 1cef6e92d5 dyncom: Fix UMAAL
These need to be done as a 64-bit operation.
2015-01-08 11:09:21 -05:00
bunnei 72915423c3 Merge pull request #441 from Kingcom/CallStack
Add check for valid address to call stack
2015-01-07 21:00:46 -05:00
bunnei 91d96840ea Merge pull request #439 from Subv/idle_thread_m
Threads: Use a dummy idle thread when no other are ready.
2015-01-07 20:45:05 -05:00
Subv 60a373a786 Threads: Use a dummy idle thread when no other are ready.
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
2015-01-07 20:31:31 -05:00
bunnei b659cac2dc Merge pull request #404 from bunnei/more-frame-synch-fixes
GPU: Toggle active framebuffer each frame
2015-01-07 18:13:48 -05:00
bunnei f7a3f45f1e GSP: Toggle active framebuffer each frame 2015-01-07 18:06:00 -05:00
bunnei e6864a1f41 Merge pull request #431 from yuriks/thread-queue-cleanup
Common: Clean up ThreadQueueList
2015-01-07 17:58:31 -05:00
Kevin Hartman 63be6aaadd Warn if a new thread is intended to be run on the system CPU core until we implement correct scheduling for such a thread. 2015-01-07 14:14:48 -08:00
bunnei 4c583732f2 Merge pull request #442 from lioncash/smul
dyncom: Fix SMULWB/SMULWT
2015-01-07 16:49:30 -05:00
Lioncash df5e0f9f28 dyncom: Fix SMULWB/SMULWT
Wasn't doing proper sign-extension
2015-01-07 16:41:08 -05:00
Kingcom 693f6c54e5 citra-qt: Add check for valid address to call stack 2015-01-07 21:39:40 +01:00
Yuri Kunde Schlesner 122c2bb324 Common: Clean up ThreadQueueList
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.

Also clean the rest of the code to follow our code style.
2015-01-07 18:38:25 -02:00
bunnei 3eca33c6a4 Merge pull request #425 from Subv/coretiming
Ported the CoreTiming namespace from PPSSPP
2015-01-07 15:30:46 -05:00
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.
2015-01-07 15:08:35 -05:00
bunnei 43ba29f3bf Merge pull request #440 from yuriks/lifetime-fix
Fix double-free in Service manager during shutdown
2015-01-07 14:57:36 -05:00