Commit graph

2943 commits

Author SHA1 Message Date
Lioncash
2e2176e1c5 tests/unicorn_emu: Add getters and setters for PC/SP
Makes the interface consistent with the A64Unicorn class.
2020-04-22 20:58:09 +01:00
Lioncash
20432c1683 externals: Update Catch to 2.6.1
Keeps the unit testing library up to date.
2020-04-22 20:58:09 +01:00
Lioncash
2e180a7f14 backend/x64/a32_interface: Mark Context move constructor and move assignment as noexcept
Provides a more "correct" move constructor/assignment operator, since
these relevant functions shouldn't throw exceptions.

Has the benefit of playing nicely with std::move_if_noexcept and other
noexcept library facilities.
2020-04-22 20:58:09 +01:00
Lioncash
f4b19a7393 translate_arm/extension: Invert conditionals where applicable 2020-04-22 20:58:09 +01:00
Merry
1138ac3429 Merge pull request #428 from lioncash/unused
common: Remove address_range.h
2020-04-22 20:58:09 +01:00
Lioncash
deb9dd4acc block_of_code: Replace cast with [[maybe_unused]] in DoesCpuSupport() 2020-04-22 20:58:09 +01:00
Lioncash
c2de6ecfd0 translate_arm/exception_generating: Invert conditionals where applicable 2020-04-22 20:58:09 +01:00
Lioncash
d8a8d3b073 translate_arm/data_processing: Invert conditionals where applicable 2020-04-22 20:58:09 +01:00
Lioncash
df5c51ff47 translate_arm/branch: Invert conditionals where applicable
Allows unindenting code a bit.
2020-04-22 20:58:09 +01:00
Merry
ca3a2bab16 Merge pull request #426 from lioncash/const
frontend/{A32, A64}/ir_emitter: Mark PC() and AlignPC() as const-qualified member functions
2020-04-22 20:57:38 +01:00
Lioncash
3290a9fdc2 common: Remove address_range.h
The AddressRange structure isn't used anywhere within the codebase, so
this can be removed. Particularly because there's no real appeal/heavy
potential use of it in the future that isn't trivial to add back if
needed.
2020-04-22 20:57:38 +01:00
Merry
0489eaab69 Merge pull request #427 from lioncash/include
tests/A32/fuzz_arm: Remove unused Unix-specific include
2020-04-22 20:57:38 +01:00
Lioncash
ee973f13c7 frontend/A32/ir_emitter: Mark PC() and AlignPC() as const-qualified member functions
These don't modify instance state, so they can be const-qualified member
functions.
2020-04-22 20:57:38 +01:00
Merry
2eaf922f8b Merge pull request #423 from lioncash/catch
externals: Update catch to v2.5.0
2020-04-22 20:57:38 +01:00
Lioncash
da5dd3ff66 tests/A32/fuzz_arm: Remove unused Unix-specific include
This was introduced within 6f6f60c61b,
however, the relevant code that it was used with has since been removed,
making the include unnecessary.
2020-04-22 20:57:38 +01:00
Lioncash
3a2dd09122 frontend/A64/ir_emitter: Mark PC() and AlignPC() as const qualified member functions
These don't actually alter any instance state.
2020-04-22 20:57:38 +01:00
Merry
07759af694 Merge pull request #422 from lioncash/truncate
a32_unicorn: Silence a truncation warning within UnmappedMemoryHook()
2020-04-22 20:57:38 +01:00
Lioncash
630a54638c externals: Update catch to v2.5.0
Keeps the unit testing library up to date.
2020-04-22 20:57:38 +01:00
Merry
00277739f4 Merge pull request #421 from lioncash/comma
tests/.../vfp_helper: Amend use of the comma operator
2020-04-22 20:57:38 +01:00
Lioncash
eadc07e269 a32_unicorn: Silence a truncation warning within UnmappedMemoryHook()
MemoryRead8() takes a u32, but we were passing the result of a

