MerryMage
f921242b41
JitX64: Correct ARM data processing instruction implementations
...
* Don't depend on dispatcher to align instructions that write to PC.
* Rename GetReg15Value to PC.
* Factor out ExpandArmImmediate and CompileExpandArmImmediate_C.
2016-04-14 11:49:47 +01:00
MerryMage
208795b885
fixup! BitUtil: Correct error messages, independent impl of Bit, correct SignExtend logic
2016-04-07 08:41:46 +01:00
MerryMage
9abe861152
fixup! Rename JitX64::UpdateFlags* so flag names are in order (N, Z, C, V)
2016-04-07 00:27:22 +01:00
MerryMage
bbeb7c0295
fixup! Move public interface of JitX64 class to the top
2016-04-07 00:27:20 +01:00
MerryMage
366a8c5ce9
fixup! static -> inline in headers, moved instruction/helper/load_store.h function bodies into .cpp file
2016-04-07 00:27:17 +01:00
MerryMage
c3967e798b
fixup! JitX64: reinterpret_cast<const void* const> -> reinterpret_cast<const void*>
2016-04-07 00:27:15 +01:00
MerryMage
559afdaecf
fixup! BitUtils
2016-04-07 00:27:13 +01:00
MerryMage
28d3c09df9
fixup! Common: Common::make_unique -> std::make_unique
2016-04-07 00:26:09 +01:00
MerryMage
71d1031b4c
fixup! RunJittedCode: Remove C-style casts
2016-04-07 00:02:06 +01:00
MerryMage
420d3afdf8
fixup! Jit: Remove unnecessary headers
2016-04-06 20:34:33 +01:00
MerryMage
b3a257fd8f
fixup! JitX64: Add const to relevant member functions, add initialisers to members of CondManager
2016-04-06 20:34:33 +01:00
MerryMage
eb03919c36
fixup! JitX64: Default values for primitive members
2016-04-06 20:34:33 +01:00
MerryMage
90a9e758bb
fixup! JitX64::LocationDescriptorHash: Use static_cast
2016-04-06 20:34:33 +01:00
MerryMage
d7348adbba
fixup! Tests/JitX64: Use std::generate_n and factor pass-testing into DoesBehaviorMatch
2016-04-06 20:34:33 +01:00
MerryMage
a9767d514f
fixup! MMIO: UnmapRegion
2016-04-06 20:34:33 +01:00
MerryMage
257e130572
fixup! RegAlloc: Simplify code
2016-04-06 20:34:33 +01:00
MerryMage
b5e96a5b77
fixup! JitX64: Move thumb_BLX_* variables below ArmDecoder::Visitor functions
2016-04-06 20:34:33 +01:00
MerryMage
10786333b3
fixup! Make JitX64::CondManager::CurrentCond() const
2016-04-06 20:34:33 +01:00
MerryMage
cf24142769
fixup! JitState: Should be final and should have initial values
2016-04-06 20:34:33 +01:00
MerryMage
ecb66ecdec
fixup! arm_dyncom_interpreter
2016-04-06 20:34:33 +01:00
MerryMage
6ccde4718e
fixup! Common: Move SignExtend and bits into BitUtil
2016-04-06 20:34:33 +01:00
MerryMage
ad46ecb125
fixup! ARM/Decoder: Misc fixes
2016-04-06 20:34:33 +01:00
MerryMage
9555adb4f1
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.
2016-04-06 20:34:33 +01:00
MerryMage
d9cf6474cf
JitX64: Removed old page table code
2016-04-06 20:34:33 +01:00
MerryMage
6eddd09f30
ARM/Decoder: Fill out more instructions
2016-04-06 20:34:33 +01:00
MerryMage
8ee5ba3e8f
ARM_Jit: ClearCache upon construct
2016-04-06 20:34:33 +01:00
MerryMage
a5e3874db8
JitX64: Implement exception-generating instructions
2016-04-06 20:34:33 +01:00
MerryMage
1f8217a09b
JitX64: Implement synchronisation instructions
2016-04-06 20:34:33 +01:00
MerryMage
8bd590ed99
tests/JitX64: Fix thumb tests
2016-04-06 20:34:33 +01:00
MerryMage
20d87c315a
JitX64: Load/Store: Add UNPREDICTABLE ASSERTs, correct LDR R15 behavior
2016-04-06 20:34:33 +01:00
MerryMage
32d81463cf
fixup! Fix non-MSVC builds
2016-04-06 20:34:33 +01:00
MerryMage
903d39cee5
tests/JitX64: Improve thumb instruction test coverage
2016-04-06 20:34:33 +01:00
MerryMage
089d9ddb05
JitX64: Implement SETEND
2016-04-06 20:34:33 +01:00
MerryMage
d4fc4e209a
JitX64: Implement load and store multiple
2016-04-06 20:34:33 +01:00
MerryMage
67553cf56c
JitX64: Implement load/store instructions
2016-04-06 20:34:33 +01:00
MerryMage
bef912b7ec
MMIO: UnmapRegion
2016-04-06 20:34:33 +01:00
MerryMage
5e8d1e0289
x64 ABI: Be explicit about Gen:: namespace
2016-04-06 20:34:33 +01:00
MerryMage
ec7c34ec92
JitX64: Data Processing: Implement shift-by-register (_rsr) instructions
2016-04-06 20:34:33 +01:00
MerryMage
fc1f126ec5
JitX64: Data Processing: Implement shift-by-immediate (_reg) instructions
2016-04-06 20:34:33 +01:00
MerryMage
1e57d34c0b
JitX64: Implement 32-bit thumb BL(X) instruction
2016-04-06 20:34:33 +01:00
MerryMage
c5dc3fedd5
JitX64: Implement branch instructions
2016-04-06 20:34:33 +01:00
MerryMage
578e5881cc
ARM_Disasm: Disassemble BLX
2016-04-06 20:34:33 +01:00
MerryMage
7aaef09f7d
Common: Add MathUtil::SignExtend
2016-04-06 20:34:33 +01:00
MerryMage
e3eb4c068d
tests/JitX64: Initial thumb tests
2016-04-06 20:34:33 +01:00
MerryMage
d00db8c525
fixup! tests/JitX64: Address comments
2016-04-06 20:34:33 +01:00
MerryMage
9874fae84b
fixup! Addressed comments regarding JitX64::JitX64
2016-04-06 20:34:33 +01:00
MerryMage
25201712db
fixup! JitX64/RegAlloc: Rename member functions to (Lock|Bind)ArmFor(Read|ReadWrite|Write).
2016-04-06 20:34:33 +01:00
MerryMage
67ed95cb7d
tests/JitX64: Add tests for testing data processing instructions with Rd=R15
2016-04-06 20:34:33 +01:00
MerryMage
be46235efe
tests/JitX64: Improve tests
2016-04-06 20:34:33 +01:00
MerryMage
550fef508e
JitX64/RegAlloc: Improve documentation and improve method names
2016-04-06 20:34:33 +01:00