MerryMage
7707ff13e9
appveyor: Add VS2017 to CI
2017-05-22 19:43:12 +01:00
James Rowe
82e8c99a47
Link against static fmtlib instead of header only
...
When including fmtlib as a header only library in dynarmic, downstream
projects cannot include fmtlib as a static library without getting
linker errors.
2017-05-22 08:23:03 +01:00
Lioncash
c1ec5dc8a4
externals: Update catch to 1.9.4
2017-05-22 00:25:01 +01:00
MerryMage
599a613fea
Move SEL from status_register_access to misc
2017-04-25 13:57:27 +01:00
MerryMage
50bb317104
parallel: UQADD8 and UQADD16 are unpredictable when {d|n|m} == 15
2017-04-25 13:45:31 +01:00
MerryMage
7639dfea51
coprocessor: Use && instead of & with boolean arguments
2017-04-22 15:05:31 +01:00
MerryMage
2c9dcfa2db
backend_x64: Rename UnwindHandler to ExceptionHandler
2017-04-20 14:08:56 +01:00
MerryMage
0d47f50f57
block_of_code: Implement farcode
2017-04-19 18:58:36 +01:00
MerryMage
1c21ae6bcd
saturated: Implement QASX, QSAX, UQASX, UQSAX
2017-04-10 10:21:51 +01:00
MerryMage
01abb65960
travis: Build release builds on Linux
2017-04-09 11:26:20 +01:00
MerryMage
9ac890c62d
reg_alloc: Fix for LLVM's interpretation of the System V ABI
...
This aspect of the System V ABI is under-defined. LLVM choses a
different interpretation from GCC and ICC.
Most other compilers assume the callee is responsible zero-ing the
upper bits of the register if necessary. LLVM assumes the caller
has zero-extended the register.
This is a quick fix for this problem until zext-tracking is
implemented.
2017-04-08 22:12:37 +01:00
MerryMage
a5bb81a97c
backend_x64: Remove dispatch loop in Jit::Run
2017-04-08 10:04:53 +01:00
MerryMage
1b37420459
backend_x64: Simplify dispatcher
2017-04-08 09:35:45 +01:00
MerryMage
523ae542f4
microinstruction: Implement HasAssociatedPseudoOperation
2017-04-04 13:10:50 +01:00
MerryMage
c6c980dfd7
fuzz_arm: Add vsub test
2017-04-02 12:38:38 +01:00
MerryMage
4c5de3905b
emit_x64: Correct mutation of immutable in FPThreeOp{32,64}
...
operand (args[1]) was erroneously declared as non-scratch.
operand's value could be modified if FTZ was enabled.
2017-04-01 09:57:14 +01:00
MerryMage
05e97058c3
parallel: Add and Subtract with Exchange improvements
...
* Remove asx argument from PackedHalvingSubAdd{U16,S16} IR instruction
* Implement Packed{Halving,}{AddSub,SubAdd}{U16,S16} IR instructions
* Implement SASX, SSAX, UASX, USAX
2017-03-24 15:56:24 +00:00
Lynn
fd068ed6b8
Ranged cache invalidation
2017-03-20 11:58:25 +00:00
MerryMage
d9c69ad997
constant_pool: Implement a constant pool
2017-03-19 13:08:04 +00:00
Lioncash
b1b8acf16e
externals: Update catch to 1.8.2
...
Keeps the unit-testing library up to date. The previous
version of catch being used was 1.5.6, which is quite
out of date.
2017-03-14 18:53:56 +00:00
Lioncash
5a02da445a
CMakeLists: Only link LLVM libs against the library
...
LLVM library code is only used within the main dynarmic library, not the test executable.
2017-03-11 13:25:14 +00:00
Lioncash
d85137ed65
interface_x64: Amend LLVM disassembly code
...
This would previously attempt to perform pointer arithmetic on void pointers,
which would cause compilation errors.
2017-03-07 18:32:04 +00:00
Lioncash
d0efbb9348
CMakeLists: Remove unnecessary linker language specifiers
...
This is already inferred by the cmake project being declared a CXX project.
2017-03-07 18:30:58 +00:00
Lioncash
9906be746f
CMakeLists: Make boost an interface library target
...
Gets rid of the use of a non-target include and makes libraries
explicitly link against the identifier name in order to get includes.
2017-03-04 11:52:32 +00:00
MerryMage
6396bd02f0
Merge branch 'simplify-reg-alloc'
2017-02-27 00:11:52 +00:00
MerryMage
92a01b0cd8
Prefer ASSERT to DEBUG_ASSERT
2017-02-26 23:30:40 +00:00
MerryMage
135346eb2e
reg_alloc: Move implementations out of header
2017-02-26 23:30:39 +00:00
MerryMage
184db36caf
reg_alloc: Call DecrementRemainingUses in only one place
2017-02-26 23:30:38 +00:00
MerryMage
51fc9fec05
reg_alloc: Reorganize
2017-02-26 23:30:37 +00:00
MerryMage
cf93ab3d31
reg_alloc: Remove old register allocator interface
2017-02-26 23:12:26 +00:00
MerryMage
08a467bf9a
emit_x64: Port to new register allocator interface
2017-02-26 23:12:25 +00:00
Lioncash
662e07337f
CMakeLists: Don't explicitly signify dynarmic as a static lib
...
This allows a user of the library to explicitly control which kind of
library type should be built with the CMake BUILD_SHARED_LIBS flag.
By default, libraries will build as static without this specifier.
2017-02-26 23:08:49 +00:00
MerryMage
f883bad2cc
reg_alloc: New register allocation interface
2017-02-26 21:37:35 +00:00
MerryMage
13ac0c234e
reg_alloc: Differentiate between ReadLock and WriteLock
2017-02-26 21:37:34 +00:00
MerryMage
6c3df057fa
reg_alloc: Remove unused functions
2017-02-26 21:37:33 +00:00
MerryMage
1ee4c07f14
reg_alloc: Reimplement ScratchHostLocReg
2017-02-26 21:37:32 +00:00
MerryMage
640faab8a7
reg_alloc: UseHostLoc is no longer necessary
2017-02-26 21:37:30 +00:00
MerryMage
9518bbe06e
reg_alloc: Reimplement UseScratchHostLocReg
2017-02-26 21:37:29 +00:00
MerryMage
e1d8238c50
reg_alloc: Stub UseOpArg
2017-02-26 21:37:27 +00:00
MerryMage
2b078152e7
reg_alloc: Reimplement UseHostLocReg
2017-02-26 21:37:26 +00:00
MerryMage
aefe550428
reg_alloc: Remove the Def concept from register allocator internals
2017-02-26 21:37:25 +00:00
MerryMage
65cccf070e
reg_alloc: Properly encapsulate HostLocInfo
2017-02-26 21:37:24 +00:00
MerryMage
469bb6253f
backend_x64: Factor EmitExclusiveWriteMemory64 into ExclusiveWrite
2017-02-26 15:34:26 +00:00
MerryMage
d7ab1f9c64
backend_x64: Fix ABI violation in ReadMemory and WriteMemory
...
Caller-save registers were not saved before call instruction.
Refer to issue #98 .
2017-02-26 15:34:25 +00:00
MerryMage
3768174783
ir_opt: Constant propagation pass works better with a DCE just before it
2017-02-26 15:28:35 +00:00
MerryMage
157585887e
ir_opt: Simplify dead-code elimination pass
2017-02-26 15:28:34 +00:00
MerryMage
bbeea72eba
ir_opt: Remove redundant shift instructions
2017-02-26 15:28:14 +00:00
Lioncash
f9e7e85308
externals: Make catch an interface target
...
Eliminates top-level inclusion of the headers with include_directories()
and instead utilizes it on a by-target basis using target_include_directories().
2017-02-26 13:43:47 +00:00
MerryMage
2449468ede
fuzz_arm: Dump state when exception is thrown
2017-02-25 11:55:27 +00:00
MerryMage
517fe0f18e
emit_x64: WriteMemory* microinstructions do not define a value
2017-02-25 11:54:47 +00:00