diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2013-02-21 22:48:33 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2013-02-21 22:48:33 -0500 |
commit | 336e937b5c24e4748b5dfd25ff82184af865442d (patch) | |
tree | 18c0dbb9bc1ffe1ad4dc906defe09247f0e6f42e | |
parent | 089aa205c3cfcfeab8469f1db61ecf60d1455a61 (diff) |
Immediate variant of bextr
-rw-r--r-- | main.c | 1 | ||||
-rw-r--r-- | simplex86.c | 4 |
2 files changed, 5 insertions, 0 deletions
@@ -183,6 +183,7 @@ main () BEGIN_ASM (frag) I_lzcnt, r12, r12, I_popcnt, r12, r12, + I_bextr, r12, r12, IMM (0xfedeabe), END_ASM (); BEGIN_ASM (frag) diff --git a/simplex86.c b/simplex86.c index 0e16380..354ed0c 100644 --- a/simplex86.c +++ b/simplex86.c @@ -750,6 +750,10 @@ static const variant_t variants[] = { I_andn, { A_R64, A_R64, A_RM64 }, F_BMI1, E_RVM, 0xf2, VEX(LZ,0x00,0x0f38,W1) }, { I_bextr, { A_R32, A_R32, A_RM32 }, F_BMI1, E_RVM, 0xf7, VEX(LZ,0x00,0x0f38,W0) }, { I_bextr, { A_R64, A_R64, A_RM64 }, F_BMI1, E_RVM, 0xf7, VEX(LZ,0x00,0x0f38,W1) }, + /* TBM variant of bextr */ + { I_bextr, { A_R32, A_R32, A_I32 }, F_TBM, E_RM, 0x10, XOP(LZ,0x00,0x0a,W0) }, + { I_bextr, { A_R64, A_R64, A_I32 }, F_TBM, E_RM, 0x10, XOP(LZ,0x00,0x0a,W1) }, + { I_blsr, { A_R32, A_RM32 }, F_BMI1, E_VM, 0xf3, VEX(LZ,0x00,0x0f38,W0) | 1 }, { I_blsr, { A_R64, A_RM64 }, F_BMI1, E_VM, 0xf3, VEX(LZ,0x00,0x0f38,W1) | 1 }, { I_blsmsk, { A_R32, A_RM32 }, F_BMI1, E_VM, 0xf3, VEX(LZ,0x00,0x0f38,W0) | 2 }, |