citra/src/core
Dragios 7d74f8cf47 CPU JIT Part 2 (#20)
* ARM/Decoder: Initial implementation

* JitX64: Implement register allocator

* JitX64: Initial implementation of JitX64 compiler

* JitX64: Add accessors for ARMul_State::exclusive_tag and ARMul_State::exclusive_state

* JitX64: Implement ARM_Jit

ARM_Jit is the ARM_Interface for the x64 recompiler.

* tests: Infrastructure for unit tests

* dyncom: Implement Arm_DynCom::ClearCache()

* tests/JitX64: Fuzz ARM data processing instructions

* JitX64: Implement ARM_Jit::ClearCache()

* JitX64: Implement ADC_imm

* JitX64: Implement immediate data processing instructions

* fixup! Arm/ArmDecoder: Address comments regarding the arm decoder and check versions of all arm instructions

* fixup! Builds on OS X now

* fixup! Fix bugs in thumb decoder & have it use boost::optional

* JitX64/RegAlloc: Improve documentation and improve method names

* tests/JitX64: Improve tests

* tests/JitX64: Add tests for testing data processing instructions with Rd=R15

* fixup! JitX64/RegAlloc: Rename member functions to (Lock|Bind)ArmFor(Read|ReadWrite|Write).

* fixup! Addressed comments regarding JitX64::JitX64

* fixup! tests/JitX64: Address comments

* tests/JitX64: Initial thumb tests

* Common: Add MathUtil::SignExtend

* ARM_Disasm: Disassemble BLX

* JitX64: Implement branch instructions

* JitX64: Implement 32-bit thumb BL(X) instruction

* JitX64: Data Processing: Implement shift-by-immediate (_reg) instructions

* JitX64: Data Processing: Implement shift-by-register (_rsr) instructions

* x64 ABI: Be explicit about Gen:: namespace

* MMIO: UnmapRegion

* JitX64: Implement load/store instructions

* JitX64: Implement load and store multiple

* JitX64: Implement SETEND

* tests/JitX64: Improve thumb instruction test coverage

* fixup! Fix non-MSVC builds

* JitX64: Load/Store: Add UNPREDICTABLE ASSERTs, correct LDR R15 behavior

* tests/JitX64: Fix thumb tests

* JitX64: Implement synchronisation instructions

* JitX64: Implement exception-generating instructions

* ARM_Jit: ClearCache upon construct

* ARM/Decoder: Fill out more instructions

* JitX64: Removed old page table code

* fixup! ARM/Decoder: Various fixes

* Use C++14 std::integer_sequence.
* Split ArmDecoder::Instruction into ArmInstruction and ThumbInstruction
* Make Cond, Register, ShiftType and SignExtendRotation enum classes.
* ThumbMatcher is no longer allocated on the heap.
* JitX64::CondManager now uses Cond instead of SkyEye's ConditionCode.
* Add utility functions IsArmRegValid and MakeArmRegList.

* fixup! ARM/Decoder: Misc fixes

* fixup! Common: Move SignExtend and bits into BitUtil

* fixup! arm_dyncom_interpreter

* fixup! JitState: Should be final and should have initial values

* fixup! Make JitX64::CondManager::CurrentCond() const

* fixup! JitX64: Move thumb_BLX_* variables below ArmDecoder::Visitor functions

* fixup! RegAlloc: Simplify code

* fixup! MMIO: UnmapRegion

* fixup! Tests/JitX64: Use std::generate_n and factor pass-testing into DoesBehaviorMatch

* fixup! JitX64::LocationDescriptorHash: Use static_cast

* fixup! JitX64: Default values for primitive members

* fixup! JitX64: Add const to relevant member functions, add initialisers to members of CondManager

* fixup! Jit: Remove unnecessary headers

* fixup! RunJittedCode: Remove C-style casts

* fixup! Common: Common::make_unique -> std::make_unique

* fixup! BitUtils

* fixup! JitX64: reinterpret_cast<const void* const> -> reinterpret_cast<const void*>

* fixup! static -> inline in headers, moved instruction/helper/load_store.h function bodies into .cpp file

* fixup! Move public interface of JitX64 class to the top

* fixup! Rename JitX64::UpdateFlags* so flag names are in order (N, Z, C, V)

* fixup! BitUtil: Correct error messages, independent impl of Bit, correct SignExtend logic
2016-04-16 01:49:30 +08:00
..
arm CPU JIT Part 2 (#20) 2016-04-16 01:49:30 +08:00
file_sys Merge pull request #1643 from MerryMage/make_unique 2016-04-05 20:10:11 -04:00
gdbstub Adopted WinterMute's gdbstub changes 2016-04-06 07:01:00 -04:00
hle Implement one variant of pipe 3 (#19) 2016-04-16 01:48:49 +08:00
hw Y2R: num_tiles should be allowed when its value is 128 (#1669) 2016-04-14 21:36:07 -07:00
loader Merge pull request #1643 from MerryMage/make_unique 2016-04-05 20:10:11 -04:00
tracer fix some xcode 7.0 warnings 2015-09-29 23:11:09 +02:00
CMakeLists.txt CPU JIT Part 2 (#20) 2016-04-16 01:49:30 +08:00
core_timing.cpp general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
core_timing.h Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
core.cpp Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
core.h Improve error report from Init() functions 2016-03-08 22:05:25 +01:00
memory_setup.h CPU JIT Part 2 (#20) 2016-04-16 01:49:30 +08:00
memory.cpp CPU JIT Part 2 (#20) 2016-04-16 01:49:30 +08:00
memory.h Fix broken boot introduced by last-minute change in #1025 2015-08-22 18:12:23 -03:00
mmio.h Memory: Implement MMIO 2016-01-30 18:41:04 +00:00
settings.cpp CitraQt: Apply config at startup 2016-04-11 15:18:00 +02:00
settings.h CitraQt: Apply config at startup 2016-04-11 15:18:00 +02:00
system.cpp Fix missing return 2016-03-09 22:20:08 +01:00
system.h Improve error report from Init() functions 2016-03-08 22:05:25 +01:00