Commit Graph

2404 Commits

Author SHA1 Message Date
Wunk
e06933f123
block_of_code: Allow Fast BMI2 paths on Zen 3 (#593)
BMI2 instructions such as `pdep` and `pext` have been
known to be incredibly slow on AMD. But on Zen3
and newer, the performance of these instructions
are now much greater, but previous versions of AMD
architectures should still avoid BMI2.

On Zen 2, pdep/pext were 300 cycles. Now on Zen 3 it is 3 cycles.
This is a big enough improvement to allow BMI2 code to
be dispatched if available. The Zen 3 architecture is checked for
by detecting the family of the processor.
2021-03-27 21:36:51 +00:00
Merry
c28f13af97 emit_x64_vector: Bugfix for EmitVectorReverseBits on AVX-512: Do not reverse bytes without vector 2021-03-27 21:32:43 +00:00
Merry
4d33feb1fa emit_x64_vector: Bugfix for EmitVectorLogicalShiftRight8: shift_amount can be >= 8 2021-03-27 21:32:07 +00:00
Merry
91337788ee emit_x64_vector: Bugfix for EmitVectorLogicalShiftLeft8: shift_amount can be >= 8 2021-03-27 21:31:51 +00:00
Merry
dc37fe6e28 emit_x64_vector: Bugfix for ArithmeticShiftRightByte: shift_amount can be >= 8 2021-03-27 21:31:22 +00:00
Lioncash
5873e6b955 thumb32: Implement LDRD (immediate) 2021-03-13 15:29:56 -05:00
Lioncash
9757e2353f thumb32: Implement LDRD (literal) 2021-03-13 15:29:56 -05:00
Lioncash
a74843ca17 thumb32: Implement STRD 2021-03-13 15:29:56 -05:00
Lioncash
258ca93c53 thumb32: Implement TBB/TBH 2021-03-13 15:29:49 -05:00
Lioncash
1d0b705996 thumb32: Implement PUSH
This can be handled as an alias for STMDB.
2021-03-12 19:54:35 -05:00
Lioncash
9cb4790428 thumb32: Implement POP
This can just be treated as an alias to LDMIA
2021-03-12 19:43:47 -05:00
Lioncash
39edee70ff thumb32: Implement LDMDB/LDMEA 2021-03-12 19:35:28 -05:00
Lioncash
ae83713f4f thumb32: Simplify existing store functions into helper function
We can also make a STM helper.
2021-03-12 19:30:29 -05:00
Lioncash
0d887d9ecd thumb32: Implement LDMIA/LDMFD 2021-03-12 19:26:03 -05:00
Lioncash
714ccf13dd thumb32: Implement STMDB/STMFD 2021-03-12 19:05:39 -05:00
Lioncash
91c4d59da9 thumb32: Implement STMIA/STMEA 2021-03-12 19:05:15 -05:00
merry
543ba4e61f
Merge pull request #589 from lioncash/adr
thumb32: Implement plain binary immediate ADR variants
2021-03-12 23:10:23 +00:00
Lioncash
85b8adeb32 thumb32: Implement plain binary immediate ADR variants
Now all the plain binary immediate instructions are implemented.
2021-03-12 18:05:41 -05:00
Lioncash
bd02d9e27f thumb32: Implement STR immediate variants 2021-03-12 14:03:40 -05:00
Lioncash
2521314384 thumb32: Implement STRH immediate variants 2021-03-12 13:55:39 -05:00
Lioncash
cbf9027278 thumb32: Implement STRB immediate variants 2021-03-12 13:33:11 -05:00
merry
2093d2b775
Merge pull request #587 from lioncash/8dot7
a64: Add v8.7 instruction additions to the decoder
2021-03-10 21:19:03 +00:00
Lioncash
035580abd2 a64: Add v8.7 instruction additions to the decoder
Adds the instructions introduced in FEAT_WFxT and FEAT_LS64/FEAT_LS64_V
in ARMv8.7
2021-03-09 18:41:20 -05:00
Lioncash
fb30922cd1 thumb32: Add supporting decoder entry for PLD (literal)
LDRH (literal)'s pseduocode indicates that cases where Rt specifies the
PC, that the instruction should be execured as if it were a PLD
instruction.

Curiously, however, within the ARM reference manual, the encodings in the case
that happens doesn't match up.

The bit pattern for LDRH (literal) has bit 21 set to 1, but the encoding
of PLD (literal) has bit 21 set to zero for it's only thumb encoding.
2021-03-09 18:16:08 -05:00
Lioncash
921998f6e9 thumb32: Implement LDRSH variants 2021-03-09 18:11:33 -05:00
Lioncash
7a9bdc8f21 thumb32: Implement LDRH variants 2021-03-09 17:12:46 -05:00
Lioncash
3d7e81e7d1 thumb32: Implement LDR variants 2021-03-09 13:12:15 -05:00
MerryMage
646fd05920 thumb32: Implement RSB (reg) 2021-03-06 19:49:44 +00:00
MerryMage
3f97cb1f9b thumb32: Implement SUB (reg) 2021-03-06 19:49:44 +00:00
MerryMage
17bdb54d30 thumb32: Implement CMP (reg) 2021-03-06 19:49:44 +00:00
MerryMage
a63271fd3b thumb32: Implement SBC (reg) 2021-03-06 19:49:44 +00:00
MerryMage
95189b78ef thumb32: Implement ADC (reg) 2021-03-06 19:49:44 +00:00
MerryMage
af33155ef8 thumb32: Implement ADD (reg) 2021-03-06 19:49:44 +00:00
MerryMage
41ac9971f4 thumb32: Implement CMN (reg) 2021-03-06 19:49:44 +00:00
MerryMage
e7ecd3a7ee thumb32: Implement PKHBT, PKHTB 2021-03-06 19:49:44 +00:00
MerryMage
d2d996e6ba thumb32: Implement EOR (reg) 2021-03-06 19:49:44 +00:00
MerryMage
158a13173c thumb32: Implement AND (reg) 2021-03-06 19:49:44 +00:00
MerryMage
c253b8fc51 thumb32: Implement TST (reg) 2021-03-06 19:49:44 +00:00
merry
ea5d8a3047
Merge pull request #584 from lioncash/loads
thumb32: Implement Thumb-2 Load Byte and Memory Hints instructions
2021-03-06 17:31:45 +00:00
MerryMage
531bb42ab5 thumb32: Implement B (T3) 2021-03-06 17:29:55 +00:00
MerryMage
86aa3f0701 thumb32: Implement B (T4) 2021-03-06 17:27:54 +00:00
Lioncash
52fdf801d0 thumb32: Implement LDRSB variants 2021-03-06 11:33:33 -05:00
Lioncash
fe892732cf thumb32: Implement LDRB variants 2021-03-06 11:06:30 -05:00
Lioncash
c66afadbc1 thumb32: Implement PLI variants 2021-03-06 09:55:29 -05:00
Lioncash
b2802aaf17 thumb32: Implement PLD variants 2021-03-06 09:36:51 -05:00
Lioncash
ee99fa69e9 thumb32: Add load source files
Places all the skeleton files in place.
2021-03-06 09:13:05 -05:00
Lioncash
47ab3a1450 CMakeLists: Add decoder .inc files
This makes them show up in IDE generators like XCode.
2021-03-05 21:00:31 -05:00
merry
f09e400858
Merge pull request #582 from lioncash/pbi
thumb32: Implement most plain binary immediate instructions
2021-03-05 23:20:58 +00:00
MerryMage
67e954a4cf thumb32_data_processing_plain_binary_immediate: Make invalid {S,U}SSAT16 decode undefined 2021-03-02 20:54:19 +00:00
MerryMage
52a9af3dca CMakeLists: Rework architecture detection
* Also only enable xybak/vixl on appropriate architectures
2021-03-02 20:41:38 +00:00
merry
3d418e9a4f
Merge pull request #583 from lioncash/str
thumb32: Implement STRB/STRH/STR (register)
2021-03-02 02:19:47 +00:00
Lioncash
2ac615b882 thumb32: Implement SSAT/USAT 2021-03-01 15:59:52 -05:00
Lioncash
5601aa554e thumb32: Implement STRB/STRH/STR (register) 2021-03-01 15:41:49 -05:00
MerryMage
170ab30b8e thumb32: Implement RSB (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
8d33de2dcc thumb32: Implement SUB (immediate, T3) 2021-02-28 21:49:14 +00:00
MerryMage
8efb2a5b05 thumb32: Implement CMP (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
78330e634f thumb32: Implement SBC (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
e6b925146b thumb32: Implement ADC (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
8f9e052c93 thumb32: Implement ADD (imm, T3) 2021-02-28 21:49:14 +00:00
MerryMage
30442ee1f4 thumb32: Implement CMN (immediate) 2021-02-28 21:49:14 +00:00
merry
421548ceef
Merge pull request #581 from lioncash/8dot6
a64: Add v8.6 instruction encoding additions
2021-02-27 21:54:08 +00:00
Lioncash
385f907463 a64: Add v8.6 instruction encoding additions
Keeps the instruction listing up to date.
2021-02-27 16:25:13 -05:00
Lioncash
9d5505422f thumb32: Implement ADD/SUB (imm 2) 2021-02-25 09:56:05 -05:00
Lioncash
68885fdb3c thumb32: Implement SBFX/UBFX 2021-02-25 09:37:15 -05:00
Lioncash
7334914047 thumb32: Implement BFC/BFI 2021-02-25 09:27:05 -05:00
Lioncash
ba7cbe7cf6 thumb32: Implement SSAT16/USAT16 2021-02-25 09:13:46 -05:00
Lioncash
725d712c88 thumb32: Simplify register shift implementations to common function 2021-02-23 04:53:50 -05:00
Lioncash
a7a9ed69b7 thumb32: Implement ROR (register) 2021-02-23 04:52:29 -05:00
Lioncash
abf3548b2a thumb32: Implement ASR (register) 2021-02-23 04:43:11 -05:00
Lioncash
e06d4bcbb2 thumb32: Implement LSR (register) 2021-02-23 04:40:43 -05:00
Lioncash
fdd379a36c thumb32: Implement LSL (register) 2021-02-23 04:40:40 -05:00
merry
ac32175eff
Merge pull request #579 from lioncash/bxj
thumb32: Implement BXJ
2021-02-22 15:01:08 +00:00
Lioncash
89838c5ce4 thumb32: Implement BXJ
We handle this as a regular BX call, given we don't support Jazelle.
2021-02-22 07:45:21 -05:00
Lioncash
de8e977bb1 thumb32: Implement SEVL 2021-02-22 07:34:42 -05:00
Lioncash
a4c9ec645f thumb32: Implement SEV 2021-02-22 07:34:42 -05:00
Lioncash
565a20b096 thumb32: Implement WFI 2021-02-22 07:34:42 -05:00
Lioncash
3dc33c1257 thumb32: Implement WFE 2021-02-22 07:34:42 -05:00
Lioncash
48fe7afe72 thumb32: Implement YIELD 2021-02-22 07:34:42 -05:00
Lioncash
a73ea9e111 thumb32: Implement NOP 2021-02-22 07:34:39 -05:00
MerryMage
29d7cbd899 thumb32: Ensure CPSR.IT state is always up to date 2021-02-22 00:27:16 +00:00
MerryMage
f5dd7122a2 EmitFPVectorMulAdd: Correct optimization flag (Unsafe_UnfuseFMA -> Unsafe_InaccurateNaN) 2021-02-21 21:30:20 +00:00
merry
75f4978da5
Merge pull request #577 from lioncash/barrier
thumb32: Implement barrier instructions and CLREX
2021-02-19 22:51:13 +00:00
Lioncash
3890590b4f thumb32: Implement CLREX 2021-02-19 00:02:57 -05:00
Lioncash
5543e4f9eb thumb32: Implement ISB 2021-02-19 00:01:24 -05:00
Lioncash
085147b5a4 thumb32: Implement DMB 2021-02-18 23:59:34 -05:00
Lioncash
368a8630e0 thumb32: Implement DSB 2021-02-18 23:58:12 -05:00
Lioncash
5602db88f4 thumb32: Implement MOVW 2021-02-18 23:52:06 -05:00
Lioncash
d05c706ff4 thumb32: Implement MOVT 2021-02-18 23:52:03 -05:00
MerryMage
f568687bd9 thumb32: Implement EOR (immediate) 2021-02-18 20:51:13 +00:00
MerryMage
8fd7ec3989 thumb32: Implement TEQ (immediate) 2021-02-18 20:49:06 +00:00
MerryMage
efbc8cef53 thumb32: Implement ORN (immediate) 2021-02-18 20:48:55 +00:00
MerryMage
08f046036c thumb32: Implement MVN (immediate) 2021-02-18 20:19:45 +00:00
MerryMage
cafa687684 thumb32: Implement ORR (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
b2f0575fee thumb32: Implement MOV (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
3dcc882fbf thumb32: Implement BIC (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
6f3c5dc1d9 thumb32: Implement AND (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
5bf676d93e thumb32: Implement TST (immediate) 2021-02-18 01:05:45 +00:00
Sunho Kim
069beb5228 A32: Add ThumbExpandImm and ThumbExpandImm_C
These are used by many thumb2 instructions
2021-02-17 23:45:51 +00:00
sunho
43a1a523f6 A32: Fix thumb32 BL and BLX
More fields required
2021-02-17 23:18:05 +00:00
MerryMage
df027a7998 thumb32: Split thumb32 file into branch and control 2021-02-17 23:18:05 +00:00
merry
6f54c9d0b6
Merge pull request #562 from emuplz/a64_ic_instructions
A64 IC Instructions
2021-02-17 21:51:58 +00:00
emuplz
6d4333c78e fixed data + instruction cache callbacks (w/ tests) 2021-02-17 20:38:08 +00:00
rufi
77621a8448 implemented other ic instructions 2021-02-17 20:38:08 +00:00
emuplz
8728444af8 added support for instruction ic ivau 2021-02-17 20:38:06 +00:00
Lioncash
e0d6b60270 thumb32: Implement UXTAB 2021-02-10 16:23:54 -05:00
Lioncash
d97369c252 thumb32: Implement UXTB 2021-02-10 16:22:22 -05:00
Lioncash
ad5d0d7b77 thumb32: Implement SXTAB 2021-02-10 16:20:43 -05:00
Lioncash
75a28b00a7 thumb32: Implement SXTB 2021-02-10 16:18:26 -05:00
Lioncash
3cefdc3ab9 thumb32: Implement UXTAB16 2021-02-10 16:16:56 -05:00
Lioncash
eec16eea45 thumb32: Implement UXTB16 2021-02-10 16:15:28 -05:00
Lioncash
6733cdd706 thumb32: Implement SXTAB16 2021-02-10 16:13:34 -05:00
Lioncash
1b5fcfd8d1 thumb32: Implement SXTB16 2021-02-10 16:11:09 -05:00
Lioncash
39a75472e2 thumb32: Implement UXTAH 2021-02-10 16:09:37 -05:00
Lioncash
e12ee8d4d7 thumb32: Implement UXTH 2021-02-10 16:07:17 -05:00
Lioncash
c0871d4c18 thumb32: Implement SXTAH 2021-02-10 16:04:33 -05:00
Lioncash
273125e0b1 thumb32: Implement SXTH 2021-02-10 15:58:36 -05:00
merry
fe761b2c61
Merge pull request #574 from lioncash/multiply2
thumb32: Implement long multiply and divide instructions
2021-02-09 20:37:16 +00:00
Lioncash
8cd91a84d0 thumb32: Implement SDIV/UDIV 2021-02-07 17:53:34 -05:00
Lioncash
fb1405157b thumb32: Implement UMAAL 2021-02-07 17:45:00 -05:00
Lioncash
f9bbc25e29 thumb32: Implement SMLSLD{X} 2021-02-07 17:42:44 -05:00
Lioncash
fe3deb1831 thumb32: Implement SMLALD{X} 2021-02-07 17:40:36 -05:00
Lioncash
87cb771bd2 thumb32: Implement SMLALXY 2021-02-07 17:37:26 -05:00
Lioncash
8320c56a6e thumb32: Implement UMLAL 2021-02-07 17:34:05 -05:00
Lioncash
5859105a61 thumb32: Implement SMLAL 2021-02-07 17:32:11 -05:00
Lioncash
28108c7924 thumb32: Implement UMULL 2021-02-07 17:29:20 -05:00
Lioncash
6cf47e0ce0 thumb32: Implement SMULL 2021-02-07 17:22:43 -05:00
merry
7290ae1273
Merge pull request #573 from lioncash/multiply2
thumb32: Implement the rest of the thumb-2 multiply category instructions
2021-02-07 21:04:42 +00:00
MerryMage
f77b0e2fbe A32/thumb16: Implement IT instruction 2021-02-07 20:41:48 +00:00
MerryMage
97d8b50c25 A32: Ensure existing thumb code is ITState-correct 2021-02-07 20:41:48 +00:00
MerryMage
68bd9547c5 fuzz_arm: Correctly print thumb instruction listing 2021-02-07 20:41:48 +00:00
MerryMage
62003a2d89 A32/ir_emitter: Implement UpdateUpperLocationDescriptor 2021-02-07 20:41:48 +00:00
MerryMage
f229a68aed a32_emit_x64: Update upper_location_descriptor in BXWritePC based on final location 2021-02-07 20:41:48 +00:00
MerryMage
714b0b9a8b A32/translate: Factor conditional state handling out 2021-02-07 20:41:48 +00:00
Lioncash
b58cd3a996 thumb32: Implement SMLAWY 2021-02-07 13:34:56 -05:00
Lioncash
96895d2eb5 thumb32: Implement SMULWY 2021-02-07 13:32:39 -05:00
Lioncash
8a22bdff43 thumb32: Implement SMLSD{X} 2021-02-07 13:29:20 -05:00
Lioncash
ef3b77f8ae thumb32: Implement SMLAD{X} 2021-02-07 13:26:53 -05:00
Lioncash
53f1a52be9 thumb32: Implement SMMLS{R} 2021-02-07 13:23:21 -05:00
Lioncash
0c542777b0 thumb32: Implement SMMLA{R} 2021-02-07 13:14:47 -05:00
Lioncash
b6add0ddf4 thumb32: Implement SMMUL{R} 2021-02-07 13:11:25 -05:00
Lioncash
44f4f437a7 thumb32: Implement SMUSD 2021-02-07 13:07:38 -05:00
Lioncash
4d9a7308ac thumb32: Implement SMUAD 2021-02-07 13:04:18 -05:00
Lioncash
1e06231575 thumb32: Implement SMLAXY 2021-02-07 12:39:12 -05:00
Lioncash
1cd10e3214 thumb32: Implement SMULXY 2021-02-07 12:27:40 -05:00
MerryMage
1e29ef8b0e A32/location_descriptor: Implement SetIT 2021-02-07 14:18:03 +00:00
MerryMage
5e75bd41a4 ITState: Handle not-in-IT-block case in Cond 2021-02-07 14:17:46 +00:00
MerryMage
946dbb5818 ITSTate: Correct ITState::Advance 2021-02-07 13:21:45 +00:00
MerryMage
1c5f6882f0 A32/translate_thumb: Correct IsThumb16 2021-02-07 12:18:45 +00:00
MerryMage
7e5ae6076a A32: Add arch_version option 2021-02-07 12:13:14 +00:00
Lioncash
50d81f95e5 thumb32: Implement USADA8 2021-02-07 09:57:34 +00:00
Lioncash
ed453aa52d thumb32: Implement USAD8 2021-02-07 09:57:34 +00:00
Lioncash
b07fab604f thumb32: Implement MLS 2021-02-07 09:57:34 +00:00
Lioncash
cf5058bccb thumb32: Implement MLA 2021-02-07 09:57:34 +00:00
Lioncash
153d87c843 thumb32: Implement MUL 2021-02-07 09:57:34 +00:00
MerryMage
8b612edb75 translate_thumb: Fix bug in TranslateSingleThumbInstruction 2021-02-06 21:26:44 +00:00
MerryMage
aa89418e8b bit_util: Add SwapHalves32 2021-02-06 21:26:44 +00:00
MerryMage
fa1b9545fd bit_util: Rename Swap{16,32,64} to SwapBytes{16,32,64} 2021-02-06 21:26:44 +00:00
MerryMage
39644d69ee A32/decode: Split thumb32 2021-02-06 21:26:42 +00:00
MerryMage
6d0a049fb2 A32/decode: Split thumb16 2021-02-06 21:25:24 +00:00
MerryMage
ac9e1ccb1c A32/thumb16: Fix bug in CBZ/CBNZ 2021-02-06 21:25:24 +00:00
Lioncash
23619c8c6a thumb32: Implement SHSUB8/UHSUB8 2021-02-01 17:50:46 -05:00
Lioncash
9d2570470e thumb32: Implement SHADD8/UHADD8 2021-02-01 17:50:46 -05:00
Lioncash
afad76078d thumb32: Implement SHSUB16/UHSUB16 2021-02-01 17:50:46 -05:00
Lioncash
51b7c32d02 thumb32: Implement SHSAX/UHSAX 2021-02-01 17:50:46 -05:00
Lioncash
f0a219fcd0 thumb32: Implement SHASX/UHASX 2021-02-01 17:50:46 -05:00
Lioncash
94f8efbb03 thumb32: Implement SHADD16/UHADD16 2021-02-01 17:50:46 -05:00
Lioncash
aa49b0db89 thumb32: Implement QSUB8/UQSUB8 2021-02-01 17:50:46 -05:00
Lioncash
874ab6a7b6 thumb32: Implement QADD8/UQADD8 2021-02-01 17:50:46 -05:00
Lioncash
d923fb24c6 thumb32: Implement QSUB16/UQSUB16 2021-02-01 17:50:46 -05:00
Lioncash
416fe26df0 thumb32: Implement QSAX/UQSAX 2021-02-01 17:50:14 -05:00
Lioncash
ad7c8bd042 thumb32: Implement QASX/UQASX 2021-02-01 17:31:30 -05:00
Lioncash
f52b8f924c thumb32: Implement QADD16/UQADD16 2021-02-01 17:31:30 -05:00
Lioncash
6f593da41b thumb32: Implement SSUB8/USUB8 2021-02-01 17:31:27 -05:00
Lioncash
271354ee95 thumb32: Implement SADD8/UADD8 2021-02-01 16:44:11 -05:00
Lioncash
8f42fd5c0e thumb32: Implement SSUB16/USUB16 2021-02-01 16:41:02 -05:00
Lioncash
0e28c63456 thumb32: Implement SSAX/USAX 2021-02-01 16:36:18 -05:00
Lioncash
21e404d3ab thumb32: Implement SASX/UASX 2021-02-01 16:31:25 -05:00
Lioncash
d529417875 thumb32: Implement SADD16/UADD16 2021-02-01 16:19:33 -05:00
merry
0e26e8a531
Merge pull request #569 from lioncash/t32-misc
thumb32: Implement miscellaneous category instructions
2021-02-01 21:06:36 +00:00
Lioncash
36fc596a51 thumb32: Implement QADD 2021-02-01 15:44:09 -05:00
Lioncash
cd6e4c7afd thumb32: Implement QSUB 2021-02-01 15:42:14 -05:00
Lioncash
65365ad2a3 thumb32: Implement QDADD 2021-02-01 15:39:39 -05:00
Lioncash
d96c8c662b thumb32: Implement QDSUB 2021-02-01 15:35:09 -05:00
Lioncash
c60cf921ee thumb32: Implement REV 2021-02-01 15:30:40 -05:00
Lioncash
0304dc7ce4 thumb32: Implement REV16 2021-02-01 15:27:31 -05:00
Lioncash
cee31c5274 thumb32: Implement RBIT 2021-02-01 15:20:24 -05:00
Lioncash
e2bc7eeb93 thumb32: Implement REVSH 2021-02-01 15:16:53 -05:00
MerryMage
e01583abba A64/system: Reorder fields of SystemRegisterEncoding
Matches manual, which allows for easier verification of correctness.
2021-02-01 20:01:39 +00:00
Lioncash
1ad99bb9b5 thumb32: Implement SEL 2021-02-01 15:01:21 -05:00
Lioncash
8d53048750 thumb32: Implement CLZ
Also fleshes out the generator to allow for generating thumb32
instructions as well.
2021-02-01 14:54:04 -05:00
MerryMage
f2345c1590 A64/system: Implement MSR/MRS for NZCV 2021-02-01 19:52:49 +00:00
bunnei
de389968eb A32: Add hook_isb option. 2021-01-28 20:47:39 -08:00
MerryMage
0f27368fda A64: Add hook_isb option 2021-01-26 23:41:21 +00:00
MerryMage
3806284cbe emit_x64{,_vector}_floating_point: Fix non-FMA execution
Avoid repeated calls to GetArgumentInfo
2021-01-02 20:40:32 +00:00
MerryMage
6023bcd8ad emit_x64_data_processing: Fix signed/unsigned warning 2021-01-02 20:12:48 +00:00
MerryMage
c15917b350 backend/x64: Add further Unsafe_InaccurateNaN locations 2021-01-02 20:12:48 +00:00
MerryMage
f9ccf91b94 Add Unsafe_InaccurateNaN optimization to all fma instructions 2021-01-02 17:22:50 +00:00
MerryMage
8c4463a0c1 emit_x64_data_processing: EmitSub: Use cmp where possible 2021-01-01 19:37:47 +00:00
MerryMage
e926f0b393 emit_x64_data_processing: Minor optimization for immediates in EmitSub 2021-01-01 13:35:01 +00:00
MerryMage
eeeafaf5fb Introduce Unsafe_InaccurateNaN 2021-01-01 07:18:05 +00:00