Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | common: Replace common_sizes into user-literals | Wunkolo | 2021-06-24 | 2 | -4/+9 |
| | | | | | | | | | | | | | Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals. | ||||
* | Update dynarmic and add new unsafe CPU option. | Fernando Sahmkow | 2021-06-20 | 1 | -0/+3 |
| | |||||
* | General: Add settings for fastmem and disabling adress space check. | FernandoS27 | 2021-06-11 | 2 | -2/+11 |
| | |||||
* | core: Make use of fastmem | Markus Wick | 2021-06-11 | 2 | -0/+5 |
| | |||||
* | Merge pull request #6385 from degasus/save_memory_access | bunnei | 2021-05-31 | 2 | -29/+31 |
|\ | | | | | core/memory: Check our memory fallbacks for out-of-bound behavior. | ||||
| * | core/arm_interface: Improve the performance of memory fallbacks. | Markus Wick | 2021-05-29 | 2 | -29/+31 |
| | | | | | | | | | | We just create one memory subsystem. This is a constant all the time. So there is no need to call the non-inlined parent.Memory() helper on every callback. | ||||
* | | externals: Update dynarmic. | Markus Wick | 2021-05-29 | 6 | -11/+11 |
|/ | | | | The new version supports fastmem on a64. | ||||
* | core/arm_interface: Call SVC after end of dynarmic block. | Markus Wick | 2021-05-27 | 5 | -17/+42 |
| | | | | | | So we can modify all of dynarmic states within SVC without ExceptionalExit. Especially as the ExceptionalExit hack is dropped on upstream dynarmic. | ||||
* | core/arm: Drop ChangeProcessorID. | Markus Wick | 2021-05-26 | 5 | -12/+0 |
| | | | | | | This code was used to switch the CPU ID on thread switches. However since "hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.", the CPU ID is not a constant. This has been dead code since this rewrite, and dropped in dynarmic as well. So there is no need to keep it. | ||||
* | Merge pull request #6321 from lat9nq/per-game-cpu | bunnei | 2021-05-21 | 2 | -10/+10 |
|\ | | | | | configuration: Add CPU tab to game properties and slight per-game settings rework | ||||
| * | general: Make CPU accuracy and related a Settings::Setting | lat9nq | 2021-05-16 | 2 | -10/+10 |
| | | | | | | | | | | Required to make CPU accuracy and unsafe settings available to use as a per-game setting. | ||||
* | | core: Make variable shadowing a compile-time error | Lioncash | 2021-05-16 | 5 | -6/+6 |
|/ | | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely. | ||||
* | hle: kernel: Rename Process to KProcess. | bunnei | 2021-05-06 | 1 | -1/+1 |
| | |||||
* | service: Resolve cases of member field shadowing | Lioncash | 2021-05-04 | 4 | -16/+16 |
| | | | | | Now all that remains is for kernel code to be 'shadow-free' and then -Wshadow can be turned into an error. | ||||
* | core: Resolve misc cases of variable shadowing | Lioncash | 2021-05-03 | 1 | -6/+5 |
| | | | | | | | | | Resolves shadowing warnings that aren't in a particularly large subsection of core. Brings us closer to turning -Wshadow into an error. All that remains now is for cases in the kernel (left untouched for now since a big change by bunnei is pending), and a few left over in the service code (will be tackled next). | ||||
* | common: Move settings to common from core. | bunnei | 2021-04-15 | 2 | -2/+2 |
| | | | | - Removes a dependency on core and input_common from common. | ||||
* | arm_dynarmic: Increase size of code cache | MerryMage | 2021-04-02 | 2 | -0/+8 |
| | |||||
* | arm_dynarmic: Always have a 'valid' jit instance | MerryMage | 2021-03-24 | 4 | -53/+26 |
| | |||||
* | core: arm_dynarmic: Ensure JIT state is saved/restored on page table changes. | bunnei | 2021-03-21 | 2 | -0/+10 |
| | | | | - We re-create the JIT here without preserving any state. | ||||
* | arm_dynarmic_32: Print out CPSR.T on exception | MerryMage | 2021-02-01 | 2 | -2/+7 |
| | |||||
* | arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext. | bunnei | 2021-01-29 | 2 | -0/+12 |
| | |||||
* | core: arm: Remove unnecessary JIT checks. | bunnei | 2021-01-29 | 2 | -24/+0 |
| | |||||
* | arm: arm_dynarmic: Skip calls when JIT is invalid. | bunnei | 2021-01-29 | 2 | -0/+24 |
| | | | | - This can happen if called from an idle or suspension thread. | ||||
* | core: arm: arm_interface: Fix shadowing errors. | bunnei | 2021-01-11 | 1 | -3/+4 |
| | |||||
* | core: Silence unhandled enum in switch warnings | ReinUsesLisp | 2021-01-09 | 1 | -8/+1 |
| | |||||
* | dynarmic: Add Unsafe_InaccurateNaN optimization | MerryMage | 2021-01-02 | 2 | -0/+6 |
| | |||||
* | core/memory: Read and write page table atomically | ReinUsesLisp | 2020-12-30 | 2 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax] | ||||
* | hle: kernel: Rewrite scheduler implementation based on Mesopshere. | bunnei | 2020-12-06 | 1 | -1/+1 |
| | |||||
* | hle: kernel: physical_core: Clear exclusive state after each run. | bunnei | 2020-12-06 | 2 | -0/+6 |
| | | | | - This is closer to pre-multicore behavior, and works a bit better. | ||||
* | core: arm: Implement InvalidateCacheRange for CPU cache invalidation. | bunnei | 2020-11-29 | 5 | -6/+29 |
| | |||||
* | hle: kernel: multicore: Replace n-JITs impl. with 4 JITs. | bunnei | 2020-11-29 | 5 | -0/+13 |
| | |||||
* | core: Eliminate remaining usages of the global system instance | Lioncash | 2020-11-27 | 1 | -11/+0 |
| | | | | | | Removes all remaining usages of the global system instance. After this, migration can begin to migrate to being constructed and managed entirely by the various frontends. | ||||
* | cpu_interrupt_handler: Mark move contructor/assignment as deleted | Lioncash | 2020-11-08 | 1 | -2/+2 |
| | | | | | | | | The interrupt handler contains a std::atomic_bool, which isn't copyable or movable, so the special move member functions will always be deleted, despite being defaulted. This can resolve warnings on clang and GCC. | ||||
* | Merge pull request #4888 from lioncash/unicorn-remove | bunnei | 2020-11-07 | 5 | -381/+9 |
|\ | | | | | core: Remove usage of unicorn | ||||
| * | core: Remove usage of unicorn | Lioncash | 2020-11-04 | 5 | -381/+9 |
| | | | | | | | | | | | | | | | | Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python. | ||||
* | | General: Resolve a few missing initializer warnings | Lioncash | 2020-10-30 | 1 | -2/+10 |
|/ | | | | Resolves a few -Wmissing-initializer warnings. | ||||
* | Revert "core: Fix clang build" | bunnei | 2020-10-21 | 9 | -69/+53 |
| | |||||
* | core: Fix clang build | Lioncash | 2020-10-18 | 9 | -53/+69 |
| | | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795 | ||||
* | General: Make use of std::nullopt where applicable | Lioncash | 2020-09-22 | 1 | -3/+3 |
| | | | | | | | | Allows some implementations to avoid completely zeroing out the internal buffer of the optional, and instead only set the validity byte within the structure. This also makes it consistent how we return empty optionals. | ||||
* | arm_dynarmic_cp15: Initialize member variables | Lioncash | 2020-09-17 | 1 | -2/+2 |
| | | | | | Ensures that the member variables are always initialized to a deterministic value on creation. | ||||
* | cpu_interrupt_handler: Misc style changes | ReinUsesLisp | 2020-08-26 | 2 | -5/+3 |
| | |||||
* | cpu_interrupt_handler: Make is_interrupted an atomic | ReinUsesLisp | 2020-08-26 | 2 | -2/+3 |
| | | | | Fixes a race condition detected from tsan | ||||
* | dynarmic: Add unsafe optimizations | MerryMage | 2020-08-16 | 2 | -2/+24 |
| | |||||
* | configure_cpu: Show/Hide debugging options | MerryMage | 2020-07-11 | 2 | -46/+50 |
| | |||||
* | configuration: Add settings to enable/disable specific CPU optimizations | MerryMage | 2020-07-11 | 2 | -10/+50 |
| | |||||
* | cpu_interrupt_handler: Remove #pragma once from .cpp file | MerryMage | 2020-07-07 | 1 | -2/+0 |
| | |||||
* | Core/Common: Address Feedback. | Fernando Sahmkow | 2020-06-28 | 8 | -10/+12 |
| | |||||
* | SVC: Implement 32-bits wrappers and update Dynarmic. | Fernando Sahmkow | 2020-06-27 | 2 | -4/+9 |
| | |||||
* | ARM: Update Dynarmic and Setup A32 according to latest interface. | Fernando Sahmkow | 2020-06-27 | 7 | -93/+166 |
| | |||||
* | ArmDynarmic32: Setup CNTPCT correctly | Fernando Sahmkow | 2020-06-27 | 1 | -1/+1 |
| | |||||
* | ARMDynarmicInterface: Correct GCC Build Errors. | Fernando Sahmkow | 2020-06-27 | 2 | -6/+6 |
| | |||||
* | Clang Format. | Fernando Sahmkow | 2020-06-27 | 2 | -4/+4 |
| | |||||
* | ARMInterface/Externals: Update dynarmic and fit to latest version. | Fernando Sahmkow | 2020-06-27 | 1 | -7/+7 |
| | |||||
* | ARMInterface: Correct rebase errors. | Fernando Sahmkow | 2020-06-27 | 3 | -5/+5 |
| | |||||
* | Dynarmic Interface: don't clear cache if JIT has not been created. | Fernando Sahmkow | 2020-06-27 | 2 | -0/+6 |
| | |||||
* | General: Cleanup legacy code. | Fernando Sahmkow | 2020-06-27 | 2 | -2/+0 |
| | |||||
* | SingleCore: Use Cycle Timing instead of Host Timing. | Fernando Sahmkow | 2020-06-27 | 7 | -34/+62 |
| | |||||
* | General: Move ARM_Interface into Threads. | Fernando Sahmkow | 2020-06-27 | 7 | -0/+17 |
| | |||||
* | Core: Refactor ARM Interface. | Fernando Sahmkow | 2020-06-27 | 7 | -18/+26 |
| | |||||
* | X64 Clock: Reduce accuracy to be less or equal to guest accuracy. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+3 |
| | |||||
* | ARM/WaitTree: Better track the CallStack for each thread. | Fernando Sahmkow | 2020-06-27 | 2 | -0/+60 |
| | |||||
* | SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface. | Fernando Sahmkow | 2020-06-27 | 2 | -4/+19 |
| | |||||
* | ARM: Addapt to new Exclusive Monitor Interface. | Fernando Sahmkow | 2020-06-27 | 3 | -22/+20 |
| | |||||
* | General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running. | Fernando Sahmkow | 2020-06-27 | 2 | -8/+1 |
| | |||||
* | ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes. | Fernando Sahmkow | 2020-06-27 | 3 | -15/+63 |
| | |||||
* | Scheduler: Remove arm_interface lock and a few corrections. | Fernando Sahmkow | 2020-06-27 | 1 | -10/+0 |
| | |||||
* | Core: Correct rebase. | Fernando Sahmkow | 2020-06-27 | 1 | -12/+6 |
| | |||||
* | General: Add better safety for JIT use. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+10 |
| | |||||
* | General: Recover Prometheus project from harddrive failure | Fernando Sahmkow | 2020-06-27 | 9 | -29/+103 |
| | | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system. | ||||
* | arm_dynarmic_64: Log the instruction when an exception is raised | Morph | 2020-06-22 | 1 | -2/+2 |
| | |||||
* | arm_dynarmic_32: Log under Core_ARM instead of HW_GPU | Morph | 2020-06-22 | 1 | -1/+1 |
| | |||||
* | arm_dynarmic_32: Fix implicit conversion error in SetTPIDR_EL0 | ReinUsesLisp | 2020-06-18 | 1 | -1/+1 |
| | | | | On MSVC builds we treat conversion warnings as errors. | ||||
* | arm_dynarmic_cp15: Implement CNTPCT | MerryMage | 2020-06-17 | 1 | -0/+13 |
| | |||||
* | arm_dynarmic_cp15: Update CP15 | MerryMage | 2020-06-17 | 4 | -142/+73 |
| | |||||
* | arm_dynarmic_32: InterpreterFallback should never happen | MerryMage | 2020-06-17 | 1 | -2/+3 |
| | |||||
* | physical_core: Make use of std::make_unique instead of std::make_shared in ctor | Lioncash | 2020-04-24 | 3 | -7/+12 |
| | | | | | | | We can also allow unicorn to be constructed in 32-bit mode or 64-bit mode to satisfy the need for both interpreter instances. Allows this code to compile successfully of non x86-64 architectures. | ||||
* | Merge pull request #3724 from bunnei/fix-unicorn | bunnei | 2020-04-21 | 1 | -0/+11 |
|\ | | | | | core: arm_unicorn: Fix interpret fallback by temporarily mapping instruction page. | ||||
| * | core: arm_unicorn: Fix interpret fallback by temporarily mapping instruction page. | bunnei | 2020-04-19 | 1 | -0/+11 |
| | | |||||
* | | dynarmic: Add option to disable CPU JIT optimizations | MerryMage | 2020-04-20 | 1 | -2/+8 |
|/ | |||||
* | dynarmic: Enable strict alignment checks. | bunnei | 2020-04-17 | 1 | -1/+4 |
| | | | | - Also add a missing include. | ||||
* | core: memory: Move to Core::Memory namespace. | bunnei | 2020-04-17 | 4 | -5/+5 |
| | | | | - helpful to disambiguate Kernel::Memory namespace. | ||||
* | core: kernel: Move SVC to its own namesapce. | bunnei | 2020-04-17 | 3 | -3/+3 |
| | |||||
* | arm_interface: Ensure ThreadContext is zero'd out. | bunnei | 2020-04-17 | 1 | -16/+16 |
| | |||||
* | CMakeLists: Specify -Wextra on linux builds | Lioncash | 2020-04-16 | 1 | -2/+2 |
| | | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well. | ||||
* | core: Implement separate A32/A64 ARM interfaces. | bunnei | 2020-03-03 | 8 | -71/+367 |
| | |||||
* | core: dynarmic: Add CP15 from Citra. | bunnei | 2020-03-03 | 2 | -0/+232 |
| | |||||
* | ARM_Interface: Cache the JITs instead of deleting/recreating. | Fernando Sahmkow | 2020-02-26 | 2 | -4/+19 |
| | | | | | | This was a bug inherited from citra which was fixed by then at some time. This commit corrects such bug and ensures JITs are correctly recycled. | ||||
* | Core: Set all hardware emulation constants in a single file. | Fernando Sahmkow | 2020-02-12 | 1 | -1/+2 |
| | |||||
* | core/arm: Remove usage of global GetCurrentThread() | Lioncash | 2020-01-31 | 2 | -2/+4 |
| | | | | | Now both CPU backends go through their referenced system instance to obtain the current thread. | ||||
* | System: Address Feedback | Fernando Sahmkow | 2020-01-27 | 2 | -3/+5 |
| | |||||
* | Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager. | Fernando Sahmkow | 2020-01-26 | 1 | -1/+1 |
| | | | | This commit instends on better naming the new purpose of this classes. | ||||
* | ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce. | Fernando Sahmkow | 2020-01-26 | 2 | -1/+22 |
| | |||||
* | core/memory + arm/dynarmic: Use a global offset within our arm page table. | Markus Wick | 2020-01-01 | 1 | -0/+1 |
| | | | | | | This saves us two x64 instructions per load/store instruction. TODO: Clean up our memory code. We can use this optimization here as well. | ||||
* | core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class | Lioncash | 2019-11-27 | 2 | -15/+22 |
| | | | | | | | | | The Write functions are used slightly less than the Read functions, which make these a bit nicer to move over. The only adjustments we really need to make here are to Dynarmic's exclusive monitor instance. We need to keep a reference to the currently active memory instance to perform exclusive read/write operations. | ||||
* | core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class | Lioncash | 2019-11-27 | 2 | -18/+18 |
| | | | | | | | | | | | | | | With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code. | ||||
* | core: Prepare various classes for memory read/write migration | Lioncash | 2019-11-27 | 6 | -9/+14 |
| | | | | | | | | | | Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us. | ||||
* | arm_unicorn: Resolve sign conversion warnings | Lioncash | 2019-11-12 | 3 | -8/+10 |
| | | | | | While we're at it, this also resolves a type truncation warning as well, given the code was truncating from a 64-bit value to a 32-bit one. | ||||
* | Core_Timing: Address Feedback and suppress warnings. | Fernando Sahmkow | 2019-10-11 | 2 | -2/+2 |
| | |||||
* | Core Timing: Rework Core Timing to run all cores evenly. | Fernando Sahmkow | 2019-10-09 | 2 | -2/+2 |
| | |||||
* | Revert "arm_dynarmic: Check if jit is nullptr when preparing reschedule" | bunnei | 2019-09-30 | 1 | -3/+0 |
| | |||||
* | Merge pull request #2574 from DarkLordZach/dynarmic-jit-nullptr | bunnei | 2019-09-30 | 1 | -0/+3 |
|\ | | | | | arm_dynarmic: Check if jit is nullptr when preparing reschedule | ||||
| * | arm_dynarmic: Check if jit is nullptr when preparing reschedule | Zach Hilman | 2019-06-10 | 1 | -0/+3 |
| | | | | | | | | Prevents crash with multiprocess loading. | ||||
* | | core: Remove CurrentArmInterface() global accessor | Lioncash | 2019-07-13 | 1 | -3/+6 |
| | | | | | | | | | | Replaces the final usage of the global accessor function and removes it. Removes one more enabler of global state. | ||||
* | | core/arm: Remove obsolete Unicorn memory mapping | Lioncash | 2019-07-11 | 5 | -31/+0 |
| | | | | | | | | | | | | | | | | This was initially necessary when AArch64 JIT emulation was in its infancy and all memory-related instructions weren't implemented. Given the JIT now has all of these facilities implemented, we can remove these functions from the CPU interface. | ||||
* | | loader: Move NSO module tracking to AppLoader | Zach Hilman | 2019-05-26 | 1 | -8/+19 |
| | | | | | | Also cleanup of general stuff | ||||
* | | arm_interface: Expand backtrace generation | Zach Hilman | 2019-05-25 | 2 | -7/+194 |
|/ | | | | Returns results as a vector of entries for further processing. Logs addresses, offsets, and mangled name. | ||||
* | core/cpu_core_manager: Create threads separately from initialization. | Lioncash | 2019-04-12 | 4 | -20/+25 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our initialization process is a little wonky than one would expect when it comes to code flow. We initialize the CPU last, as opposed to hardware, where the CPU obviously needs to be first, otherwise nothing else would work, and we have code that adds checks to get around this. For example, in the page table setting code, we check to see if the system is turned on before we even notify the CPU instances of a page table switch. This results in dead code (at the moment), because the only time a page table switch will occur is when the system is *not* running, preventing the emulated CPU instances from being notified of a page table switch in a convenient manner (technically the code path could be taken, but we don't emulate the process creation svc handlers yet). This moves the threads creation into its own member function of the core manager and restores a little order (and predictability) to our initialization process. Previously, in the multi-threaded cases, we'd kick off several threads before even the main kernel process was created and ready to execute (gross!). Now the initialization process is like so: Initialization: 1. Timers 2. CPU 3. Kernel 4. Filesystem stuff (kind of gross, but can be amended trivially) 5. Applet stuff (ditto in terms of being kind of gross) 6. Main process (will be moved into the loading step in a following change) 7. Telemetry (this should be initialized last in the future). 8. Services (4 and 5 should ideally be alongside this). 9. GDB (gross. Uses namespace scope state. Needs to be refactored into a class or booted altogether). 10. Renderer 11. GPU (will also have its threads created in a separate step in a following change). Which... isn't *ideal* per-se, however getting rid of the wonky intertwining of CPU state initialization out of this mix gets rid of most of the footguns when it comes to our initialization process. | ||||
* | kernel/svc: Deglobalize the supervisor call handlers | Lioncash | 2019-04-08 | 4 | -39/+37 |
| | | | | | | | | | | | Adjusts the interface of the wrappers to take a system reference, which allows accessing a system instance without using the global accessors. This also allows getting rid of all global accessors within the supervisor call handling code. While this does make the wrappers themselves slightly more noisy, this will be further cleaned up in a follow-up. This eliminates the global system accessors in the current code while preserving the existing interface. | ||||
* | arm/arm_dynarmic: Remove unnecessary current_page_table member | Lioncash | 2019-04-07 | 2 | -8/+0 |
| | | | | | Given the page table will always be guaranteed to be that of whatever the current process is, we no longer need to keep this around. | ||||
* | Merge pull request #2240 from FearlessTobi/port-4651 | bunnei | 2019-04-06 | 2 | -3/+4 |
|\ | | | | | Port citra-emu/citra#4651: "gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB." | ||||
| * | gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB. (#4651) | Dimitri A | 2019-03-15 | 2 | -3/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbstub: fix IsMemoryBreak() returning false while connected to client As a result, the only existing codepath for a memory watchpoint hit to break into GDB (InterpeterMainLoop, GDB_BP_CHECK, ARMul_State::RecordBreak) is finally taken, which exposes incorrect logic* in both RecordBreak and ServeBreak. * a blank BreakpointAddress structure is passed, which sets r15 (PC) to NULL * gdbstub: DynCom: default-initialize two members/vars used in conditionals * gdbstub: DynCom: don't record memory watchpoint hits via RecordBreak() For now, instead check for GDBStub::IsMemoryBreak() in InterpreterMainLoop and ServeBreak. Fixes PC being set to a stale/unhit breakpoint address (often zero) when a memory watchpoint (rwatch, watch, awatch) is handled in ServeBreak() and generates a GDB trap. Reasons for removing a call to RecordBreak() for memory watchpoints: * The``breakpoint_data`` we pass is typed Execute or None. It describes the predicted next code breakpoint hit relative to PC; * GDBStub::IsMemoryBreak() returns true if a recent Read/Write operation hit a watchpoint. It doesn't specify which in return, nor does it trace it anywhere. Thus, the only data we could give RecordBreak() is a placeholder BreakpointAddress at offset NULL and type Access. I found the idea silly, compared to simply relying on GDBStub::IsMemoryBreak(). There is currently no measure in the code that remembers the addresses (and types) of any watchpoints that were hit by an instruction, in order to send them to GDB as "extended stop information." I'm considering an implementation for this. * gdbstub: Change an ASSERT to DEBUG_ASSERT I have never seen the (Reg[15] == last_bkpt.address) assert fail in practice, even after several weeks of (locally) developping various branches around GDB. Only leave it inside Debug builds. | ||||
* | | core: Add missing override specifiers where applicable | Lioncash | 2019-04-04 | 3 | -4/+3 |
| | | | | | | | | | | | | | | | | | | Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity. | ||||
* | | core: Move PageTable struct into Common. | bunnei | 2019-03-17 | 1 | -2/+2 |
| | | |||||
* | | Corrections, documenting and fixes. | Fernando Sahmkow | 2019-02-16 | 1 | -1/+1 |
| | | |||||
* | | Use u128 on Clock Cycles calculation. | Fernando Sahmkow | 2019-02-16 | 1 | -1/+1 |
| | | |||||
* | | Correct CNTPCT to use Clock Cycles instead of Cpu Cycles. | Fernando Sahmkow | 2019-02-16 | 1 | -2/+3 |
|/ | |||||
* | core_timing: Convert core timing into a class | Lioncash | 2019-02-16 | 4 | -10/+24 |
| | | | | | | | | | | | Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces. | ||||
* | core_timing: Rename CoreTiming namespace to Core::Timing | Lioncash | 2019-02-12 | 2 | -5/+5 |
| | | | | | | Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace. | ||||
* | arm_interface: Make include path relative for arm_interface.h | Lioncash | 2018-12-31 | 1 | -1/+1 |
| | | | | Makes it consistent with the rest of the includes. | ||||
* | arm_interface: Make LogBacktrace() a const member function | Lioncash | 2018-12-31 | 2 | -2/+2 |
| | | | | This function doesn't modify instance state, so it can be made const. | ||||
* | arm_interface: Mark variables as const where applicable in LogBacktrace() | Lioncash | 2018-12-31 | 1 | -3/+4 |
| | | | | | Two of these variables have fixed values, so we can make that immediately obvious from the get-go. | ||||
* | arm_interface: Remove unnecessary semicolon | Lioncash | 2018-12-31 | 1 | -1/+1 |
| | | | | | Namespaces don't require the use of a semicolon. Silences a -Wextra-semi warning. | ||||
* | Merge pull request #1847 from ogniK5377/backtrace-break | bunnei | 2018-12-30 | 3 | -0/+35 |
|\ | | | | | Print backtrace on svcBreak | ||||
| * | Moved log backtrace to arm_interface.cpp. Added printing of error code to fatal | David Marcec | 2018-12-29 | 2 | -17/+33 |
| | | |||||
| * | Moved backtrace to ArmInterface | David Marcec | 2018-12-19 | 5 | -36/+17 |
| | | |||||
| * | Moved backtrace to ArmInterface | David Marcec | 2018-12-03 | 5 | -0/+38 |
| | | | | | | | | Added to both dynarmic and unicorn | ||||
* | | arm_dynarmic: Set CNTFRQ value | MerryMage | 2018-12-18 | 1 | -0/+1 |
|/ | |||||
* | core: Make the exclusive monitor a unique_ptr instead of a shared_ptr | Lioncash | 2018-10-15 | 2 | -6/+5 |
| | | | | | | Like the barrier, this is owned entirely by the System and will always outlive the encompassing state, so shared ownership semantics aren't necessary here. | ||||
* | kernel/thread: Use a regular pointer for the owner/current process | Lioncash | 2018-10-10 | 1 | -1/+1 |
| | | | | | | | | | | | There's no real need to use a shared pointer in these cases, and only makes object management more fragile in terms of how easy it would be to introduce cycles. Instead, just do the simple thing of using a regular pointer. Much of this is just a hold-over from citra anyways. It also doesn't make sense from a behavioral point of view for a process' thread to prolong the lifetime of the process itself (the process is supposed to own the thread, not the other way around). | ||||
* | kernel/thread: Make all instance variables private | Lioncash | 2018-10-04 | 2 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | Many of the member variables of the thread class aren't even used outside of the class itself, so there's no need to make those variables public. This change follows in the steps of the previous changes that made other kernel types' members private. The main motivation behind this is that the Thread class will likely change in the future as emulation becomes more accurate, and letting random bits of the emulator access data members of the Thread class directly makes it a pain to shuffle around and/or modify internals. Having all data members public like this also makes it difficult to reason about certain bits of behavior without first verifying what parts of the core actually use them. Everything being public also generally follows the tendency for changes to be introduced in completely different translation units that would otherwise be better introduced as an addition to the Thread class' public interface. | ||||
* | kernel/process: Make data member variables private | Lioncash | 2018-09-30 | 1 | -2/+2 |
| | | | | | | | Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code. | ||||
* | arm_interface: Add missing fpsr/tpidr members to the ThreadContext struct | Lioncash | 2018-09-30 | 2 | -4/+14 |
| | | | | | | | | | Internally within the kernel, it also includes a member variable for the floating-point status register, and TPIDR, so we should do the same here to match it. While we're at it, also fix up the size of the struct and add a static assertion to ensure it always stays the correct size. | ||||
* | Merge pull request #1395 from lioncash/vm | bunnei | 2018-09-29 | 1 | -2/+3 |
|\ | | | | | process/vm_manager: Initial modifications to load NPDM metadata | ||||
| * | memory: Dehardcode the use of a 36-bit address space | Lioncash | 2018-09-25 | 1 | -2/+3 |
| | | | | | | | | | | Given games can also request a 32-bit or 39-bit address space, we shouldn't be hardcoding the address space range as 36-bit. | ||||
* | | FPCR register was uninitialized at start up | Philippe Babin | 2018-09-23 | 1 | -1/+1 |
|/ | |||||
* | arm_interface: Replace kernel vm_manager include with a forward declaration | Lioncash | 2018-09-21 | 3 | -1/+9 |
| | | | | | | Avoids an unnecessary inclusion and also uncovers three places where indirect inclusions were relied upon, which allows us to also resolve those. | ||||
* | arm_dynarmic: Halt when BRK encountered | MerryMage | 2018-09-20 | 1 | -0/+1 |
| | |||||
* | arm_dynarmic: Support BKPT instruction | MerryMage | 2018-09-19 | 1 | -0/+11 |
| | |||||
* | Merge pull request #1344 from lioncash/arm | bunnei | 2018-09-18 | 5 | -72/+59 |
|\ | | | | | arm_interface: Remove ARM11-isms from the CPU interface | ||||
| * | arm_interface: Remove ARM11-isms from the CPU interface | Lioncash | 2018-09-18 | 5 | -72/+59 |
| | | | | | | | | | | | | | | | | | | This modifies the CPU interface to more accurately match an AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods don't even make sense to keep around for this interface, as Adv Simd is used, rather than the VFP in the primary execution state. This is essentially a modernization change that should have occurred from the get-go. | ||||
* | | arm_dynarmic: Correct ExclusiveWrite128()'s operation | Lioncash | 2018-09-18 | 1 | -2/+2 |
|/ | | | | | | Previously the second half of the value being written would overwrite the first half. Thankfully this wasn't a bug that was being encountered, as the function is currently unused. | ||||
* | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 6 | -36/+37 |
| | |||||
* | Update microprofile scopes. | Markus Wick | 2018-09-04 | 2 | -2/+6 |
| | | | | | | Blame the subsystems which deserve the blame :) The updated list is not complete, just the ones I've spotted on random sampling the stack trace. | ||||
* | core/core: Replace includes with forward declarations where applicable | Lioncash | 2018-08-31 | 1 | -0/+1 |
| | | | | | | | | | | | The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers. | ||||
* | core: Namespace all code in the arm subdirectory under the Core namespace | Lioncash | 2018-08-25 | 7 | -2/+30 |
| | | | | Gets all of these types and interfaces out of the global namespace. | ||||
* | dynarmic: Update to 550d662 | MerryMage | 2018-08-16 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | 550d662 load_store_exclusive: Define s == t state to be Constraint_NONE 0b69381 A64/translate: Allow for unpredictable behaviour to be defined 6d236d4 system: Implement MRS CNTFRQ_EL0 6cbb6fb A32/testenv: Add missing headers 6729328 externals: Update xbyak to v5.67 1812bd2 Squashed 'externals/xbyak/' changes from 2794cde7..671fc805 9a95802 externals: Document subtrees 714a840 A64: Implement SQ{ADD, SUB}, and UQ{ADD, SUB}'s vector variants 8cab459 A64: Implement UQADD/UQSUB's scalar variants 18a8151 ir: Add opcodes for unsigned saturating add and subtract a5660ee x64/reg_alloc: Use type alias for array returned by GetArgumentInfo() 29489b5 ir/value: Use type alias CoprocessorInfo for std::array<u8, 8> e23ba26 status_register_access: Add support for bits 0 and 1 of mask to MSR 55190bd fuzz_with_unicorn: Split utility functions into fuzz_util 23b049d A32/translate/load_store: Correct detection of writeback 7ec9f15 A32/translate: Add TranslateSingleInstruction efeecb4 A32/ir_emitter: Bug fix: IREmitter::ExceptionRaised using incorrect opcode 08d1d19 A32/decoders: Split instruction list into include file 2d929cc tests: Refactor unicorn_emu to allow for A32 unicorn f672368 microinstruction: Improve assert messages 7ebff50 emit_x64_vector: EmitVectorNarrow16: AVX512 implementation edce230 emit_x64_vector: EmitVectorNarrow32: prefer pblendw to loading constant | ||||
* | arm_dynarmic: Remove IsExecuting check from PrepareReschedule | MerryMage | 2018-08-13 | 1 | -3/+1 |
| | | | | No longer required. HaltExecution is a no-op if it is not currently executing. | ||||
* | CPU/Timing: Use an approximated amortized amount of ticks when advancing timing. | Subv | 2018-08-13 | 1 | -1/+10 |
| | | | | | | | | We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast. This lets us bypass certain hangs in some games like Breath of the Wild. We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads). | ||||
* | GDBStub works with both Unicorn and Dynarmic now (#941) | Hedges | 2018-08-07 | 1 | -1/+1 |
| | | | | | | * GDBStub works with both Unicorn and Dynarmic now * Tidy up | ||||
* | Merge pull request #876 from lioncash/include | bunnei | 2018-08-01 | 1 | -1/+1 |
|\ | | | | | kernel: Remove unnecessary includes | ||||
| * | kernel: Remove unnecessary includes | Lioncash | 2018-07-31 | 1 | -1/+1 |
| | | | | | | | | | | Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included. | ||||
* | | arm_dynarmic: Make SetTlsAddress() prototype and definition consistent | Lioncash | 2018-07-31 | 1 | -1/+1 |
| | | | | | | | | Makes the definition use the same type aliases as in its prototype. | ||||
* | | arm_dynarmic: Remove unnecessary qualifying of ThreadContext | Lioncash | 2018-07-31 | 1 | -3/+3 |
| | | | | | | | | | | Given the ARM_Dynarmic class inherits from ARM_Interface, we don't need to qualify here. | ||||
* | | arm_dynarmic: Correct initializer list order | Lioncash | 2018-07-31 | 1 | -5/+3 |
|/ | | | | | | | | | Amends the initializer list to be in the same order that each variable would be initialized in. We also do this to ensure we don't use a bogus uninitialized instance of the exclusive monitor within MakeJit() We can also remove the jit member from the initializer list as this is initialized by PageTableChanged() | ||||
* | arm_dynarmic: Make MakeJit() a const member function | Lioncash | 2018-07-24 | 2 | -3/+3 |
| | | | | | This functions doesn't modify instance state, so it can be a made a const member function. | ||||
* | exclusive_monitor: Use consistent type alias for u64 | Lioncash | 2018-07-24 | 3 | -22/+18 |
| | | | | | Uses the same type aliases we use for virtual addresses, and converts one lingering usage of std::array<uint64_t, 2> to u128 for consistency. | ||||
* | Implement exclusive monitor | MerryMage | 2018-07-22 | 4 | -8/+119 |
| | |||||
* | Merge pull request #750 from lioncash/ctx | bunnei | 2018-07-21 | 3 | -9/+0 |
|\ | | | | | arm_interface: Remove unused tls_address member of ThreadContext | ||||
| * | arm_interface: Remove unused tls_address member of ThreadContext | Lioncash | 2018-07-21 | 3 | -9/+0 |
| | | | | | | | | | | Currently, the TLS address is set within the scheduler, making this member unused. | ||||
* | | CPU: Save and restore the TPIDR_EL0 system register on every context switch. | Subv | 2018-07-21 | 5 | -0/+26 |
|/ | | | | Note that there's currently a dynarmic bug preventing this register from being written. | ||||
* | scheduler: Clear exclusive state when switching contexts | MerryMage | 2018-07-16 | 5 | -0/+10 |
| | |||||
* | More improvements to GDBStub (#653) | Hedges | 2018-07-13 | 1 | -2/+2 |
| | | | | | | | | | | | * More improvements to GDBStub - Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS. - List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names. - Initial support for floating point registers. * Tidy up as requested in PR feedback * Tidy up as requested in PR feedback | ||||
* | Update clang format | James Rowe | 2018-07-03 | 1 | -1/+1 |
| | |||||
* | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 1 | -1/+1 |
| | |||||
* | GDB Stub Improvements (#508) | Hedges | 2018-06-06 | 2 | -1/+41 |
| | | | | | | | | | | * GDB Stub should work now. * Applied clang-format. * Replaced htonll with swap64. * Tidy up. | ||||
* | core: Implement multicore support. | bunnei | 2018-05-11 | 1 | -1/+1 |
| | |||||
* | general: Make formatting of logged hex values more straightforward | Lioncash | 2018-05-02 | 2 | -2/+2 |
| | | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on). | ||||
* | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2018-04-27 | 2 | -3/+3 |
| | |||||
* | core: Replace remaining old non-generic logger usages with fmt-capable equivalents | Lioncash | 2018-04-26 | 1 | -2/+2 |
| | | | | | | LOG_GENERIC usages will be amended in a follow-up to keep API changes separate from interface changes, as it will require removing a parameter from the relevant function in the VMManager class. | ||||
* | arm_dynarmic: Fix timing | MerryMage | 2018-03-24 | 1 | -7/+3 |
| | |||||
* | Clean Warnings (?) | N00byKing | 2018-03-19 | 1 | -1/+1 |
| | |||||
* | Merge pull request #193 from N00byKing/3184_2_robotic_boogaloo | bunnei | 2018-03-19 | 5 | -35/+31 |
|\ | | | | | Implement Pull #3184 from citra: core/arm: Improve timing accuracy before service calls in JIT (Rebased) | ||||
| * | Implements citra-emu/citra#3184 | N00byKing | 2018-02-25 | 5 | -35/+31 |
| | | |||||
* | | arm_interface: Support unmapping previously mapped memory. | bunnei | 2018-03-16 | 5 | -2/+15 |
| | | |||||
* | | core: Move process creation out of global state. | bunnei | 2018-03-14 | 1 | -1/+2 |
| | | |||||
* | | Merge pull request #212 from mailwl/stubs | bunnei | 2018-02-24 | 1 | -1/+2 |
|\ \ | | | | | | | Stub some functions | ||||
| * | | Stub am::SetScreenShotPermission, and bsd::StartMonitoring functions | mailwl | 2018-02-22 | 1 | -1/+2 |
| |/ | |||||
* | | dynarmic: Update to 6b4c6b0 | MerryMage | 2018-02-21 | 1 | -2/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6b4c6b0 impl: Update PC when raising exception 7a1313a A64: Implement FDIV (vector) b2d781d system: Raise exception for YIELD, WFE, WFI, SEV, SEVL b277bf5 Correct FPSR and FPCR 7673933 A64: Implement USHL 8d0e558 A64: Implement UCVTF (vector, integer), scalar variant da9a4f8 A64: Partially implement FCVTZU (scalar, fixed-point) and FCVTZS (scalar, fixed-point) 7479684 A64: Implement system register TPIDR_EL0 0fd75fd A64: Implement system registers FPCR and FPSR 31e370c A64: Implement system register CNTPCT_EL0 9a88fd3 A64: Implement system register CTR_EL0 1d16896 A64: Implement NEG (vector) 3184edf IR: Add IR instruction ZeroVector 31f8fbc emit_x64_floating_point: Add maybe_unused to preprocess parameter 567eb1a A64: Implement FMINNM (scalar) c6d8fa1 A64: Implement FMAXNM (scalar) 616056d constant_pool: Add frame parameter a3747cb A64: Implement ADDP (scalar) 5cd5d9f reg_alloc: Only exchange GPRs dd0452a A64: Implement DUP (element), scalar variant e5732ea emit_x64_floating_point: Correct FP{Max,Min}{32,64} implementations for -0/+0 40eb9c3 A64: Implement FMAX (scalar), FMIN (scalar) 7cef39b fuzz_with_unicorn: QEMU's implementation of FCVT is incorrect 826dce2 travis: Switch unicorn repository 9605f28 a64/config: Allow NaN emulation accuracy to be set e9435bc a64_emit_x64: Add conf to A64EmitContext 30b596d fuzz_with_unicorn: Explicitly test floating point instructions be292a8 A64: Implement FSQRT (scalar) 3c42d48 backend_x64: Accurately handle NaNs 4aefed0 fuzz_with_unicorn: Print AArch64 disassembly | ||||
* | | arm_dynarmic: LOG_INFO on unicorn fallback | MerryMage | 2018-02-21 | 1 | -0/+4 |
|/ | |||||
* | arm_dynarmic: Support direct page table access | MerryMage | 2018-02-12 | 1 | -6/+14 |
| | |||||
* | dynarmic: Update to 41ae12263 | MerryMage | 2018-02-09 | 2 | -31/+45 |
| | | | | Changes: Primarily implementing more A64 instructions | ||||
* | Fixes some cast warnings, partial port of citra #3064 (#106) | River City Ransomware | 2018-01-20 | 1 | -3/+3 |
| | | | | | | | | * Fixes some cast warnings, partially fixes citra #3064 * Converted casts to uint32_t to u32 * Ran clang-format | ||||
* | clang-format | MerryMage | 2018-01-16 | 1 | -1/+2 |
| | |||||
* | Build: Automagically handle unicorn | James Rowe | 2018-01-16 | 1 | -1/+1 |
| | | | | | | | On MSVC if unicorn isn't found, fallback to bundled unicorn On everything else, fallback to building unicorn in externals Also fixes loading unicorn in msvc | ||||
* | Build: Add unicorn as a submodule and build it if needed | James Rowe | 2018-01-16 | 1 | -1/+1 |
| | | | | | | | Adds a cmake custom target that will build unicorn on first compile and uses this in the build scripts as well. Updates Appveyor and Travis build scripts to work with the new unicorn build, and updates the paths to all of the different artifacts. | ||||
* | Update dynarmic to bc73004 | MerryMage | 2018-01-13 | 1 | -12/+17 |
| | | | | | | | | | | | | | | | | | | bc73004 a64_merge_interpret_blocks: Remove debug output 4e656ed tests/A64: Randomize PSTATE.<NZCV> fd9530b A64: Optimization: Merge interpret blocks 3c9eb04 testenv: Use format constants 324f3fc tests/A64: Unicorn interface fixes 98ecbe7 tests/A64: Fuzz against unicorn b1d38e7 tests/A64: Move TestEnvironment to own header 5218ad9 A64/data_processing_pcrel: bug: ADR{,P} instructions sign extend their immediate b1a8c39 A64/data_processing_addsub: bug: {ADD,SUB}S (extended register) instructions write to ZR when d = 31 64827fb a64_emit_x64: bug: A64CallSupervisor trampled callee-save registers 1bfa04d emit_x64: bug: OP m/r64, imm32 form instructions sign-extend their immediate on x64 edadeea A64 inferface: Use two argument static_assert 9ab1304 A64: Add ExceptionRaised IR instruction 6843eed Update readme 7438d07 A64/translate: Add TranslateSingleInstruction function | ||||
* | arm_unicorn: Log unmapped memory access address. | bunnei | 2018-01-13 | 1 | -1/+1 |
| | |||||
* | yuzu: Update license text to be consistent across project. | bunnei | 2018-01-13 | 4 | -4/+4 |
| | |||||
* | arm_dynarmic: Implement core | MerryMage | 2018-01-12 | 5 | -62/+161 |
| | |||||
* | arm_unicorn: Load/release unicorn DLL. | bunnei | 2018-01-04 | 1 | -0/+16 |
| | |||||
* | unicorn: Use for arm interface on Windows. | bunnei | 2018-01-04 | 2 | -0/+240 |
| | |||||
* | arm_dynarmic: More cleanup. | bunnei | 2018-01-04 | 1 | -6/+0 |
| | |||||
* | arm_dynarmic: Gut interface until dynarmic is ready for general use. | bunnei | 2018-01-04 | 2 | -142/+44 |
| | |||||
* | arm: Remove SkyEye/Dyncom code that is ARMv6-only. | bunnei | 2018-01-03 | 28 | -14492/+6 |
| | |||||
* | logging: Rename category "Core_ARM11" to "Core_ARM". | bunnei | 2017-10-23 | 7 | -86/+86 |
| | |||||
* | Merge remote-tracking branch 'upstream/master' into nx | bunnei | 2017-10-10 | 7 | -86/+80 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h | ||||
| * | Moved down_count to CoreTiming | Huw Pascoe | 2017-09-30 | 5 | -28/+2 |
| | | |||||
| * | ARM_Interface: Implement PageTableChanged | MerryMage | 2017-09-25 | 5 | -6/+34 |
| | | |||||
| * | Merge pull request #2842 from Subv/switchable_page_table | B3n30 | 2017-09-15 | 1 | -1/+3 |
| |\ | | | | | | | Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule | ||||
| | * | CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime. | Subv | 2017-09-15 | 1 | -1/+3 |
| | | | |||||
| * | | CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions. | Subv | 2017-08-21 | 1 | -1/+1 |
| | | | |||||
| * | | Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache. | Subv | 2017-08-21 | 2 | -4/+4 |
| | | | | | | | | | | | | Fixes a few warnings. | ||||
| * | | Dyncom: Fixed a conversion warning when decoding thumb instructions. | Subv | 2017-08-21 | 1 | -1/+1 |
| |/ | |||||
* | | arm_interface: Set TLS address for dynarmic core. | bunnei | 2017-09-30 | 5 | -0/+32 |
| | | |||||
* | | arm: Use 64-bit addressing in a bunch of places. | bunnei | 2017-09-30 | 5 | -74/+107 |
|/ | |||||
* | Merge pull request #2692 from Subv/vfp_ftz | Sebastian Valle | 2017-05-22 | 2 | -0/+26 |
|\ | | | | | Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled. | ||||
| * | fixup! Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled. | Subv | 2017-05-22 | 2 | -4/+0 |
| | | |||||
| * | Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled. | Subv | 2017-05-08 | 2 | -0/+30 |
| | | | | | | | | Inputs are still not flushed to 0 if they are denormals. | ||||
* | | Merge pull request #2694 from Subv/vfp_vsub_ftz | Merry | 2017-05-22 | 1 | -2/+12 |
|\ \ | | | | | | | Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd. | ||||
| * | | Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd. | Subv | 2017-05-14 | 1 | -2/+12 |
| |/ | | | | | | | | | | | | | | | | | Previously we were letting vadd flush the value to positive 0, but there are cases where this behavior is wrong, for example, vsub: -0 - +0 = -0 vadd: -0 + +0 = +0 Now we'll flush the value to +0 inside vsub, and then negate it. | ||||
* | | Merge pull request #2696 from Subv/vfp_revert | Yuri Kunde Schlesner | 2017-05-09 | 3 | -59/+30 |
|\ \ | | | | | | | Dyncom/VFP: Revert edf30d8 and fix the FPSCR getting invalid values. | ||||
| * | | Dyncom/VFP: Strip the VFP_NAN_FLAG sentinel value when setting vfp exceptions. | Subv | 2017-05-09 | 2 | -2/+2 |
| | | | |||||
| * | | Revert "Remove `exceptions` parameter from `normaliseround` VFP functions" | Subv | 2017-05-09 | 3 | -57/+28 |
| |/ | | | | | | | | | | | | | | | | | This reverts commit edf30d84cc0e8299d61c98f5bb40a6428d1576bc. Conflicts: src/core/arm/skyeye_common/vfp/vfp_helper.h src/core/arm/skyeye_common/vfp/vfpdouble.cpp src/core/arm/skyeye_common/vfp/vfpsingle.cpp | ||||
* | | Dyncom: Remove disassembler code | Yuri Kunde Schlesner | 2017-05-08 | 3 | -1587/+2 |
| | | | | | | | | | | | | Had licensing issue around it, in addition to several bugs. Closes #1632, #1280 | ||||
* | | Dyncom: Tweak types and log formatting | Yuri Kunde Schlesner | 2017-05-08 | 3 | -8/+10 |
| | | |||||
* | | Remove unused symbols code | Yuri Kunde Schlesner | 2017-05-08 | 2 | -44/+0 |
|/ | |||||
* | dyncom: Correct SXTAB16 and SXTB16 | MerryMage | 2017-02-18 | 1 | -4/+4 |
| | |||||
* | arm_dynarmic: Update memory interface | MerryMage | 2017-02-03 | 1 | -10/+10 |
| | |||||
* | arm_dynarmic: CP15 support | MerryMage | 2017-02-03 | 4 | -5/+128 |
| | |||||
* | Merge pull request #2366 from MerryMage/MemoryReadCode | bunnei | 2016-12-22 | 1 | -0/+1 |
|\ | | | | | arm_dynarmic: Provide MemoryReadCode callback | ||||
| * | arm_dynarmic: Provide MemoryReadCode callback | MerryMage | 2016-12-22 | 1 | -0/+1 |
| | | | | | | | | Change of interface in dynarmic 36082087ded632079b16d24137fdd0c450ce82ea | ||||
* | | ThreadContext: Move from "core" to "arm_interface". | bunnei | 2016-12-22 | 5 | -22/+21 |
|/ | |||||
* | gdbstub: Remove global variable from public interface | Lioncash | 2016-12-15 | 2 | -3/+3 |
| | | | | | | | | | Currently, this is only ever queried, so adding a function to check if the server is enabled is more sensible. If directly modifying this externally is ever desirable, it should be done by adding a function to the interface, rather than exposing implementation details directly. | ||||
* | core: Add missing #pragma once directives where applicable | Lioncash | 2016-12-15 | 1 | -0/+2 |
| | |||||
* | Core: Add a forgotten #include <cstring> for memcpy. | Emmanuel Gil Peyrot | 2016-12-11 | 1 | -0/+1 |
| | |||||
* | dynarmic: Add ticks based on ticks executed, not ticks requested | MerryMage | 2016-11-26 | 1 | -2/+2 |
| | |||||
* | Expose page table to dynarmic for optimized reads and writes to the JIT | James Rowe | 2016-11-25 | 1 | -0/+1 |
| | |||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 11 | -11/+11 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 15 | -40/+18 |
| | | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | ||||
* | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 2016-09-19 | 6 | -16/+15 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 22 | -6274/+5726 |
| | |||||
* | Dyncom: Disable clang-format on the decoding table. | Emmanuel Gil Peyrot | 2016-09-18 | 1 | -0/+3 |
| | |||||
* | arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg. | bunnei | 2016-09-15 | 1 | -5/+12 |
| | |||||
* | arm: ResetContext shouldn't be part of ARM_Interface. | bunnei | 2016-09-15 | 5 | -29/+0 |
| | |||||
* | arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword. | bunnei | 2016-09-15 | 2 | -2/+2 |
| | |||||
* | dyncom: Use VFP_FPSCR/VFP_FPEXC. | bunnei | 2016-09-15 | 1 | -4/+4 |
| | |||||
* | dynarmic: Implement ARM CPU interface. | bunnei | 2016-09-15 | 2 | -0/+227 |
| | |||||
* | ARM: add ClearInstructionCache function | wwylele | 2016-08-27 | 3 | -0/+11 |
| | |||||
* | dyncom: Read-after-write in SMLA | MerryMage | 2016-08-22 | 1 | -2/+4 |
| | | | | | In the case when RD === RN, RD was updated before AddOverflow was called to check for an overflow, resulting in an incorrect state of the Q flag. | ||||
* | Dyncom: Correct implementation of STM for R15 | MerryMage | 2016-08-14 | 1 | -3/+4 |
| | |||||
* | dyncom: Fix translation of thumb REVSH | MerryMage | 2016-07-28 | 1 | -4/+13 |
| | |||||
* | Make arm_dyncom_trans* into a fully fledged compilation unit | archshift | 2016-06-12 | 3 | -53/+71 |
| | |||||
* | arm_dyncom_interpreter: slightly change AllocBuffer to be intuitive | archshift | 2016-06-12 | 1 | -15/+15 |
| | |||||
* | arm_dyncom_interpreter: Add specialized GetAddressingOpLoadStoreT func | archshift | 2016-06-11 | 2 | -39/+19 |
| | | | | | | This allows us to get the addressing operation for STRT, LDRT, STRBT, and LDRBT. We do this so that translation functions don't need to see the addressing ops directly. | ||||
* | arm_dyncom_interpreter: rename operation functions to fit style guide | archshift | 2016-06-11 | 2 | -34/+34 |
| | |||||
* | arm_dyncom_interpreter: Rename anonymous enum to TransExtData | archshift | 2016-06-11 | 4 | -166/+164 |
| | |||||
* | arm_dyncom_interpreter.cpp: #include translation info from inc files | archshift | 2016-06-11 | 3 | -2648/+2652 |
| | |||||
* | Merge pull request #1568 from JayFoxRox/fix-printf | Mat M | 2016-05-27 | 3 | -26/+61 |
|\ | | | | | Fix ftoi and disable VFPv3 | ||||
| * | Fix ftoi behaviour | Jannik Vogel | 2016-05-16 | 2 | -22/+53 |
| | | |||||
| * | Respect fpscr in ftoiz | Jannik Vogel | 2016-05-16 | 2 | -4/+4 |
| | | |||||
| * | Disable VFP3 instructions | Jannik Vogel | 2016-05-16 | 1 | -0/+4 |
| | | |||||
* | | Remove `exceptions` parameter from `normaliseround` VFP functions | Jannik Vogel | 2016-05-18 | 3 | -28/+57 |
| | | |||||
* | | Fix exception propagation for VFP single precision | Jannik Vogel | 2016-05-18 | 2 | -33/+38 |
| | | |||||
* | | Fix exception propagation for VFP double precision | Jannik Vogel | 2016-05-18 | 2 | -34/+39 |
| | | |||||
* | | Fix read-after-write in SMUAD, SMLAD, SMUSD, SMLSD | Jannik Vogel | 2016-05-18 | 1 | -4/+8 |
| | | |||||
* | | Set fpscr for new threads | Jannik Vogel | 2016-05-17 | 1 | -0/+1 |
|/ | |||||
* | dyncom: Reset the context into user mode correctly | Lioncash | 2016-05-09 | 1 | -1/+1 |
| | | | | The other mode was system mode. | ||||
* | Common: Remove section measurement from profiler (#1731) | Yuri Kunde Schlesner | 2016-04-29 | 1 | -7/+0 |
| | | | | This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI. | ||||
* | Fix BLX LR opcode interpretation | mailwl | 2016-04-09 | 1 | -2/+3 |
| | |||||
* | Update cpsr (T)humb bit while creating thread | mailwl | 2016-04-08 | 1 | -1/+1 |
| | |||||
* | Fix thumb ADR instruction alignment | mailwl | 2016-04-06 | 1 | -6/+2 |
| | |||||
* | Merge pull request #1643 from MerryMage/make_unique | Mathew Maidment | 2016-04-06 | 1 | -3/+2 |
|\ | | | | | Common: Remove Common::make_unique, use std::make_unique | ||||
| * | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2016-04-05 | 1 | -3/+2 |
| | | |||||
* | | Merge pull request #1618 from MerryMage/one-step | Mathew Maidment | 2016-03-31 | 1 | -26/+57 |
|\ \ | | | | | | | Prevent cache overflow when single stepping | ||||
| * | | DynCom: Optimize single stepping | MerryMage | 2016-03-30 | 1 | -26/+57 |
| |/ | |||||
* / | armstate: Correct FIQ register banking | Lioncash | 2016-03-21 | 1 | -4/+3 |
|/ | | | | FIQ has seven banked registers (R8 to R14), not two. | ||||
* | ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode name | rob turner | 2016-01-19 | 1 | -9/+9 |
| | |||||
* | arm_dyncom_dec: Fix decoding of VMLS | Lioncash | 2015-12-30 | 2 | -206/+202 |
| | | | | | | Previously, all VMLS variants would misdecode as CDP (which isn't necessarily wrong in itself, however VMLS has it's own label of execution) | ||||
* | dyncom: Handle modifying the APSR via an MRC instruction | Lioncash | 2015-12-28 | 1 | -12/+9 |
| | |||||
* | dyncom: Remove PC dispatch from several instructions | Lioncash | 2015-12-21 | 1 | -94/+0 |
| | | | | These instructions aren't capable of using the PC as a destination | ||||
* | dyncom: Handle unprivileged load/store variants correctly | Lioncash | 2015-12-20 | 1 | -7/+33 |
| | | | | | | | LDRT/LDRBT/STRBT/STRT should simulate the load or store as if the host CPU is in user mode. STRT is also allowed to use the PC as an operand | ||||
* | dyncom: Remove static keyword from header functions | Lioncash | 2015-12-06 | 3 | -19/+19 |
| | |||||
* | arm_interface: Make GetNumInstructions const | Lioncash | 2015-12-06 | 1 | -1/+1 |
| | |||||
* | arm_interface: directly initialize class members | Lioncash | 2015-12-06 | 1 | -7/+2 |
| | |||||
* | dyncom: const correctness changes | Lioncash | 2015-12-06 | 3 | -7/+7 |
| | |||||
* | armstate: Zero out the registers on creation | Lioncash | 2015-11-29 | 1 | -11/+11 |
| | | | | | std::array isn't always guaranteed to explicitly zero out it's contents without an initializer list. | ||||
* | Merge pull request #1122 from polaris-/gdbstub | bunnei | 2015-11-12 | 3 | -9/+68 |
|\ | | | | | gdbstub implementation | ||||
| * | Remove unnecessary new lines, changed Deinit to Shutdown | polaris- | 2015-10-12 | 1 | -1/+0 |
| | | |||||
| * | Use BreakpointAddress struct instead of passing address directly | polaris- | 2015-10-04 | 1 | -3/+3 |
| | | |||||
| * | Implement gdbstub | polaris- | 2015-10-04 | 3 | -9/+69 |
| | | |||||
* | | CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls. | Emmanuel Gil Peyrot | 2015-10-09 | 3 | -45/+45 |
|/ | | | | The LOG_* function itself already appends one. | ||||
* | general: Silence some warnings when using clang | Lioncash | 2015-09-16 | 1 | -1/+0 |
| | |||||
* | General: Replace NULL and '0' usages with nullptr where applicable | Lioncash | 2015-09-11 | 3 | -30/+30 |
| | |||||
* | DynCom: Converted all 0xE condition code checks to ConditionCode::AL | archshift | 2015-09-06 | 2 | -132/+132 |
| | |||||
* | dyncom: Simplify some comparisons in CondPassed | Lioncash | 2015-08-26 | 1 | -4/+4 |
| | |||||
* | dyncom: Change return type of CondPassed to bool | Lioncash | 2015-08-26 | 1 | -57/+39 |
| | |||||
* | Integrate the MicroProfile profiling library | Yuri Kunde Schlesner | 2015-08-25 | 1 | -0/+7 |
| | | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view. | ||||
* | Merge pull request #1025 from yuriks/heap-management | Yuri Kunde Schlesner | 2015-08-22 | 2 | -2/+0 |
|\ | | | | | Kernel: Correct(er) handling of Heap and Linear Heap allocations | ||||
| * | Memory: Move address type conversion routines to memory.cpp/h | Yuri Kunde Schlesner | 2015-08-16 | 2 | -2/+0 |
| | | | | | | | | | | These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next. | ||||
* | | vfp: use std::swap where applicable | Lioncash | 2015-08-16 | 2 | -12/+6 |
|/ | |||||
* | Merge pull request #1027 from lioncash/debugger | bunnei | 2015-08-14 | 4 | -1/+49 |
|\ | | | | | debugger: Add the ability to view VFP register contents | ||||
| * | arm_interface: Implement interface for retrieving VFP registers | Lioncash | 2015-08-07 | 4 | -1/+49 |
| | | |||||
* | | ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types. | Emmanuel Gil Peyrot | 2015-08-11 | 4 | -305/+310 |
| | | |||||
* | | arm_disasm: ARMv6 mul/div and abs media instructions | aroulin | 2015-08-11 | 2 | -1/+119 |
| | | | | | | | | | | | | SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD, SMMLA, SMMUL, SMMLS USAD8, USADA8 | ||||
* | | arm_disasm: ARMv6 parallel add/sub media instructions | aroulin | 2015-08-11 | 2 | -0/+167 |
| | | | | | | | | {S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8} | ||||
* | | arm_disasm: ARMv6 reversal media instructions | aroulin | 2015-08-09 | 2 | -0/+26 |
| | | | | | | | | | | REV, REV16, REVSH Only their ARM encoding, Thumb encoding is still missing. | ||||
* | | arm_disasm: ARMv6 saturation media instructions | aroulin | 2015-08-09 | 2 | -2/+55 |
| | | | | | | | | SSAT, SSAT16, USAT, USAT16 | ||||
* | | arm_disasm: ARMv6 packing and sign-extend media instructions | aroulin | 2015-08-09 | 2 | -1/+181 |
| | | | | | | | | | | | | PKH, SEL SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH | ||||
* | | Merge pull request #1026 from lioncash/disasm | Lioncash | 2015-08-07 | 1 | -12/+4 |
|\ \ | |/ |/| | arm_disasm: Remove unnecessary code | ||||
| * | arm_disasm: Remove unnecessary code | Lioncash | 2015-08-07 | 1 | -12/+4 |
| | | | | | | | | This part of disassembly only determines the opcode, there's no need for offset calculation here. | ||||
* | | Disassembler: ARMv6K REX instructions | aroulin | 2015-08-06 | 2 | -6/+97 |
| | | |||||
* | | Disassembler: ARMv6K hint instructions | aroulin | 2015-08-06 | 2 | -0/+56 |
| | | |||||
* | | Merge pull request #1008 from lioncash/pc | bunnei | 2015-07-30 | 2 | -21/+40 |
|\ \ | | | | | | | dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM | ||||
| * | | dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM | Lioncash | 2015-07-29 | 2 | -21/+40 |
| |/ | |||||
* / | dyncom: Remove an unused variable | Lioncash | 2015-07-29 | 1 | -3/+0 |
|/ | | | | This was used prior to InterpreterTranslate existing. | ||||
* | dyncom: Handle left-operand PC correctly for data-processing ops | Lioncash | 2015-07-29 | 1 | -7/+33 |
| | | | | | | This is considered deprecated in the ARM manual (using PC as an operand), however, this is still able to be executed on the MPCore (which I'm quite sure would be rare to begin with). | ||||
* | dyncom: Remove an unnecessary typedef | Lioncash | 2015-07-28 | 2 | -7/+5 |
| | |||||
* | dyncom: Use enum class for instruction decoding results | Lioncash | 2015-07-28 | 5 | -41/+40 |
| | |||||
* | dyncom: Remove code duplication regarding thumb instructions | Lioncash | 2015-07-28 | 3 | -23/+12 |
| | |||||
* | dyncom: Migrate exclusive memory access control into armstate | Lioncash | 2015-07-28 | 2 | -50/+35 |
| | |||||
* | dyncom: Remove duplicated typedef and extern | Lioncash | 2015-07-28 | 1 | -4/+0 |
| | | | | These are already present in arm_dyncom_dec.h. | ||||
* | dyncom: Use std::array for register arrays | Lioncash | 2015-07-26 | 2 | -28/+29 |
| | |||||
* | dyncom: Use ARMul_State as an object | Lioncash | 2015-07-26 | 11 | -1102/+1022 |
| | | | | Gets rid of C-like parameter passing. | ||||
* | dyncom: Remove unnecessary initialization code. | Lioncash | 2015-07-26 | 4 | -59/+2 |
| | | | | | | Targeting ARM version variants was only a thing on armemu. The reset routine also does basically the same thing as NewState. | ||||
* | dyncom: Remove unnecessary abort-related cruft | Lioncash | 2015-07-26 | 2 | -48/+1 |
| | | | | Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary. | ||||
* | dyncom: Rename armdefs.h to armstate.h | Lioncash | 2015-07-26 | 13 | -31/+31 |
| | |||||
* | dyncom: Get rid of skyeye typedefs | Lioncash | 2015-07-26 | 7 | -61/+55 |
| | |||||
* | dyncom: Move helper functions to their own header | Lioncash | 2015-07-26 | 9 | -41/+56 |
| | |||||
* | dyncom: Move arminit.cpp and armsupp.cpp into skyeye_common | Lioncash | 2015-07-26 | 2 | -0/+0 |
| | |||||
* | armdefs: Remove unnecessary extern keywords | Lioncash | 2015-07-26 | 1 | -25/+25 |
| | |||||
* | dyncom: Pass SVC immediates directly. | Lioncash | 2015-07-21 | 1 | -1/+2 |
| | | | | Previously it would just re-read the already decoded instruction and extract the immediate value. | ||||
* | dyncom: Properly retrieve the PC value in BX if used. | Lioncash | 2015-07-20 | 1 | -3/+5 |
| | |||||
* | Dyncom: Support for a missing ARMv6 Thumb MOV encoding | Yuri Kunde Schlesner | 2015-07-18 | 1 | -10/+4 |
| | |||||
* | arm_dyncom_interpreter: Simplify assignment in SMLAW | Lioncash | 2015-07-17 | 1 | -1/+1 |
| | | | | Also a side-benefit of not having implementation-defined behavior. | ||||
* | Merge pull request #876 from linkmauve/include-cleanups | Yuri Kunde Schlesner | 2015-07-11 | 4 | -4/+12 |
|\ | | | | | Cleanup includes, mostly in common | ||||
| * | Core, VideoCore: Replace or fix exit() calls. | Emmanuel Gil Peyrot | 2015-06-28 | 2 | -4/+6 |
| | | |||||
| * | Core: Cleanup core includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+5 |
| | | |||||
| * | Common: Fix FileUtil includes, and everything relying on those. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+1 |
| | | |||||
* | | vfp: Change return type of VFPInit from unsigned int to void. | Lioncash | 2015-06-29 | 2 | -4/+2 |
| | | |||||
* | | vfp: Handle accesses to FPINST/FPINST2 system registers | Lioncash | 2015-06-29 | 4 | -42/+53 |
|/ | | | | Also has a side-benefit of correcting access to the FPEXC register. | ||||
* | vfp: Handle accesses to the VFP media feature registers | Lioncash | 2015-06-13 | 3 | -4/+8 |
| | | | | These are able to be accessed in any privilege mode. | ||||
* | vfp: Implement VMOVBCR/VMOVBRC | Lioncash | 2015-06-12 | 2 | -5/+8 |
| | |||||
* | arm_dyncom_thumb: Fix handling of writeback for thumb LDMIA | Lioncash | 2015-06-04 | 1 | -5/+19 |
| | |||||
* | arm_dyncom_thumb: Fix encoding of BKPT's immediate | Lioncash | 2015-06-01 | 1 | -1/+4 |
| | |||||
* | arm_dyncom_thumb: Implement CPS and SETEND | Lioncash | 2015-06-01 | 1 | -0/+13 |
| | |||||
* | arm_dyncom_thumb: Implement SXTH, SXTB, UXTH, and UXTB. | Lioncash | 2015-06-01 | 1 | -0/+11 |
| | |||||
* | arm_dyncom_thumb: Implement REV, REV16, and REVSH. | Lioncash | 2015-06-01 | 1 | -2/+12 |
| | |||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 6 | -24/+24 |
| | |||||
* | Merge pull request #826 from lioncash/tables | Yuri Kunde Schlesner | 2015-05-27 | 1 | -22/+11 |
|\ | | | | | arm_dyncom_thumb: Merge STR/LDR table subsets. | ||||
| * | arm_dyncom_thumb: Merge STR/LDR table subsets. | Lioncash | 2015-05-27 | 1 | -22/+11 |
| | | |||||
* | | arm_dyncom_interpreter: Remove unused variable | Lioncash | 2015-05-26 | 1 | -5/+1 |
| | | | | | | | | Thum decoding directly checks if the thumb bit is set instead of using a temporary. | ||||
* | | arm_dyncom_interpreter: Remove unused macro | Lioncash | 2015-05-25 | 1 | -1/+0 |
|/ | |||||
* | dyncom: Get rid of armemu.h | Lioncash | 2015-05-24 | 4 | -49/+29 |
| | |||||
* | dyncom: Remove unused cpu parameter from decode_thumb_instr | Lioncash | 2015-05-23 | 1 | -3/+2 |
| | |||||
* | dyncom: remove load_r15 from arm_inst | Lioncash | 2015-05-23 | 2 | -490/+331 |
| | | | | It's entirely unused. Also allows getting rid of more clunky macros. | ||||
* | dyncom: Remove unnecessary parameter for load/store operations | Lioncash | 2015-05-23 | 1 | -39/+39 |
| | |||||
* | VFP: Log as trace to get rid of spamming. | bunnei | 2015-05-23 | 1 | -23/+23 |
| | |||||
* | dyncom: Eliminate clang warnings | Lioncash | 2015-05-21 | 4 | -406/+404 |
| | | | | Gets rid of a whole load of missing brace initialization warnings. | ||||
* | Merge pull request #772 from lioncash/warn | bunnei | 2015-05-18 | 2 | -6/+6 |
|\ | | | | | core/video_core: Fix a few warnings when compiling on MSVC. | ||||
| * | vfp: Get rid of warnings | Lioncash | 2015-05-14 | 2 | -6/+6 |
| | | | | | | | | | | - Unary minus operator applied to unsigned type. - Unsafe use of bool. | ||||
* | | Merge pull request #774 from lioncash/decodings | Yuri Kunde Schlesner | 2015-05-15 | 2 | -33/+191 |
|\ \ | | | | | | | dyncom: Add ARMv6K NOP and hint instructions to the interpreter. | ||||
| * | | dyncom: Add ARMv6K NOP and hint instructions to the decoding table | Lioncash | 2015-05-14 | 2 | -12/+152 |
| | | | |||||
| * | | dyncom: Handle some MSR variants individually | Lioncash | 2015-05-14 | 2 | -24/+41 |
| | | | | | | | | | | | | This is necessary, as hint instructions will be recognized as MSR, which is pretty bad. | ||||
| * | | dyncom: Move exclusive load/stores above bbl and swi in the decoding table | Lioncash | 2015-05-14 | 2 | -14/+15 |
| |/ | |||||
* | | Merge pull request #770 from lioncash/dyncom_clean | bunnei | 2015-05-15 | 2 | -275/+260 |
|\ \ | | | | | | | dyncom: Minor cleanup. | ||||
| * | | dyncom: Remove duplicate enums/prototypes | Lioncash | 2015-05-14 | 1 | -7/+1 |
| | | | | | | | | | | | | These are already defined in arm_dyncom_interpreter_dec.cpp. | ||||
| * | | dyncom: Remove unnecessary defines | Lioncash | 2015-05-14 | 1 | -4/+4 |
| | | | | | | | | | | | | These can simply be const vars. | ||||
| * | | dyncom: Make translation-unit functions and variables static | Lioncash | 2015-05-14 | 1 | -66/+64 |
| | | | |||||
| * | | dyncom: Remove unnecessary typedefs | Lioncash | 2015-05-14 | 2 | -196/+197 |
| | | | |||||
| * | | dyncom: Remove unused structs | Lioncash | 2015-05-14 | 1 | -8/+0 |
| |/ | |||||
* / | Memmap: Re-organize memory function in two files | Yuri Kunde Schlesner | 2015-05-15 | 3 | -3/+2 |
|/ | | | | | | | memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory. | ||||
* | dyncom: Removed irrelevant log. | bunnei | 2015-05-14 | 1 | -2/+0 |
| | |||||
* | dyncom: Fix decoding of BKPT's immediate | Lioncash | 2015-05-13 | 1 | -1/+1 |
| | | | | A shift here is intended since the representation is imm12:imm4 | ||||
* | Merge pull request #752 from lioncash/flush | bunnei | 2015-05-12 | 3 | -84/+98 |
|\ | | | | | vfp: Handle flush-to-zero mode. | ||||
| * | vfp: Handle flush-to-zero mode. | Lioncash | 2015-05-11 | 3 | -84/+98 |
| | | |||||
* | | dyncom: Stub MCRR and MRRC | Lioncash | 2015-05-12 | 1 | -7/+68 |
|/ | | | | | There's no other coprocessor outside the VFP (which has its own VMOV variants) in which the MPCore can send/retrieve data from. Stubbed so citra won't crash and burn on the odd chance someone actually tries to use these. | ||||
* | Merge pull request #728 from lioncash/vars | Lioncash | 2015-05-08 | 1 | -19/+17 |
|\ | | | | | dyncom: Remove an unnecessary variable in the interpreter | ||||
| * | dyncom: Remove an unnecessary variable in the interpreter | Lioncash | 2015-05-08 | 1 | -19/+17 |
| | | | | | | | | All this was doing was needlessly aliasing a variable. | ||||
* | | Remove unnecessary dyncom header files | Lioncash | 2015-05-08 | 5 | -80/+2 |
|/ | |||||
* | Common: Remove common.h | Yuri Kunde Schlesner | 2015-05-07 | 3 | -2/+2 |
| | |||||
* | Clean-up includes | Yuri Kunde Schlesner | 2015-05-07 | 2 | -0/+4 |
| | |||||
* | HLE: Clean up SVC dispatch mechanism | Yuri Kunde Schlesner | 2015-05-06 | 1 | -2/+2 |
| | |||||
* | Dyncom: Move cream cache to ARMul_State. | bunnei | 2015-05-02 | 4 | -25/+18 |
| | |||||
* | dyncom: Remove more unused/unnecessary code | Lioncash | 2015-04-20 | 4 | -92/+1 |
| | | | | Gets rid of a sizeable amount of stuff in armdefs. | ||||
* | dyncom: Remove unused/unnecessary VFP cruft | Lioncash | 2015-04-18 | 6 | -822/+15 |
| | |||||
* | Core_ARM11: Replace debug prints with our own logging functions in vfpsingle. | Emmanuel Gil Peyrot | 2015-04-14 | 2 | -39/+36 |
| | |||||
* | Headers: Add some forgotten overrides, thanks clang! | Emmanuel Gil Peyrot | 2015-04-14 | 1 | -1/+1 |
| | |||||
* | dyncom: Remove unnecessary enum and typedef | Lioncash | 2015-04-07 | 5 | -50/+30 |
| | | | | Also fixes descriptions in the process. | ||||
* | vfp: Make the FPSID values match the MPCore | Lioncash | 2015-04-06 | 1 | -7/+7 |
| | |||||
* | vfp: Get rid of the VFP_OFFSET macro | Lioncash | 2015-04-06 | 5 | -64/+69 |
| | |||||
* | Merge pull request #685 from lioncash/cpregs | bunnei | 2015-04-06 | 8 | -134/+212 |
|\ | | | | | dyncom: Set the MPCore CP15 register reset values on initialization. | ||||
| * | core: Migrate 3DS-specific CP15 register setting into Init | Lioncash | 2015-04-06 | 1 | -8/+0 |
| | | |||||
| * | arm_interface: Support retrieval/storage to CP15 registers | Lioncash | 2015-04-06 | 3 | -0/+25 |
| | | |||||
| * | Move CP15 enum definitions into their own enum. | Lioncash | 2015-04-06 | 5 | -168/+163 |
| | | | | | | | | Also gets rid of preprocessor mumbo-jumbo | ||||
| * | dyncom: Properly return the value of the user RO thread register | Lioncash | 2015-04-06 | 2 | -4/+10 |
| | | |||||
| * | dyncom: Set CP15 reset values on initialization | Lioncash | 2015-04-06 | 1 | -0/+60 |
| | | |||||
* | | dyncom: Suppress uninitialized variable warnings | Lioncash | 2015-04-06 | 1 | -4/+4 |
|/ | | | | The switch cases will always be hit, but this makes compilers stop complaining. | ||||
* | dyncom: Move CP15 register writing into its own function. | Lioncash | 2015-04-02 | 4 | -88/+265 |
| | | | | Also implements writing to the rest of the ARM11 MPCore CP15 register set. | ||||
* | dyncom: Move CP15 register reading into its own function. | Lioncash | 2015-04-02 | 4 | -49/+253 |
| | | | | Keeps everything contained. Added all supported readable registers in an ARM11 MPCore. | ||||
* | dyncom: Migrate InAPrivilegedMode to armsupp | Lioncash | 2015-03-26 | 3 | -4/+7 |
| | | | | It's a generic helper function, so it should be here anyway. | ||||
* | Merge pull request #674 from lioncash/sys-instrs | bunnei | 2015-03-25 | 1 | -2/+62 |
|\ | | | | | dyncom: Implement RFE and SRS. | ||||
| * | dyncom: Implement SRS | Lioncash | 2015-03-24 | 1 | -1/+32 |
| | | |||||
| * | dyncom: Implement RFE | Lioncash | 2015-03-24 | 1 | -1/+30 |
| | | |||||
* | | dyncom: Remove unused/unnecessary macros and macro constants | Lioncash | 2015-03-24 | 2 | -39/+2 |
|/ | |||||
* | armmmu: Remove unnecessary enum values | Lioncash | 2015-03-21 | 1 | -30/+20 |
| | | | | We don't need to care about XScale or Intel specific ARM stuff. | ||||
* | Merge pull request #659 from lioncash/setend | bunnei | 2015-03-20 | 5 | -83/+233 |
|\ | | | | | Implement SETEND. | ||||
| * | dyncom: Make Load/Store instructions support big endian | Lioncash | 2015-03-17 | 5 | -82/+198 |
| | | |||||
| * | dyncom: Implement SETEND | Lioncash | 2015-03-15 | 1 | -1/+35 |
| | | |||||
* | | arm_interface: Get rid of GetTicks. | Lioncash | 2015-03-16 | 3 | -12/+0 |
|/ | | | | Removes a TODO. | ||||
* | dyncom: Minor cleanup | Lioncash | 2015-03-10 | 1 | -26/+7 |
| | | | | Assemblers will exit with an error when trying to assemble instructions with disallowed registers. | ||||
* | dyncom: Fix an indexing bug in STM | Lioncash | 2015-03-09 | 1 | -5/+4 |
| | | | | Previously it would write the contents of register 13 for the case where the link register (r14) is supposed to be written. | ||||
* | dyncom: General cleanup of STM | Lioncash | 2015-03-09 | 1 | -16/+14 |
| | |||||
* | dyncom: Increment addr when accessing LR in LDM | Lioncash | 2015-03-09 | 1 | -0/+2 |
| | |||||
* | Merge pull request #538 from yuriks/perf-stat | Tony Wasserka | 2015-03-07 | 1 | -0/+8 |
|\ | | | | | Add profiling infrastructure and widget | ||||
| * | Add profiling infrastructure and widget | Yuri Kunde Schlesner | 2015-03-02 | 1 | -0/+8 |
| | | |||||
* | | vfp: Get rid of warnings | Lioncash | 2015-03-04 | 2 | -4/+4 |
|/ | |||||
* | Merge pull request #620 from lioncash/bkpt | bunnei | 2015-02-28 | 1 | -2/+3 |
|\ | | | | | arm_disasm: Show conditional code for BKPT instructions. | ||||
| * | arm_disasm: Show conditional code for BKPT instructions. | Lioncash | 2015-02-28 | 1 | -2/+3 |
| | | | | | | | | 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). | ||||
* | | arm_disasm: Remove unused variable | Lioncash | 2015-02-28 | 1 | -2/+1 |
|/ | | | | Also declared an array as static, as it's only used in this translation unit. | ||||
* | arm: The CP15 Main ID register is not writeable | Lioncash | 2015-02-26 | 1 | -3/+1 |
| | |||||
* | arm: Remove unnecessary booleans | Lioncash | 2015-02-25 | 2 | -22/+5 |
| | | | | We don't care about any of these. | ||||
* | Cleaned up unaligned access. | Kevin Hartman | 2015-02-22 | 1 | -17/+2 |
| | |||||
* | Merge pull request #582 from lioncash/warnings | bunnei | 2015-02-18 | 1 | -4/+4 |
|\ | | | | | vfpinstr: Fix trivial signed/unsigned mismatch warnings | ||||
| * | vfpinstr: Fix trivial signed/unsigned mismatch warnings | Lioncash | 2015-02-18 | 1 | -4/+4 |
| | | |||||
* | | Merge pull request #579 from lioncash/bkpt | bunnei | 2015-02-18 | 2 | -2/+28 |
|\ \ | |/ |/| | dyncom: Support conditional BKPT instructions | ||||
| * | dyncom: Support conditional BKPT instructions | Lioncash | 2015-02-17 | 2 | -2/+28 |
| | | |||||
* | | Merge pull request #574 from lioncash/warn | bunnei | 2015-02-16 | 1 | -2/+2 |
|\ \ | |/ |/| | vfpdouble: Use %p for printing pointer addresses. | ||||
| * | vfpdouble: Use %p for printing pointer addresses. | Lioncash | 2015-02-15 | 1 | -2/+2 |
| | | |||||
* | | dyncom: Actually set the destination register for USAD8/USADA8. | Lioncash | 2015-02-16 | 1 | -0/+1 |
|/ | | | | Idiotville: Population: 1 - Inhabitant name: Lioncash | ||||
* | arm: Set the A bit on reset. | Lioncash | 2015-02-15 | 1 | -1/+1 |
| | | | | 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. | ||||
* | core: Apply static to local functions | Lioncash | 2015-02-13 | 5 | -221/+227 |
| | |||||
* | arm: General cleanup | Lioncash | 2015-02-13 | 13 | -227/+116 |
| | | | | | | | - Remove several typedefs for ARMul_State. - Remove unused functions - Remove unused/unnecessary headers - Removed unused enums, etc. | ||||
* | dyncom: Switch the app and system cores into the correct mode at initialization | Lioncash | 2015-02-13 | 4 | -12/+17 |
| | |||||
* | dyncom: Clean up the constructor | Lioncash | 2015-02-13 | 3 | -16/+7 |
| | | | | Some function calls aren't necessary and would be handled by regular initialization routines. | ||||
* | dyncom: Remove warning for SXTAH | Lioncash | 2015-02-13 | 1 | -1/+0 |
| | | | | This is tested to work correctly. | ||||
* | arm: Remove ARMul_EmulateInit | Lioncash | 2015-02-12 | 4 | -55/+1 |
| | | | | This was only used for armemu, which has since been removed. Removed components related to this as well. | ||||
* | armdefs: Remove unnecessary extern C | Lioncash | 2015-02-12 | 1 | -6/+0 |
| | |||||
* | arm: Remove ARM26 support. | Lioncash | 2015-02-11 | 2 | -45/+4 |
| | | | | This will never be used. 32-bit is the norm. | ||||
* | Merge pull request #559 from lioncash/clean | bunnei | 2015-02-11 | 4 | -24/+40 |
|\ | | | | | arm: Some cleanup. Also fixed the initial ARM mode that is emulated. | ||||
| * | arm: Get rid of some magic constants. Specify proper ARM mode. | Lioncash | 2015-02-11 | 3 | -3/+10 |
| | | | | | | | | Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE. | ||||
| * | arm: Change some more constants into enums | Lioncash | 2015-02-11 | 2 | -21/+30 |
| | | |||||
* | | Asserts: break/crash program, fit to style guide; log.h->assert.h | archshift | 2015-02-11 | 2 | -1/+2 |
| | | | | | | | | | | | | | | 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. | ||||
* | | Merge pull request #556 from lioncash/clean | bunnei | 2015-02-11 | 4 | -28/+19 |
|\| | | | | | arm: Remove TRUE/FALSE defines | ||||
| * | arm: Remove TRUE/FALSE defines | Lioncash | 2015-02-10 | 4 | -28/+19 |
| | | | | | | | | | | - Removed the Debug parameter from ARMul_State since it isn't used. - Changed ARMul_CoProInit to a void function. It always returned true. | ||||
* | | arm_dyncom_thumb: Make lookup tables static | Lioncash | 2015-02-10 | 1 | -7/+7 |
|/ | | | | These don't need to be recreated all the time. | ||||
* | Merge pull request #553 from lioncash/denorm | bunnei | 2015-02-10 | 2 | -0/+6 |
|\ | | | | | vfp: Normalize accumulator for multiply accumulate instructions | ||||
| * | vfp: Normalize accumulator for multiply accumulate instructions | Lioncash | 2015-02-10 | 2 | -0/+6 |
| | | |||||
* | | dyncom: Add more regs to MCR/MRC | Lioncash | 2015-02-10 | 2 | -18/+35 |
|/ | | | | Adds the registers that were left out of some coprocessor ranges. | ||||
* | Scheduler refactor Pt. 1 | Kevin Hartman | 2015-02-10 | 3 | -56/+20 |
| | | | | | | | | | | | | | * 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. | ||||
* | vfpdouble: Fix the FTOUI NaN sign setting | Lioncash | 2015-02-09 | 1 | -1/+1 |
| | | | | This was fixed for vfpsingle, but not vfpdouble | ||||
* | Throw more unused/unnecessary VFP code out | Lioncash | 2015-02-09 | 3 | -215/+1 |
| | |||||
* | vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff | Lioncash | 2015-02-09 | 4 | -192/+153 |
| | |||||
* | vfp_helper: Normalize tabs to spaces | Lioncash | 2015-02-09 | 1 | -172/+170 |
| | |||||
* | vfp_helper: Remove unnecessary extern C blocks | Lioncash | 2015-02-06 | 1 | -17/+1 |
| | |||||
* | vfp: Move FPSID, FPEXC, and FPSCR values over to enums. | Lioncash | 2015-02-06 | 3 | -150/+104 |
| | | | | Also got rid of duplicate definitions of some of these values. | ||||
* | Merge pull request #537 from lioncash/vfp | bunnei | 2015-02-04 | 1 | -6/+6 |
|\ | | | | | vfp: Fix VCVT | ||||
| * | vfp: Fix VCVT | Lioncash | 2015-02-04 | 1 | -6/+6 |
| | | | | | | | | | | 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. | ||||
* | | Merge pull request #536 from lioncash/dead | bunnei | 2015-02-04 | 2 | -1765/+0 |
|\ \ | |/ |/| | vfp: Throw out unused code | ||||
| * | vfp: Throw out unused code | Lioncash | 2015-02-04 | 2 | -1765/+0 |
| | | |||||
* | | dyncom: Remove more unnecessary code | Lioncash | 2015-02-03 | 1 | -45/+3 |
|/ | |||||
* | core: Fix some warnings on OSX | Lioncash | 2015-02-03 | 1 | -2/+4 |
| | |||||
* | Merge pull request #525 from lioncash/armwarn | bunnei | 2015-02-01 | 2 | -6/+3 |
|\ | | | | | vfp: Get rid of some compile warnings | ||||
| * | vfp: Get rid of some compile warnings | Lioncash | 2015-02-01 | 2 | -6/+3 |
| | | |||||
* | | arm: Clean up ARMul_State | Lioncash | 2015-02-01 | 3 | -136/+83 |
|/ | | | | Remove unnecessary/unused struct variables. | ||||
* | arm: Adios armemu | Lioncash | 2015-02-01 | 12 | -8576/+164 |
| | |||||
* | dyncom: clean up arm_dyncom_dec.h | Lioncash | 2015-01-30 | 1 | -43/+2 |
| | |||||
* | arm: Move headers over to pragma once | Lioncash | 2015-01-30 | 7 | -31/+11 |
| | |||||
* | arm: Get rid of armcpu.h and skyeye_types.h | Lioncash | 2015-01-30 | 5 | -113/+0 |
| | |||||
* | arm: Clean out armos.h and armmmu.h | Lioncash | 2015-01-30 | 2 | -181/+23 |
| | |||||
* | arm: Throw out a lot of unnecessary code | Lioncash | 2015-01-30 | 6 | -1536/+56 |
| | |||||
* | armdefs: Move some defines over to enums | Lioncash | 2015-01-30 | 1 | -131/+112 |
| | |||||
* | dyncom: Minor cleanup | Lioncash | 2015-01-27 | 1 | -126/+137 |
| | | | | Narrow scopes for the instruction variables. Remove unnecessary parentheses. | ||||
* | Update vfp.cpp | bunnei | 2015-01-27 | 1 | -1/+1 |
| | | | VFP: Changed a debug log to trace. | ||||
* | Merge pull request #410 from chinhodado/cleanup | bunnei | 2015-01-24 | 5 | -483/+157 |
|\ | | | | | Cleanup: Logging in Core | ||||
| * | Cleanup: Logging in Core | Chin | 2015-01-19 | 5 | -483/+157 |
| | | |||||
* | | vfp: Clean up vertical alignment for instructions | Lioncash | 2015-01-23 | 1 | -131/+125 |
| | | |||||
* | | dyncom: Minor cleanup | Lioncash | 2015-01-22 | 1 | -282/+270 |
| | | | | | | | | Removes some unused macros and cleans up indentation inconsistencies | ||||
* | | dyncom: Clarify precedence for ternary statements | Lioncash | 2015-01-20 | 3 | -3/+3 |
| | | |||||
* | | dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etc | Lioncash | 2015-01-19 | 1 | -7/+33 |
|/ | |||||
* | dyncom: Handle the ARM A2 encoding of STRT/LDRT | Lioncash | 2015-01-17 | 1 | -10/+24 |
| | | | | These were also missing the shifted register case. | ||||
* | dyncom: Handle the ARM A2 encoding of LDRBT/STRBT. | Lioncash | 2015-01-17 | 1 | -17/+15 |
| | |||||
* | vfp: Remove dead code | Lioncash | 2015-01-12 | 1 | -50/+14 |
| | |||||
* | dyncom: Fix 32-bit ASR shifts for immediates | Lioncash | 2015-01-12 | 1 | -5/+3 |
| | |||||
* | dyncom: Remove unused flag macros | Lioncash | 2015-01-12 | 1 | -15/+3 |
| | |||||
* | dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoop | Lioncash | 2015-01-12 | 1 | -97/+108 |
| | |||||
* | dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBC | Lioncash | 2015-01-12 | 1 | -38/+41 |
| | | | | Also cleans up CMN, and CMP. | ||||
* | dyncom: Add a helper function for addition with a carry | Lioncash | 2015-01-12 | 3 | -12/+26 |
| | |||||
* | dyncom: Fix ADC overflow flag setting | Lioncash | 2015-01-12 | 1 | -8/+12 |
| | |||||
* | dyncom: Fix conditional execution of MSR | Lioncash | 2015-01-12 | 1 | -29/+31 |
| | |||||
* | Move ThreadContext to core/core.h and deal with the fallout | Yuri Kunde Schlesner | 2015-01-09 | 5 | -11/+16 |
| | |||||
* | DynCom: Add a comment to GetTicks. | Subv | 2015-01-09 | 1 | -0/+1 |
| | |||||
* | Timing: Use CoreTiming::GetTicks to keep track of ticks. | Subv | 2015-01-09 | 2 | -6/+2 |
| | | | | This will keep track of idle ticks for us, and fixes some tickcount-related issues | ||||
* | dyncom: Fix UMAAL | Lioncash | 2015-01-08 | 1 | -4/+4 |
| | | | | These need to be done as a 64-bit operation. | ||||
* | Merge pull request #442 from lioncash/smul | bunnei | 2015-01-07 | 1 | -10/+7 |
|\ | | | | | dyncom: Fix SMULWB/SMULWT | ||||
| * | dyncom: Fix SMULWB/SMULWT | Lioncash | 2015-01-07 | 1 | -10/+7 |
| | | | | | | | | Wasn't doing proper sign-extension | ||||
* | | Merge pull request #425 from Subv/coretiming | bunnei | 2015-01-07 | 2 | -1/+9 |
|\ \ | |/ |/| | Ported the CoreTiming namespace from PPSSPP | ||||
| * | CoreTiming: Ported the CoreTiming namespace from PPSSPP | Subv | 2015-01-07 | 2 | -1/+9 |
| | | | | | | | | | | | | Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing. | ||||
* | | Merge pull request #438 from lioncash/swp | bunnei | 2015-01-07 | 1 | -0/+1 |
|\ \ | | | | | | | dyncom: Fix SWPB | ||||
| * | | dyncom: Fix SWPB | Lioncash | 2015-01-07 | 1 | -0/+1 |
| | | | |||||
* | | | dyncom: Move over SMLALXY | Lioncash | 2015-01-07 | 1 | -1/+56 |
|/ / | |||||
* | | Merge pull request #417 from kevinhartman/exclusive-tag-fix | bunnei | 2015-01-06 | 2 | -16/+18 |
|\ \ | |/ |/| | Added exclusive reservation granule from ARMv7 spec to dyncom... | ||||
| * | Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX. | Kevin Hartman | 2015-01-06 | 2 | -16/+18 |
| | | |||||
* | | dyncom: Partially emulate BXJ | Lioncash | 2015-01-05 | 1 | -8/+25 |
| | | | | | | | | Just in case some game studio let the intern write inline assembly or something. | ||||
* | | dyncom: Actually set the Q flag for SMLABB/SMLABT/SMLATB/SMLATT | Lioncash | 2015-01-05 | 1 | -1/+2 |
| | | | | | | | | Easy skyeye todo fix. | ||||
* | | Merge pull request #418 from lioncash/qd | bunnei | 2015-01-05 | 4 | -25/+117 |
|\ \ | | | | | | | dyncom: Implement QADD/QSUB/QDADD/QDSUB | ||||
| * | | dyncom: Implement QADD/QSUB/QDADD/QDSUB | Lioncash | 2015-01-05 | 4 | -25/+117 |
| | | | |||||
* | | | skyeye: Remove duplicate typedefs | Lioncash | 2015-01-04 | 4 | -41/+17 |
|/ / | | | | | | | citra already has its own typedefs like this. | ||||
* | | Merge pull request #398 from lioncash/sm | bunnei | 2015-01-03 | 1 | -1/+43 |
|\ \ | |/ |/| | dyncom: Implement SMLAW | ||||
| * | dyncom: Implement SMLAW | Lioncash | 2015-01-03 | 1 | -1/+43 |
| | | |||||
* | | VFP: Minor cleanup, functionally the same. | bunnei | 2015-01-03 | 1 | -2587/+2476 |
|/ | |||||
* | Merge pull request #395 from lioncash/rev | bunnei | 2015-01-03 | 1 | -45/+45 |
|\ | | | | | dyncom: Implement REVSH | ||||
| * | dyncom: Implement REVSH | Lioncash | 2015-01-03 | 1 | -45/+45 |
| | | | | | | | | Also joins the REV ops into one common place. | ||||
* | | dyncom: Implement SMLALD/SMLSLD | Lioncash | 2015-01-03 | 1 | -3/+72 |
|/ | |||||
* | Merge pull request #392 from lioncash/sm | bunnei | 2015-01-03 | 1 | -3/+64 |
|\ | | | | | dyncom: Implement SMMLA/SMMUL/SMMLS | ||||
| * | dyncom: Implement SMMLA/SMMUL/SMMLS | Lioncash | 2015-01-03 | 1 | -3/+64 |
| | | |||||
* | | dyncom: Implemented LDREXD/STREXD/LDREXH/STREXH | bunnei | 2015-01-03 | 3 | -227/+282 |
|/ | |||||
* | Merge pull request #390 from lioncash/wut | bunnei | 2015-01-03 | 1 | -27/+0 |
|\ | | | | | dyncom: Remove dead function InterpreterInitInstLength | ||||
| * | dyncom: Remove dead function InterpreterInitInstLength | Lioncash | 2015-01-03 | 1 | -27/+0 |
| | | | | | | | | Technically eliminates two memory leaks as well. | ||||
* | | armemu: Fix missing Q flag check for SMLSD. | Lioncash | 2015-01-03 | 1 | -2/+6 |
| | | |||||
* | | dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSD | Lioncash | 2015-01-03 | 5 | -50/+84 |
|/ | |||||
* | dyncom: Implement SXTAB16 and SXTB16 | Lioncash | 2015-01-02 | 1 | -3/+58 |
| | |||||
* | Merge pull request #379 from lioncash/sh | bunnei | 2015-01-02 | 1 | -8/+110 |
|\ | | | | | dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAX | ||||
| * | dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAX | Lioncash | 2015-01-01 | 1 | -8/+110 |
| | | |||||
* | | Fix SADD8/SSUB8 in the armemu | Lioncash | 2015-01-01 | 1 | -50/+28 |
| | | |||||
* | | dyncom: Implement SADD8/SSUB8 | Lioncash | 2015-01-01 | 1 | -55/+108 |
|/ | |||||
* | Merge pull request #375 from lioncash/uops | bunnei | 2014-12-31 | 1 | -9/+208 |
|\ | | | | | dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAX | ||||
| * | dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAX | Lioncash | 2014-12-31 | 1 | -9/+208 |
| | | |||||
* | | dyncom: Massive refactor | bunnei | 2014-12-31 | 2 | -654/+221 |
| | | |||||
* | | Merge pull request #369 from darkf/mingw_ | bunnei | 2014-12-31 | 1 | -0/+8 |
|\ \ | | | | | | | Fix MinGW build (2) | ||||
| * \ | Fix merge conflicts | darkf | 2014-12-30 | 22 | -9156/+8501 |
| |\ \ | |||||
| * | | | Add comment regarding __WIN32__ in SkyEye code | darkf | 2014-11-29 | 1 | -0/+4 |
| | | | | |||||
| * | | | Fix MinGW build | darkf | 2014-11-29 | 1 | -0/+4 |
| | | | | |||||
* | | | | vfp: Get rid of a few warnings | Lioncash | 2014-12-30 | 2 | -2/+2 |
| |_|/ |/| | | |||||
* | | | vfp: Implement VMOVBRRSS | Lioncash | 2014-12-30 | 3 | -12/+44 |
| | | | |||||
* | | | dyncom: Implement USAT16/SSAT16 | Lioncash | 2014-12-30 | 1 | -2/+61 |
| |/ |/| | |||||
* | | dyncom: Implement USAT/SSAT | bunnei | 2014-12-30 | 3 | -2/+131 |
| | | |||||
* | | dyncom: Various cleanups to match coding style, no functional changes. | bunnei | 2014-12-30 | 5 | -7087/+5962 |
| | | |||||
* | | Merge pull request #361 from lioncash/moreqops | bunnei | 2014-12-29 | 4 | -65/+142 |
|\ \ | | | | | | | dyncom/armemu: Implement QADD8/QSUB8. | ||||
| * | | dyncom: Implement QADD8/QSUB8 | Lioncash | 2014-12-29 | 1 | -32/+42 |
| | | | |||||
| * | | armemu: Implement QADD8/QSUB8 | Lioncash | 2014-12-29 | 3 | -33/+100 |
| | | | |||||
* | | | dyncom: Fix SMLALXY's instruction labels | Lioncash | 2014-12-29 | 1 | -2/+2 |
|/ / | | | | | | | They were erroneously labeled as SMLAL. | ||||
* | | dyncom: Implement UXTB16/UXTAB16 | Lioncash | 2014-12-29 | 1 | -2/+55 |
| | | |||||
* | | Merge pull request #355 from lioncash/simp | bunnei | 2014-12-29 | 1 | -225/+142 |
|\ \ | | | | | | | armemu: Simplify some instructions. | ||||
| * | | armemu: Simplify SSAT/SSAT16/SXTB/SXTAB | Lioncash | 2014-12-28 | 1 | -71/+48 |
| | | | |||||
| * | | armemu: Simplify REV/REV16/SXTH/SXTAH | Lioncash | 2014-12-28 | 1 | -38/+26 |
| | | | |||||
| * | | armemu: Simplify USAT16/UXTB/UXTAB | Lioncash | 2014-12-28 | 1 | -65/+42 |
| | | | |||||
| * | | armemu: Simplify REVSH/UXTH/UXTAH | Lioncash | 2014-12-28 | 1 | -48/+23 |
| | | | |||||
* | | | vfp: Actually make the code somewhat readable | Lioncash | 2014-12-29 | 5 | -1664/+1053 |
| | | | |||||
* | | | dyncom: Implement PKHBT and PKHTB. | bunnei | 2014-12-28 | 1 | -2/+57 |
| | | | |||||
* | | | armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field. | bunnei | 2014-12-28 | 1 | -13/+5 |
| | | | |||||
* | | | dyncom: Implement USAD8/USADA8 | Lioncash | 2014-12-28 | 3 | -3/+53 |
| | | | |||||
* | | | Merge pull request #354 from lioncash/usaduflow | bunnei | 2014-12-28 | 3 | -4/+14 |
|\ \ \ | |/ / |/| | | armemu: Fix underflows in USAD8/USADA8 | ||||
| * | | armemu: Fix underflows in USAD8/USADA8 | Lioncash | 2014-12-28 | 3 | -4/+14 |
| | | | | | | | | | | | | Initially reported by xdec. | ||||
* | | | dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX. | Lioncash | 2014-12-27 | 3 | -12/+102 |
| | | | |||||
* | | | armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAX | Lioncash | 2014-12-27 | 3 | -19/+93 |
|/ / | |||||
* | | dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX | Lioncash | 2014-12-27 | 1 | -11/+123 |
| | | |||||
* | | armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX | Lioncash | 2014-12-27 | 1 | -2/+73 |
| | | |||||
* | | Merge pull request #339 from bunnei/fixup-gsp-synch | bunnei | 2014-12-26 | 5 | -95/+31 |
|\ \ | | | | | | | Fixup gsp synch | ||||
| * | | ARM: Add a mechanism for faking CPU time elapsed during HLE. | bunnei | 2014-12-26 | 5 | -95/+31 |
| | | | | | | | | | | | | - Also a few cleanups. | ||||
* | | | Merge pull request #343 from lioncash/smmla | bunnei | 2014-12-26 | 1 | -2/+30 |
|\ \ \ | | | | | | | | | armemu: Implement SMMUL, SMMLA, and SMMLS. | ||||
| * | | | armemu: Implement SMMUL, SMMLA, and SMMLS. | Lioncash | 2014-12-25 | 1 | -2/+30 |
| |/ / | |||||
* | | | Merge pull request #341 from lioncash/moresmops | bunnei | 2014-12-26 | 1 | -2/+33 |
|\ \ \ | | | | | | | | | armemu: Implement SMLALD/SMLSLD | ||||
| * | | | armemu: Implement SMLALD/SMLSLD | Lioncash | 2014-12-24 | 1 | -2/+33 |
| |/ / | |||||
* / / | armemu: Fix GE/Q flag setting semantics | Lioncash | 2014-12-24 | 1 | -62/+56 |
|/ / | |||||
* | | armemu: Set the Q flag correctly for much of the other ops | Lioncash | 2014-12-23 | 1 | -8/+8 |
| | | | | | | | | They were setting the old S flag. | ||||
* | | armemu: Set the Q flag properly for SMLAD/SMUAD | Lioncash | 2014-12-23 | 3 | -13/+28 |
| | | |||||
* | | Merge pull request #334 from lioncash/cpsr | bunnei | 2014-12-23 | 1 | -1/+1 |
|\ \ | | | | | | | armemu: Fix retrieval of the CPSR in MRS instructions. | ||||
| * | | armemu: Fix retrieval of the CPSR in MRS instructions. | Lioncash | 2014-12-23 | 1 | -1/+1 |
| | | | |||||
* | | | Merge pull request #335 from lioncash/cpsrcreate | bunnei | 2014-12-23 | 4 | -25/+78 |
|\ \ \ | | | | | | | | | armemu: Emulate the GE and Q flags. | ||||
| * | | | armemu: Properly set the Q flag for SSAT16/USAT16 upon saturation. | Lioncash | 2014-12-23 | 1 | -9/+23 |
| | | | | |||||
| * | | | armemu: Fix SEL | Lioncash | 2014-12-23 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | Needs to use the updated state of the CPSR. | ||||
| * | | | armemu: Fix construction of the CPSR | Lioncash | 2014-12-23 | 4 | -15/+54 |
| |/ / | |||||
* / / | dyncom: Move over QADD16/QASX/QSAX/QSUB16 | Lioncash | 2014-12-22 | 1 | -7/+87 |
|/ / | |||||
* | | Merge pull request #322 from chinhodado/master | bunnei | 2014-12-22 | 3 | -9/+6 |
|\ \ | | | | | | | More warning cleanups | ||||
| * | | More warning cleanups | Chin | 2014-12-21 | 3 | -9/+6 |
| | | | |||||
* | | | dyncom: Move SEL over | Lioncash | 2014-12-22 | 1 | -1/+58 |
| | | | |||||
* | | | Merge pull request #324 from lioncash/dync | bunnei | 2014-12-22 | 1 | -7/+102 |
|\ \ \ | | | | | | | | | dyncom: Move over SASX/SSAX/SADD16/SSUB16 | ||||
| * | | | dyncom: Move over SASX/SSAX/SADD16/SSUB16 | Lioncash | 2014-12-22 | 1 | -7/+102 |
| | | | | |||||
* | | | | Merge pull request #291 from purpasmart96/license | bunnei | 2014-12-21 | 8 | -8/+8 |
|\ \ \ \ | |/ / / |/| | | | License change | ||||
| * | | | License change | purpasmart96 | 2014-12-21 | 8 | -8/+8 |
| | | | | |||||
* | | | | armemu: Implement SADD8/SSUB8 | Lioncash | 2014-12-21 | 1 | -14/+87 |
| |/ / |/| | | |||||
* | | | Merge pull request #296 from lioncash/dyn | bunnei | 2014-12-20 | 1 | -1/+47 |
|\ \ \ | | | | | | | | | dyncom: Implement UMAAL | ||||
| * | | | dyncom: Implement UMAAL | Lioncash | 2014-12-19 | 1 | -1/+47 |
| |/ / | |||||
* | | | Merge pull request #310 from lioncash/ssat16 | bunnei | 2014-12-20 | 1 | -14/+20 |
|\ \ \ | | | | | | | | | armemu: Fix SSAT16. | ||||
| * | | | armemu: Fix SSAT16 | Lioncash | 2014-12-19 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | The lower-bound would never be negative like it should | ||||
| * | | | armemu: Clean up naming and formatting for SSAT16 | Lioncash | 2014-12-19 | 1 | -14/+20 |
| |/ / | |||||
* | | | armemu: Should be using labs for USAD8/USADA8 | Lioncash | 2014-12-20 | 1 | -4/+4 |
| | | | |||||
* | | | Merge pull request #311 from lioncash/usada | bunnei | 2014-12-20 | 1 | -1/+24 |
|\ \ \ | | | | | | | | | armemu: Implement USAD8 and USADA8 | ||||
| * | | | armemu: Implement USAD8 and USADA8 | Lioncash | 2014-12-19 | 1 | -1/+24 |
| | | | | |||||
* | | | | Merge pull request #313 from lioncash/smlsd | bunnei | 2014-12-20 | 1 | -6/+10 |
|\ \ \ \ | | | | | | | | | | | armemu: Implement SMLSD | ||||
| * | | | | armemu: Implement SMLSD | Lioncash | 2014-12-19 | 1 | -6/+10 |
| | |/ / | |/| | | |||||
* | | | | Merge pull request #314 from lioncash/qsax-qasx | bunnei | 2014-12-20 | 1 | -7/+20 |
|\ \ \ \ | | | | | | | | | | | armemu: Implement QASX and QSAX | ||||
| * | | | | armemu: Implement QASX and QSAX | Lioncash | 2014-12-19 | 1 | -7/+20 |
| |/ / / | |||||
* | | | | Merge pull request #294 from lioncash/var | bunnei | 2014-12-19 | 1 | -12/+9 |
|\ \ \ \ | | | | | | | | | | | armemu: Narrow the scope of some variables in handle_v6_insn | ||||
| * | | | | armemu: Narrow the scope of some variables in handle_v6_insn | Lioncash | 2014-12-17 | 1 | -12/+9 |
| | | | | | | | | | | | | | | | | | | | | There's no reason to have these in the outer-most scope. | ||||
* | | | | | Merge pull request #305 from lioncash/paren | bunnei | 2014-12-19 | 1 | -4/+4 |
|\ \ \ \ \ | |_|/ / / |/| | | | | armemu: Get rid of bitwise parenthesis warnings | ||||
| * | | | | armemu: Get rid of bitwise parenthesis warnings | Lioncash | 2014-12-18 | 1 | -4/+4 |
| | |/ / | |/| | | |||||
* | | | | Merge pull request #304 from lioncash/sflags | bunnei | 2014-12-18 | 1 | -4/+29 |
|\ \ \ \ | | | | | | | | | | | armemu: Set GE flags properly for SSUB16, SADD16, SSAX, and SASX. | ||||
| * | | | | armemu: Set GE flags correctly for SSUB16, SADD16, SSAX, and SASX. | Lioncash | 2014-12-18 | 1 | -4/+29 |
| |/ / / | |||||
* | | | | armemu: Fix lower-bounds clamping for USAT16 | Lioncash | 2014-12-18 | 1 | -1/+6 |
| | | | | |||||
* | | | | armemu: More concise names for USAT16-related variables | Lioncash | 2014-12-18 | 1 | -11/+15 |
|/ / / | |||||
* | | | Merge pull request #299 from lioncash/join | bunnei | 2014-12-18 | 1 | -34/+23 |
|\ \ \ | | | | | | | | | Combine SSUB16, SADD16, SASX, and SSAX. | ||||
| * | | | armemu: Combine SSUB16, SADD16, SASX, and SSAX. | Lioncash | 2014-12-18 | 1 | -34/+23 |
| | | | | |||||
* | | | | Merge pull request #298 from lioncash/flags | bunnei | 2014-12-18 | 1 | -4/+22 |
|\ \ \ \ | | | | | | | | | | | armemu: Unset GE flags for UADD8 if results are < 0x100 | ||||
| * | | | | armemu: Unset GE flags for UADD8 if results are < 0x100 | Lioncash | 2014-12-17 | 1 | -4/+22 |
| | | | | | | | | | | | | | | | | | | | | Reference manual states these must be set to zero if this case is true. | ||||
* | | | | | Merge pull request #295 from lioncash/umaal | bunnei | 2014-12-18 | 1 | -3/+25 |
|\ \ \ \ \ | |_|/ / / |/| | | | | armemu: Implement UMAAL | ||||
| * | | | | armemu: Implement UMAAL | Lioncash | 2014-12-17 | 1 | -3/+25 |
| | |/ / | |/| | | |||||
* | | | | Merge pull request #292 from lioncash/backports | bunnei | 2014-12-18 | 1 | -19/+30 |
|\ \ \ \ | | | | | | | | | | | Backport more skyeye fixes from 3dmoo | ||||
| * | | | | armemu: Fix PKHTB | Normmatt | 2014-12-17 | 1 | -6/+12 |
| | | | | | |||||
| * | | | | armemu: Implement REVSH | Normmatt | 2014-12-17 | 1 | -5/+9 |
| | | | | | |||||
| * | | | | armemu: Fix UXTAB/UXTAH | Normmatt | 2014-12-17 | 1 | -4/+4 |
| | | | | | |||||
| * | | | | armemu: Fix SXTAB | Normmatt | 2014-12-17 | 1 | -2/+2 |
| | | | | | |||||
| * | | | | armemu: Fix SXTAH | Normmatt | 2014-12-17 | 1 | -2/+3 |
| |/ / / | |||||
* | / / | armemu: Fix SSUB16 | Lioncash | 2014-12-17 | 1 | -8/+8 |
| |/ / |/| | | | | | | | | | | | | | | | | | Broken from the same reason SADD16 was. The lo part of the result should only be constructed from the lo halfwords of rm and rn. The hi part of the result should only be constructed from the hi halfwords of rm and rn. | ||||
* | | | Merge pull request #293 from lioncash/sops | bunnei | 2014-12-17 | 1 | -8/+9 |
|\ \ \ | | | | | | | | | armemu: Fix SADD16 | ||||
| * | | | armemu: Fix SADD16 | Lioncash | 2014-12-17 | 1 | -8/+9 |
| |/ / | | | | | | | | | | The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn. | ||||
* | | | Merge pull request #287 from lioncash/qaddsub16 | bunnei | 2014-12-17 | 1 | -33/+37 |
|\ \ \ | |/ / |/| | | armemu: Join QADD16/QSUB16 and fix saturation clamping. | ||||
| * | | armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16. | Lioncash | 2014-12-16 | 1 | -2/+2 |
| | | | |||||
| * | | armemu: Join QADD16 and QSUB16 together. | Lioncash | 2014-12-16 | 1 | -33/+37 |
| | | | | | | | | | | | | The only difference between these ops is one adds and one subtracts. Everything is literally the same. | ||||
* | | | Merge pull request #289 from lioncash/smops | bunnei | 2014-12-17 | 1 | -38/+35 |
|\ \ \ | | | | | | | | | Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well. | ||||
| * | | | armemu: Fix SMUAD, SMUSD, and SMLAD | Lioncash | 2014-12-16 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | Wrong values were being multiplied together. | ||||
| * | | | armemu: Join SMUAD, SMUSD, and SMLAD | Lioncash | 2014-12-16 | 1 | -38/+35 |
| |/ / | |||||
* | | | Merge pull request #290 from lioncash/vsub | bunnei | 2014-12-17 | 1 | -2/+5 |
|\ \ \ | | | | | | | | | armemu: Backport some VFP fixes from 3dmoo. | ||||
| * | | | armemu: Fix FTOUI NaN sign. | Normmatt | 2014-12-16 | 1 | -1/+1 |
| | | | | |||||
| * | | | armemu: Fix FSUBS bug where NaN shouldn't be negated | Normmatt | 2014-12-16 | 1 | -1/+4 |
| |/ / | |||||
* / / | armemu: Implement UXTAB16 | Lioncash | 2014-12-16 | 1 | -10/+25 |
|/ / | |||||
* | | armemu: Fix UXTB16 | Lioncash | 2014-12-15 | 1 | -12/+12 |
| | | | | | | | | Rotation bits are 10 and 11, not 9 and 10. | ||||
* | | Merge pull request #276 from lioncash/decrappify | bunnei | 2014-12-15 | 1 | -306/+169 |
|\ \ | | | | | | | Clean up armdefs.h a little. | ||||
| * | | Clean up armdefs.h | Lioncash | 2014-12-14 | 1 | -306/+169 |
| | | | |||||
* | | | ARM: Pull some SkyEye fixes from 3dmoo. | bunnei | 2014-12-15 | 3 | -419/+485 |
|/ / | |||||
* | | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 2014-12-13 | 5 | -109/+109 |
| | | |||||
* | | armemu: Fix SSAX | Lioncash | 2014-12-08 | 1 | -1/+1 |
| | | |||||
* | | armemu: Fix SASX | Lioncash | 2014-12-08 | 1 | -1/+1 |
| | | |||||
* | | armemu: Fix parenthesis warnings regarding bitwise ops | Lioncash | 2014-12-08 | 1 | -4/+4 |
| | | |||||
* | | Merge pull request #235 from yuriks/dyncom-map | bunnei | 2014-11-30 | 1 | -33/+15 |
|\ \ | | | | | | | dyncom: Use unordered_map rather than the terrible 2-level bb_map | ||||
| * | | dyncom: Use unordered_map rather than the terrible 2-level bb_map | Yuri Kunde Schlesner | 2014-11-29 | 1 | -33/+15 |
| |/ | | | | | | | | | | | Seems (probably just placebo/wishful thinking) to make it slightly faster. Also reduces memory usage and makes shutdown when debugging from MSVC fast. | ||||
* / | arm_dyncom_interpreter: Get rid of unused var warnings | Lioncash | 2014-11-29 | 1 | -4/+2 |
|/ | |||||
* | Remove unused includes to common/thread.h | Emmanuel Gil Peyrot | 2014-11-25 | 1 | -2/+0 |
| | |||||
* | HLE: Revamp error handling throrough the HLE code | Yuri Kunde Schlesner | 2014-11-24 | 1 | -16/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed. | ||||
* | Change some SkyEye defines to const ints | Yuri Kunde Schlesner | 2014-11-24 | 2 | -34/+16 |
| | | | | | This prevents them from interfering with other constants defined in different namespaces. | ||||
* | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 2014-11-19 | 7 | -12/+12 |
| | |||||
* | Fix documentation of parameters | Lioncash | 2014-11-18 | 2 | -2/+2 |
| | |||||
* | Merge pull request #194 from lioncash/virt | bunnei | 2014-11-15 | 1 | -1/+1 |
|\ | | | | | ARM_Interface: Make destructor virtual | ||||
| * | ARM_Interface: Make destructor virtual | Lioncash | 2014-11-14 | 1 | -1/+1 |
| | | | | | | | | Fixes some warnings on OSX. | ||||
* | | ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable). | bunnei | 2014-11-12 | 1 | -2/+2 |
| | | | | | | | | - Fixes single stepping in debugger. | ||||
* | | ARM: Removed unnecessary goto with each instruction. | bunnei | 2014-11-12 | 1 | -43/+39 |
| | | |||||
* | | ARM: Fixed several dyncom bugs. | bunnei | 2014-11-12 | 3 | -17/+25 |
| | | | | | | | | | | | | | | - Fixed NZCVT flags to properly save state when function returns. - Fixed counter to keep track of the actual number of instructions executed. - Fixed single-step mode to only execute one instruction at a time. - DefaultIni: Removed comment that no longer applied to dyncom. | ||||
* | | Fix compilation errors | Sean Maas | 2014-11-03 | 1 | -2/+2 |
| | | |||||
* | | ARM: Merged additional ARMv6 instructions implemented by 3dmoo. | bunnei | 2014-11-02 | 1 | -42/+234 |
| | | |||||
* | | ARM: Merge latest VFP fixes from 3dmoo team. | bunnei | 2014-11-02 | 4 | -2096/+2388 |
| | | |||||
* | | Fix VFP compilation errors with gcc | Yuri Kunde Schlesner | 2014-10-31 | 1 | -12/+12 |
| | | |||||
* | | Merge pull request #153 from yuriks/add-override | bunnei | 2014-10-28 | 2 | -18/+18 |
|\ \ | | | | | | | Add override keyword where appropriate | ||||
| * | | Add `override` keyword through the code. | Yuri Kunde Schlesner | 2014-10-26 | 2 | -18/+18 |
| | | | | | | | | | | | | This was automated using `clang-modernize`. | ||||
* | | | vfp_helper: Get rid of integer type redefinitions | Lioncash | 2014-10-26 | 1 | -7/+1 |
|/ / | |||||
* | | ARM: Removed unnecessary and unused SkyEye MMU code. | bunnei | 2014-10-25 | 21 | -7728/+326 |
| | | | | | | | | Added license header back in. I originally removed this because I mostly rewrote the file, but meh | ||||
* | | ARM: Removed unused armos code from SkyEye. | bunnei | 2014-10-25 | 3 | -746/+0 |
| | | |||||
* | | ARM: Updated dyncom core to use fast label lookup table on clang. | bunnei | 2014-10-25 | 1 | -3/+7 |
| | | |||||
* | | ARM: Integrate SkyEye faster "dyncom" interpreter. | bunnei | 2014-10-25 | 18 | -50/+8216 |
| | | | | | | | | | | | | | | | | | | | | Fixed typo (make protected member public) Added license header back in. I originally removed this because I mostly rewrote the file, but meh ARM: Fixed a type error in dyncom interpreter. ARM: Updated dyncom to use unique_ptr for internal ARM state. | ||||
* | | ARM: Reorganized file structure to move shared SkyEye code to a more common area. | bunnei | 2014-10-25 | 31 | -63/+63 |
| | | | | | | | | Removed s_ prefix | ||||
* | | Merge pull request #97 from archshift/cleanup | bunnei | 2014-09-14 | 1 | -1/+1 |
|\ \ | | | | | | | Small, general code cleanup | ||||
| * | | Dead code removal: video_core.cpp, load_symbol_map.cpp | archshift | 2014-09-07 | 1 | -1/+1 |
| | | | |||||
* | | | Merge pull request #99 from archshift/ext-check | bunnei | 2014-09-11 | 1 | -39/+39 |
|\ \ \ | | | | | | | | | loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace | ||||
| * | | | Added string_util to common, small changes in loader.cpp | archshift | 2014-09-09 | 1 | -39/+39 |
| | |/ | |/| | |||||
* / | | core: Prune redundant includes | archshift | 2014-09-09 | 1 | -1/+0 |
|/ / | |||||
* / | core: Make the ARM disassembler use std::string internally | Lioncash | 2014-09-06 | 3 | -189/+143 |
|/ | |||||
* | Threading: Fix thread starting to execute first instruction correctly. | bunnei | 2014-08-28 | 1 | -1/+1 |
| | |||||
* | ARM: Remove a forgotten const in vfp. | Emmanuel Gil Peyrot | 2014-08-20 | 2 | -2/+2 |
| | |||||
* | ARM: Synchronize Citra's SkyEye core with 3dmoo's. | bunnei | 2014-07-24 | 6 | -5919/+5303 |
| | |||||
* | core: Kill off type redefenitions in armdefs.h | Lioncash | 2014-07-20 | 1 | -7/+0 |
| | |||||
* | Merge branch 'threading' of https://github.com/bunnei/citra | bunnei | 2014-06-14 | 4 | -20/+18 |
|\ | | | | | | | | | | | Conflicts: src/core/hle/function_wrappers.h src/core/hle/service/gsp.cpp | ||||
| * | arm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually executing one more instruction than expected | bunnei | 2014-06-05 | 1 | -1/+1 |
| | | |||||
| * | arm: fixed bug in how thread context switch occurs with SkyEye | bunnei | 2014-06-05 | 1 | -2/+5 |
| | | |||||
| * | arm: reverting a change made with cb0663de - this has to have been a typo! | bunnei | 2014-06-05 | 1 | -1/+1 |
| | | |||||
| * | arm: added option to prepare CPU core (while mid-instruction) for thread reschedule | bunnei | 2014-06-02 | 3 | -0/+11 |
| | | |||||
| * | arm: removed unnecessary code when calling SVC from skyeye | bunnei | 2014-05-30 | 1 | -16/+0 |
| | | |||||
* | | Added 'this' reference to num_instructions field so it's properly updated,as before the method was affecting the local method parameter rather than the class field | Disruption | 2014-06-01 | 1 | -1/+1 |
| | | |||||
* | | Merge branch 'threading' | bunnei | 2014-05-23 | 7 | -36/+119 |
|\| | |||||
| * | arm_interpreter: fixed load context to currently resume a thread | bunnei | 2014-05-23 | 1 | -1/+4 |
| | | |||||
| * | arm: removed include of windows.h from armdefs.h to arminit.c (only module that uses it) | bunnei | 2014-05-21 | 2 | -4/+3 |
| | | |||||
| * | armemu: missed rename of "Syscall" to "SVC" | bunnei | 2014-05-21 | 1 | -1/+1 |
| | | |||||
| * | ARM_Interpreter/ARM_Interface: Fixed member variable naming to be consistent with style guide | bunnei | 2014-05-21 | 3 | -45/+45 |
| | | |||||
| * | ARM_Interface: added SaveContext and LoadContext functions for HLE thread switching | bunnei | 2014-05-21 | 3 | -1/+63 |
| | | |||||
| * | VFP: disable DBG messages because they spam the console with unimportant skyeye junk | bunnei | 2014-05-20 | 1 | -1/+1 |
| | | |||||
| * | ignore thumbemu 0xDEADCODE debugging catch on MCR | bunnei | 2014-05-17 | 1 | -2/+1 |
| | | |||||
| * | Merge branch 'master' into threading | bunnei | 2014-05-17 | 5 | -20/+30 |
| |\ | |||||
| * \ | Merge master into threading to add support for VFP | bunnei | 2014-05-17 | 28 | -136/+14183 |
| |\ \ | |||||
| * | | | added option to set CPSR register to arm_interface | bunnei | 2014-05-12 | 3 | -0/+20 |
| | | | | |||||
* | | | | Merge pull request #2 from archshift/issue-7-fix | bunnei | 2014-05-20 | 4 | -10/+10 |
|\ \ \ \ | |_|_|/ |/| | | | Fixes issues with building Citra on OSX | ||||
| * | | | Fixed vfp issues | archshift | 2014-05-17 | 4 | -10/+10 |
| | |/ | |/| | |||||
* / | | updated how we call ARM core to make things much faster | bunnei | 2014-05-17 | 5 | -20/+30 |
|/ / | |||||
* | | same fix as last commit - just for vfpsingle.cpp | bunnei | 2014-05-17 | 1 | -2/+2 |
| | | |||||
* | | another VFP fix for GCC | bunnei | 2014-05-17 | 1 | -2/+2 |
| | | |||||
* | | fixed VFP DBG log for GCC | bunnei | 2014-05-17 | 1 | -1/+1 |
| | | |||||
* | | - reenabled MCR and MRC functions now that VFP is attached | bunnei | 2014-05-17 | 2 | -95/+92 |
| | | | | | | | | - removed HLE::CallMCR function (was pointless) | ||||
* | | - removed unused stubbed out code | bunnei | 2014-05-17 | 5 | -33/+27 |
| | | | | | | | | | | - fixed some compiler issues with xscale_copro when porting code to Windows - fixed some #include's | ||||
* | | added maverick.cpp to ARM core from skyeye | bunnei | 2014-05-16 | 1 | -0/+1206 |
| | | |||||
* | | fixed includes | bunnei | 2014-05-16 | 1 | -2/+2 |
| | | |||||
* | | enabled CP_ACCESS_ALLOWED | bunnei | 2014-05-16 | 1 | -6/+4 |
| | | |||||
* | | fixed include path | bunnei | 2014-05-16 | 1 | -1/+1 |
| | | |||||
* | | removed undefined function ARMul_ConsolePrint | bunnei | 2014-05-16 | 1 | -1/+1 |
| | | |||||
* | | added missing armcopro from skyeye | bunnei | 2014-05-16 | 3 | -251/+1093 |
| | | |||||
* | | added missing skyeye mmu code | bunnei | 2014-05-16 | 9 | -17/+3272 |
| | | |||||
* | | fixed armmmu imports | bunnei | 2014-05-16 | 1 | -5/+5 |
| | | |||||
* | | - moved mmu to arm/interpreter folder | bunnei | 2014-05-16 | 13 | -0/+8755 |
|/ | | | | - added initial VFP code from skyeye | ||||
* | - disable strict alignment on LDRD/STRD | bunnei | 2014-05-07 | 1 | -17/+22 |
| | | | | - handle RD in STREX/STREXB | ||||
* | commented out useless debug logs that just spammed console | bunnei | 2014-05-06 | 1 | -3/+3 |
| | |||||
* | - added CallMCR function to coprocessor HLE module | bunnei | 2014-05-02 | 1 | -22/+23 |
| | | | | - moved instruction decoding to coprocessor HLE module | ||||
* | renamed hle "mrc" module to "coprocessor" | bunnei | 2014-05-02 | 1 | -8/+8 |
| | |||||
* | added a module to load symbol map files for debugging | bunnei | 2014-05-01 | 2 | -0/+46 |
| | |||||
* | removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class | bunnei | 2014-04-28 | 2 | -3/+1 |
| | |||||
* | removed commented out line - this was for an unimplemented MRC call, no longer need to leave this here | bunnei | 2014-04-28 | 1 | -1/+0 |
| | |||||
* | moved HLE::MRC to its own module, added support for catching data synchronization barrier command | bunnei | 2014-04-25 | 2 | -3/+5 |
| | |||||
* | added disassembly to unimplemented instruction | bunnei | 2014-04-25 | 1 | -1/+6 |
| | |||||
* | fixes to build on linux | bunnei | 2014-04-23 | 1 | -0/+2 |
| | |||||
* | - added HLE to connect to "srv:" service | bunnei | 2014-04-13 | 1 | -33/+35 |
| | | | | | | - added a manager for keeping track of services/ports - added a memory mapped region for memory accessed by HLE - added HLE for GetThreadCommandBuffer function | ||||
* | hacked CPU interpreter to ignore branch on SVC instruction (as we are HLEing this...) | bunnei | 2014-04-12 | 1 | -2/+6 |
| | |||||
* | added a SETABORT method that does not update LR (for HLE'd SVC that does not jump appcore CPU to an IRQ vector) | bunnei | 2014-04-12 | 1 | -0/+11 |
| | |||||
* | base code to call a syscall from ARM11 appcore | bunnei | 2014-04-11 | 1 | -0/+3 |
| | |||||
* | missed this file with commit 95e5436f | bunnei | 2014-04-11 | 1 | -1/+10 |
| | |||||
* | cleaned up arm_interface, added a setter to set registers for use with HLE return values | bunnei | 2014-04-11 | 2 | -6/+70 |
| | |||||
* | fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend module | bunnei | 2014-04-09 | 3 | -94/+57 |
| | |||||
* | fixed project includes to use new directory structure | bunnei | 2014-04-09 | 10 | -27/+27 |
| | |||||
* | got rid of 'src' folders in each sub-project | bunnei | 2014-04-09 | 25 | -0/+15528 |