Merry
ecd544098b
Merge pull request #444 from lioncash/interpret
...
A64: Fall back to interpreting for FCADD and FCMLA half-precision variants
2019-03-05 18:51:50 +00:00
Lioncash
d365d4083a
A64: Fall back to interpreting for FCADD and FCMLA half-precision variants
...
Rather than straight-up treating them as undefined, we can fall back to an
interpreter in this case.
2019-03-04 12:23:57 -05:00
Lioncash
7ae37bcc64
frontend/ir/microinstruction: Add missing cases for FPRecipExponent{32,64} for ReadsFromAndWritesToFPSRCumulativeExceptionBits()
...
This was intended to be added within #437 , but was missed
2019-03-04 09:43:48 -05:00
Merry
f2fb7db668
Merge pull request #439 from lioncash/fcmla
...
A64: Implement FCADD and FCMLA
2019-03-03 14:43:22 +00:00
Merry
73e230aa3f
Merge pull request #438 from lioncash/fmulx
...
A64: Implement scalar double/single precision FMULX (by element)
2019-03-03 14:42:45 +00:00
Merry
456f2ec49f
Merge pull request #437 from lioncash/frecpx
...
A64: Implement FRECPX (single, double precision)
2019-03-03 14:42:23 +00:00
Merry
8be7648e79
Merge pull request #436 from lioncash/no-alloc
...
A64: Implement LDNP/STNP
2019-03-03 14:40:57 +00:00
Merry
4f88bf352f
Merge pull request #435 from lioncash/a32
...
tests/a32/testenv: Make A32TestEnv's code_mem member a std::vector
2019-03-03 12:59:36 +00:00
Merry
36fbe8de86
Merge pull request #434 from lioncash/format
...
A32/translate_arm: Formatting/tidying up
2019-03-03 12:58:03 +00:00
Lioncash
dae46f0132
A64: Implement FRECPX (single, double precision)
2019-03-02 23:31:30 -05:00
Lioncash
7b004e7230
frontend/ir/ir_emitter: Add opcodes for floating point reciprocal exponents
2019-03-02 23:31:30 -05:00
Lioncash
78742a6aea
common/fp/op: Add operations for floating-point reciprocal exponents
2019-03-02 23:31:26 -05:00
Lioncash
9f556b8447
A64: Implement FCMLA
2019-03-02 22:50:17 -05:00
Lioncash
0d9cca04c0
A64: Implement FCADD
2019-03-02 22:49:57 -05:00
Lioncash
ccc3d5258e
A64: Implement scalar double/single precision FMULX (by element)
2019-03-02 21:12:09 -05:00
Lioncash
fc111fda0c
A64: Implement LDNP/STNP
...
LDNP and STNP indicate that a memory access is non-temporal/streaming
(i.e. unlikely to be repeated), allowing data caching to not be
performed. However, given this is only a hint, we can treat these two
instructions as regular LDP and STP instructions for the time being.
2019-03-02 17:41:09 -05:00
Lioncash
5c11851f33
tests/a32/testenv: Make A32TestEnv's code_mem member a std::vector
...
Makes the data member consistent with the A64 test environment.
2019-03-02 16:26:37 -05:00
Merry
48cc7274c1
Merge pull request #433 from lioncash/unicorn
...
tests/unicorn_emu: Add getters and setters for PC/SP
2019-03-01 22:03:20 +00:00
Merry
468aba4ccd
Merge pull request #432 from lioncash/catch
...
externals: Update Catch to 2.6.1
2019-03-01 21:58:06 +00:00
Merry
8f4ea28988
Merge pull request #431 from lioncash/noexcept
...
backend/x64/a32_interface: Mark Context move constructor and move assignment as noexcept
2019-03-01 21:57:48 +00:00
Lioncash
02a70f3be1
translate_arm/coprocessor: Minor tidying up
2019-03-01 03:15:43 -05:00
Lioncash
c1f4241ca8
translate_arm/vfp2: Invert conditionals where applicable
2019-03-01 03:10:18 -05:00
Lioncash
797fca0125
translate_arm/synchronization: Invert conditionals where applicable
2019-03-01 02:23:24 -05:00
Lioncash
6a851dc412
translate_arm/status_register_access: Invert conditionals where applicable
2019-03-01 02:11:05 -05:00
Lioncash
18276e7c66
translate_arm/saturated: Invert conditionals where applicable
2019-03-01 02:05:30 -05:00
Lioncash
55fff7b2f6
translate_arm/reversal: Invert conditionals where applicable
2019-03-01 01:51:47 -05:00
Lioncash
a6a9fbcc48
translate_arm/parallel: Invert conditionals where applicable
2019-03-01 01:49:30 -05:00
Lioncash
b970daf983
translate_arm/packing: Invert conditionals where applicable
2019-03-01 01:23:48 -05:00
Lioncash
3b1133ad13
translate_arm/multiply: Invert conditionals where applicable
2019-03-01 01:21:00 -05:00
Lioncash
e71e560673
translate_arm/misc: Invert conditionals where applicable
2019-03-01 00:58:47 -05:00
Lioncash
83daf1c50e
translate_arm/load_store: Invert conditionals where applicable
2019-03-01 00:56:52 -05:00
Lioncash
3706f58083
translate_arm/extension: Invert conditionals where applicable
2019-03-01 00:31:46 -05:00
Lioncash
ef37cebb71
translate_arm/exception_generating: Invert conditionals where applicable
2019-03-01 00:22:45 -05:00
Lioncash
b613045b38
translate_arm/data_processing: Invert conditionals where applicable
2019-03-01 00:20:08 -05:00
Lioncash
a71a2b3b89
translate_arm/branch: Invert conditionals where applicable
...
Allows unindenting code a bit.
2019-02-28 23:35:01 -05:00
Lioncash
c63dfa7409
tests/unicorn_emu: Add getters and setters for PC/SP
...
Makes the interface consistent with the A64Unicorn class.
2019-02-28 23:12:13 -05:00
Lioncash
22c946ebcc
externals: Update Catch to 2.6.1
...
Keeps the unit testing library up to date.
2019-02-28 22:57:18 -05:00
Lioncash
82be728033
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.
2019-02-27 10:47:47 -05:00
Merry
555ae3e809
Merge pull request #430 from lioncash/unused
...
block_of_code: Replace cast with [[maybe_unused]] in DoesCpuSupport()
2019-02-23 11:37:35 +00:00
Lioncash
0be97f3ecc
block_of_code: Replace cast with [[maybe_unused]] in DoesCpuSupport()
2019-02-22 22:46:06 -05:00
Merry
767665bcef
Merge pull request #428 from lioncash/unused
...
common: Remove address_range.h
2019-02-08 21:55:22 +00:00
Lioncash
ab4b82167f
externals/xbyak: Update xbyak to 5.76
...
Keeps the external library up to date.
2019-02-08 12:58:59 -05:00
Lioncash
cc67312fed
Squashed 'externals/xbyak/' changes from 42462ef9..f72646a7
...
f72646a7 update version
4612528f format change
4b95e862 Merge branch 'shelleygoel-master'
4c262fa6 add functionality to get num of cores using x2APIC ID
bc70e7e1 recover Xbyak::CastTo
d09a230f unlink Label when LabelManager is destroyed
973e8597 update version
afdb9fe9 Xbyak::CastTo is removed
b011aca4 add RegRip +/- int
acae93cd increase max temp regs for StackFrame
ea4e3562 util::StackFrame uses push/pop instead of mov
git-subtree-dir: externals/xbyak
git-subtree-split: f72646a7c817885d7fd29abe6f1f5b50dd621ef6
2019-02-08 12:58:53 -05:00
Lioncash
18f5916e4d
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.
2019-02-08 09:41:37 -05:00
Merry
5c57df39ad
Merge pull request #426 from lioncash/const
...
frontend/{A32, A64}/ir_emitter: Mark PC() and AlignPC() as const-qualified member functions
2019-02-07 20:03:30 +00:00
Merry
f624867d5a
Merge pull request #427 from lioncash/include
...
tests/A32/fuzz_arm: Remove unused Unix-specific include
2019-02-07 20:03:17 +00:00
Lioncash
7593eadc2e
tests/A32/fuzz_arm: Remove unused Unix-specific include
...
This was introduced within 6f6f60c61b2137780102c75841441f760d3cc3fc,
however, the relevant code that it was used with has since been removed,
making the include unnecessary.
2019-02-05 20:59:24 -05:00
Lioncash
67c39ec79b
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.
2019-02-05 20:21:48 -05:00
Lioncash
539fda5350
frontend/A64/ir_emitter: Mark PC() and AlignPC() as const qualified member functions
...
These don't actually alter any instance state.
2019-02-05 20:21:44 -05:00
Annomatg
735e6c58be
Reduce Inst::NumArgs calls / opcodes: Prefer std::vector to std::map ( #425 )
...
* Don't call Inst::NumArgs in a loop conditional
* opcodes: Prefer a simple std::vector instead of a std::map
2019-02-03 20:21:14 +00:00