Blame SOURCES/0035-DynASM-x86-Add-BMI1-and-BMI2-instructions.patch

006bc1
From fe651bf6e2b4d02b624be3c289378c08bab2fa9b Mon Sep 17 00:00:00 2001
006bc1
From: Mike Pall <mike>
006bc1
Date: Tue, 27 Feb 2018 23:22:40 +0100
006bc1
Subject: [PATCH 35/72] DynASM/x86: Add BMI1 and BMI2 instructions.
006bc1
006bc1
Thanks to Peter Cawley.
006bc1
---
006bc1
 dynasm/dasm_x86.lua | 19 +++++++++++++++++++
006bc1
 1 file changed, 19 insertions(+)
006bc1
006bc1
diff --git a/dynasm/dasm_x86.lua b/dynasm/dasm_x86.lua
006bc1
index 4c031e2..c1d267a 100644
006bc1
--- a/dynasm/dasm_x86.lua
006bc1
+++ b/dynasm/dasm_x86.lua
006bc1
@@ -955,6 +955,7 @@ end
006bc1
 --   "u"       Use VEX encoding, vvvv unused.
006bc1
 --   "v"/"V"   Use VEX encoding, vvvv from 1st/2nd operand (the operand is
006bc1
 --             removed from the list used by future characters).
006bc1
+--   "w"       Use VEX encoding, vvvv from 3rd operand.
006bc1
 --   "L"       Force VEX.L
006bc1
 --
006bc1
 -- All of the following characters force a flush of the opcode:
006bc1
@@ -1677,6 +1678,24 @@ local map_op = {
006bc1
   -- Intel ADX
006bc1
   adcx_2 =	"rmqd:660F38F6rM",
006bc1
   adox_2 =	"rmqd:F30F38F6rM",
006bc1
+
006bc1
+  -- BMI1
006bc1
+  andn_3 =	"rrmqd:0F38VF2rM",
006bc1
+  bextr_3 =	"rmrqd:0F38wF7rM",
006bc1
+  blsi_2 =	"rmqd:0F38vF33m",
006bc1
+  blsmsk_2 =	"rmqd:0F38vF32m",
006bc1
+  blsr_2 =	"rmqd:0F38vF31m",
006bc1
+  tzcnt_2 =	"rmqdw:F30FBCrM",
006bc1
+
006bc1
+  -- BMI2
006bc1
+  bzhi_3 =	"rmrqd:0F38wF5rM",
006bc1
+  mulx_3 =	"rrmqd:F20F38VF6rM",
006bc1
+  pdep_3 =	"rrmqd:F20F38VF5rM",
006bc1
+  pext_3 =	"rrmqd:F30F38VF5rM",
006bc1
+  rorx_3 =	"rmSqd:F20F3AuF0rMS",
006bc1
+  sarx_3 =	"rmrqd:F30F38wF7rM",
006bc1
+  shrx_3 =	"rmrqd:F20F38wF7rM",
006bc1
+  shlx_3 =	"rmrqd:660F38wF7rM",
006bc1
 }
006bc1
 
006bc1
 ------------------------------------------------------------------------------
006bc1
-- 
006bc1
2.20.1
006bc1