MerryMage
086c92a811
constant_propagation_pass: Fold IsZero
2020-04-22 00:20:38 +01:00
MerryMage
9fa89ff83c
constant_propagation_pass: Fold shifts
2020-04-21 23:36:55 +01:00
MerryMage
dade3ad11b
A64: Specialize arithmetic shift SBFM aliases
2020-04-20 21:34:34 +01:00
MerryMage
b408dcea29
A64: Specialize sign-extension SBFM aliases
2020-04-20 20:44:55 +01:00
MerryMage
920769f82e
constant_propagation_pass: Prepare for IR matchers
2020-04-20 20:34:45 +01:00
MerryMage
54a6956d82
constant_propagation_pass: Propagate constants across commutative operations
...
e.g. (a & b) & c == a & (b & c) where b and c are constants
2020-04-20 19:34:08 +01:00
MerryMage
5fa859557a
IR: Add ReplicateBit microinstruction
2020-04-20 17:56:16 +01:00
MerryMage
a7c364cde7
externals: Update mp to 649fde1
...
Merge commit '0197a704b0988b6e27db4ec00515cdc65a02c70f'
2020-04-20 17:04:59 +01:00
MerryMage
0197a704b0
Squashed 'externals/mp/' changes from 29cb5588..649fde1e
...
649fde1e typelist: Add drop
5efe868d travis: Drop GCC 7 from CI
c3f890f1 Update to use new metavalue types
c4dd1c9b metavalue: Add some common operations
7da45c71 Remove unnecessary public keyword for struct inheritance
287d8e7e Correct typos in file headers
git-subtree-dir: externals/mp
git-subtree-split: 649fde1e814f9ce5b04d7ddeb940244d9f63cb2f
2020-04-20 17:04:59 +01:00
MerryMage
d3d77c5687
value: Add GetInstRecursive
2020-04-20 16:15:02 +01:00
MerryMage
b8013ecb18
print_info: Add optimized IR output for A64
2020-04-20 16:13:18 +01:00
MerryMage
592a3427b9
ir_opt: Add IdentityRemovalPass
2020-04-20 16:12:19 +01:00
MerryMage
0be90cd187
value: Add IsIdentity function
2020-04-20 16:11:51 +01:00
MerryMage
c5148641df
A64/decoder: Use a lookup table instead of doing a linear scan
2020-04-19 21:11:03 +01:00
MerryMage
a3cd05577c
A64: Add enable_optimizations configuration option
...
Allow library users to disable optimizations for debugging reasons.
2020-04-19 21:11:03 +01:00
MerryMage
e4b9043fcb
emit_x64_floating_point: SSE2 implementation for DenormalsAreZero
2020-04-19 14:38:38 +01:00
MerryMage
8d1699ba2d
CMakeLists: option only works for boolean settings
2020-04-18 11:40:58 +01:00
MerryMage
164ce9df7a
CMakeLists: Add DYNARMIC_FRONTENDS option
...
Allows library user to select which frontends to enable
2020-04-18 10:49:52 +01:00
MerryMage
e81c3b3b95
travis: Ensure python version is >= 3.5
2020-04-18 00:04:23 +01:00
MerryMage
39cbcf1027
A32: Detect unpredictable LDM/STM instructions
2020-04-17 23:52:24 +01:00
MerryMage
4305c7428a
emit_x64: Do not clear fast_dispatch_table unnecessarily
...
Reduces invalidation overhead
2020-04-15 22:01:10 +01:00
MerryMage
1731046efb
travis: Re-enable most tests
2020-04-15 21:42:18 +01:00
MerryMage
19050b9e1c
fuzz_with_unicorn: Add large random block testing
2020-04-15 21:42:18 +01:00
MerryMage
4420758885
a64_emit_x64: Fix location descriptor generation in GenTerminalHandlers
2020-04-15 21:42:18 +01:00
MerryMage
d3241e78ee
emit_x64_data_processing: EmitMaskedShift: Use appropriately sized immediates
2020-04-15 21:42:18 +01:00
MerryMage
bb08f764b1
exception_handler_windows: Do not attempt to call cb when cb isn't callable
2020-04-13 09:55:18 +01:00
MerryMage
938e89e7fc
backend/x64: Add fastmem support to Windows exception handler
2020-04-09 15:21:56 +01:00
MerryMage
72dab403f1
backend/x64: Add POSIX exception handler with fastmem support
2020-04-08 22:42:20 +01:00
MerryMage
e4f3a78e6f
backend/x64: Add macOS exception handler with fastmem support
2020-04-08 22:03:37 +01:00
MerryMage
f18fa7edb4
a32_emit_x64: Implement fastmem
2020-04-08 22:03:37 +01:00
MerryMage
634d6dc184
a32_emit_x64: Fully wrapped memory fallbacks
...
In the same style as the A64 backend
2020-04-08 14:49:01 +01:00
MerryMage
79490e9f24
a32_emit_x64: Use r14 for page_table pointer
2020-04-08 14:11:15 +01:00
MerryMage
45c0c3a3b4
reg_alloc: Explicitly specify GPR and XMM order
...
This allows each backend to modify what registers they want to use and their preferred orderings
2020-04-08 13:19:26 +01:00
MerryMage
e52524b203
a32_emit_x64: Make {Read,Write}Memory member functions of A32EmitX64
2020-04-08 12:59:40 +01:00
MerryMage
a59a2d7661
emit_x64_saturation: Prefer changeBit to setBit
2020-04-08 12:59:40 +01:00
MerryMage
29f2267cf9
backend/x64: Make ExceptionHandler its own class
2020-04-08 12:59:40 +01:00
MerryMage
41a2e65274
backend/x64: Rename namespace BackendX64 -> Backend::X64
2020-04-08 11:46:36 +01:00
MerryMage
0973ec8640
block_of_code: Reduce jmps in dispatcher loop
2020-04-07 19:35:36 +01:00
MerryMage
b58048a5a8
block_of_code: Always specify codeptr to run from
2020-04-06 15:55:25 +01:00
MerryMage
c24b15be64
A32: Add Step
2020-04-06 15:55:24 +01:00
MerryMage
8cbba8adf9
A64: Add Step
...
Allow for stepping instruction-by-instruction
2020-04-06 15:33:49 +01:00
MerryMage
58be30f06d
appveyor: Remove DYNARMIC_USE_SYSTEM_BOOST option
...
We no longer use this as a cmake option.
2020-04-05 23:42:47 +01:00
MerryMage
3415f47579
IR: Add masked shift IR instructions
...
Also use these in the A64 frontend to avoid the need to mask the shift amount.
2020-04-05 23:42:47 +01:00
MerryMage
42722392de
cast_util: Add FptrCast
...
Reduce unnecessary type duplication when casting a lambda to a function pointer.
2020-04-04 10:57:41 +01:00
MerryMage
254f4e3659
lut_from_list: Reduce number of required template arguments
2020-04-04 10:06:55 +01:00
MerryMage
ea0cb8ca4c
travis: Temporarily disable unicorn-related tests
2020-04-04 09:01:11 +01:00
MerryMage
6a014e3569
mp: Migrate to shared version of mp library
2020-04-04 01:30:36 +01:00
MerryMage
b6476285a6
externals: Add mp
...
Merge commit '01586664ad6a11977026a59b6a656588bd4bea16' as 'externals/mp'
2020-04-04 00:33:33 +01:00
MerryMage
01586664ad
Squashed 'externals/mp/' content from commit 29cb5588
...
git-subtree-dir: externals/mp
git-subtree-split: 29cb5588da3a18ed571a0e41622900a01b9f01eb
2020-04-04 00:32:25 +01:00
MerryMage
607dd2c95e
mp/function_info: Add parameter_count_v
2020-04-02 13:33:53 +01:00