Commit Graph

42 Commits

Author SHA1 Message Date
Dentomologist 4ccac53e9f X64EmitterTest: Check bytes instead of disassembly in JMP test
Check bytes directly to avoid ambiguity in the disassembly between short
and near jumps, which could hypothetically cause the test to pass when
it shouldn't.
2023-08-05 13:51:42 -07:00
Dentomologist dcd5ba6587 x64EmitterTest: add J/J_CC/CALL unit tests 2023-08-05 13:51:42 -07:00
Dentomologist 04fcf68176 xEmitter: Convert PrefetchLevel to enum class 2023-06-17 16:41:32 -07:00
Dentomologist 4c2759f541 XEmitter: Add enum class Jump
Replace the bool parameter force5bytes in J, JMP, and J_CC with an enum
class Jump::Short/Near. Many callers set that parameter to the literal
'true', which was unclear if you didn't already know what it did.
2023-06-12 13:04:18 -07:00
Shawn Hoffman 76b4318b88 CPUDetect: improve win/arm64 support
read brand_string on macos/arm64
remove unused flags
report family/model info instead of vendor name
2022-07-25 21:21:11 -07:00
Shawn Hoffman cad1f2735c msvc: disable optimizations for x64EmitterTest.cpp
40s -> 5s speedup
2022-04-27 15:06:04 -07:00
Pokechu22 6e5f4125e3 Use Common::ToLower and Common::ToUpper 2022-01-16 17:00:12 -08:00
Pokechu22 78bfd25964 Fix all uninitialized variable warnings (C26495) 2021-10-13 12:32:16 -07:00
Pierre Bourdon e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Tillmann Karras afb9398059 x64Emitter: remove unused x87 instructions 2021-06-28 02:56:37 +01:00
Admiral H. Curtiss 5b52b3e9cb x64Emitter: Check end of allocated space when emitting code. 2020-08-24 19:31:32 +02:00
Sintendo d5cb858165 x64Emitter: Unit test memory addressing modes
Test the behavior of OpArg::WriteRest by using MOV with the various
addressing modes (MatR, MRegSum, etc.) in the source operand.

Both the instruction and the instruction length are validated.
2020-01-13 08:43:30 +01:00
Sintendo 9fe3150358 x64EmitterTest: Test 64-bit MOV with 32-bit immediate 2019-05-29 01:04:16 +02:00
MerryMage b7b552f20a x64EmitterTest: Add some missing tests 2018-12-26 15:22:45 +00:00
Sintendo 8a93dd0105 x64EmitterTest: Fix linting issues 2018-09-16 19:52:12 +02:00
Sintendo 58a0d0f117 x64EmitterTest: test MOV with 64-bit immediates 2018-09-16 19:52:12 +02:00
Pierre Bourdon a910a4309f x64EmitterTest: fill cpu_info with 0x01 instead of 0xFF to make gcc happier 2016-06-27 01:55:42 +02:00
Pierre Bourdon 3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Tillmann Karras 439fb26b9b x64Emitter: add MOVSLDUP/MOVSHDUP 2015-08-06 10:39:43 +02:00
Matthew Parlane f32cede086 Revert "x64: build a Position-Independent Executable (PIE)" 2015-06-14 16:06:26 +12:00
flacs d3e47dfcf5 Merge pull request #2496 from Tilka/fma4
Jit64: add FMA4 support to fmaddXX
2015-06-06 17:31:55 +02:00
Tillmann Karras d4538c762f MemoryUtil: get executable pages near static data
and clean up a bit.
2015-06-03 21:44:31 +02:00
Tillmann Karras 8db6588bb9 XEmitter: add FMA4 instructions 2015-06-02 19:19:52 +02:00
Tillmann Karras cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Fiora 22317ac74c Merge pull request #2417 from Tilka/vex
XEmitter: VEX-related cleanup

I'm merging this solely because of the FMA3 error message
2015-05-18 16:23:23 -07:00
Tillmann Karras c2c31086ae XEmitter: restructure WriteVEXOp wrappers 2015-05-17 18:44:56 +02:00
yerejm e4e1fe5a9c Reset faked CPU extension support at test end to ensure test isolation. 2015-05-17 11:48:05 +10:00
Tillmann Karras 9793fed742 XEmitter: add PUNPCKLQDQ 2015-03-18 12:09:06 +01:00
Tillmann Karras b0bde31ac0 Fix include order of files outside of Source/Core 2015-03-01 14:54:22 +01:00
Tillmann Karras eb13aa43fe XEmitter: overload MOVBE() 2015-01-18 12:59:33 +01:00
Tillmann Karras 1efa9b8b72 x64Emitter: add MOVLPS/MOVHPS 2015-01-07 11:23:52 +01:00
Tillmann Karras 3daa6ab259 x64Emitter: fix MOVLPD/MOVHPD
These instructions were using the wrong prefix which turned
MOVLPD(reg, mem) into MOVDDUP(reg, mem) and made the rest of them
invalid.
2015-01-07 11:23:52 +01:00
Tillmann Karras 791d5458e5 UnitTests: add tests for bitwise AVX instructions 2014-12-06 22:28:03 +01:00
Tillmann Karras ddebdb61c4 UnitTests: fix register symbol name in AVX tests 2014-12-06 22:28:03 +01:00
Fiora 4289221584 X64Emitter: add unit test for FMA 2014-10-07 18:21:07 -07:00
Ryan Houdek 4e16abd742 Merge pull request #1083 from FioraAeterna/lzcnt
Add LZCNT support, use in cntlzw
2014-09-14 09:18:10 -05:00
Fiora 997c5c2d0e x64Emitter: add LZCNT/TZCNT support and detection
Also add a unit test.
2014-09-14 05:31:22 -07:00
Lioncash 068799ff73 UnitTests: Fix misplaced braces in the x64Emitter tests 2014-09-13 20:45:17 -04:00
Fiora 1bd8d1ee98 Add immediate tests for WriteNormalOp
also fix a bug in Bochs that was preventing adc from passing.
2014-09-13 16:39:34 -07:00
Fiora 5088a2b4e2 x64Emitter: add BMI1/BMI2 support
TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.

Also add some tests.
2014-09-03 10:04:01 -07:00
Pierre Bourdon cee71afce5 x64EmitterTest: Fake support for all CPU extensions 2014-09-03 02:26:11 +02:00
Pierre Bourdon 5b4f1fe92c UnitTests: Add tests for the x64Emitter 2014-09-02 10:17:32 +02:00