u32 + size_t operation, which is 64-bit on 64-bit platforms. This
results in a truncation warning
2020-04-22 20:57:38 +01:00
Mat M
a1663d08ed Merge pull request #424 from meme/readme
Correct README (`jit` to `cpu`)
2020-04-22 20:57:38 +01:00
Lioncash
586dffb356 tests/.../vfp_helper: Amend use of the comma operator
Makes the lines of code slightly nicer to read
2020-04-22 20:57:38 +01:00
meme
81fb688eef Correct README (jit to cpu) 2020-04-22 20:57:38 +01:00
Merry
dfdca2082f Merge pull request #419 from lioncash/fold-op
constant_propagation_pass: Fold byte reversal opcodes where applicable
2020-04-22 20:57:37 +01:00
Merry
2c53f354ab Merge pull request #418 from lioncash/fold-op
constant_propagation_pass: Handle folding for Least/MostSignificant{Bit, Byte, Half, Word} opcodes
2020-04-22 20:57:37 +01:00
Lioncash
575ae852a9 constant_propagation_pass: Fold byte reversal opcodes where applicable
These are reasonably trivial to fold away when applicable. We just
perform the swap and replace the instruction with the constant value.
2020-04-22 20:57:37 +01:00
Merry
ad14a33672 Merge pull request #417 from lioncash/swap
common: Move byte swapping functions to bit_utils.h
2020-04-22 20:57:37 +01:00
Lioncash
d302d9bd0c constant_propagation_pass: Handle folding for Least/MostSignificant{Bit, Byte, Half, Word} opcodes
These are quite trivial to fold.
2020-04-22 20:57:37 +01:00
Merry
a3d640b0c1 Merge pull request #416 from lioncash/space
dynarmic_tests: Remove inconsistent spacing
2020-04-22 20:57:37 +01:00
Lioncash
7139942976 common: Move byte swapping functions to bit_utils.h
These are quite general functions, so they can just be moved into common
instead of recreating a namespace here.
2020-04-22 20:57:37 +01:00
MerryMage
7c8fcaef26 emit_x64_vector_floating_point: AVX && DN implementation of EmitFPVectorMulX 2020-04-22 20:57:37 +01:00
Merry
c06fd20b5a Merge pull request #415 from lioncash/alloc
a64_emit_x64: Convert std::vector instances in GenFastmemFallbacks() to std::array
2020-04-22 20:57:37 +01:00
Lioncash
2ce7e579d2 dynarmic_tests: Remove inconsistent spacing
Makes the changed code more consistent with the surrounding code.
2020-04-22 20:57:37 +01:00
MerryMage
e3898e628e A64: Implement FMULX (by element), single and double precision variants 2020-04-22 20:57:37 +01:00
Merry
e1a9b17366 Merge pull request #414 from lioncash/retval
fuzz_util: Simplify result return in InstructionGenerator's Generate() function
2020-04-22 20:57:37 +01:00
Lioncash
93351c7efb a64_emit_x64: Make constness of loop elements explicit within GenFastmemFallbacks() 2020-04-22 20:57:37 +01:00
MerryMage
c106d8cedf A64: Implement FMULX, vector single-precision and double-precision variant 2020-04-22 20:57:37 +01:00
Lioncash
2e62cfc89d fuzz_util: Simplify result return in InstructionGenerator's Generate() function
This can just be a simple direct return without a separated declaration
and assignment.
2020-04-22 20:57:37 +01:00
Lioncash
7752ffc50c a64_emit_x64: Convert std::vector instances in GenFastmemFallbacks() to std::array
Given these are quite small, we can avoid the need to heap allocate
here.
2020-04-22 20:57:37 +01:00
MerryMage
fa8925c4df IR: Implement FPVectorMulX 2020-04-22 20:57:37 +01:00
Michał Janiszewski
bbd8abaa25 Provide justification for always-true condition (#412) 2020-04-22 20:57:37 +01:00
Michał Janiszewski
3359572e5d Enable ninja and ccache on travis (#413)
* Use ninja, the fast build system

Make is known to be rather slow, but it's possible to generate other
build system files with CMake, so use a faster one.

* Use ccache on Travis

* Dummy commit to test ccache
2020-04-22 20:57:37 +01:00
Merry
ff7947a769 Merge pull request #411 from janisozaur/include-guards
Add missing include guards
2020-04-22 20:57:37 +01:00
Merry
8d47e7a4bc Merge pull request #409 from VPeruS/switch-optional
Switch boost::optional to std::optional
2020-04-22 20:57:37 +01:00
Michał Janiszewski
7d0e918b51 Add missing include guards 2020-04-22 20:57:37 +01:00
Merry
ffd4fe282f Merge pull request #410 from lioncash/catch
externals: Update catch to v2.4.1
2020-04-22 20:57:37 +01:00
V.Kalyuzhny
764a93bf5a Switch boost::optional to std::optional 2020-04-22 20:57:37 +01:00
Merry
85bc96a61c Merge pull request #408 from lioncash/shift
constant_propagation_pass: Add 64-bit variants of shifts to the pass
2020-04-22 20:57:37 +01:00
Lioncash
058ec4eea2 externals: Update catch to v2.4.1
Keeps the unit testing library up to date.
2020-04-22 20:57:37 +01:00
Merry
8bfaa9aac0 Merge pull request #407 from lioncash/div
constant_propagation_pass: Fold division operations where applicable
2020-04-22 20:57:37 +01:00