All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: insn decoder: create artificial 3rd byte for 2-byte VEX
@ 2015-02-12 19:04 Denys Vlasenko
  2015-02-13 12:32 ` Masami Hiramatsu
  2015-02-19  0:25 ` [tip:x86/asm] x86/asm/decoder: Create " tip-bot for Denys Vlasenko
  0 siblings, 2 replies; 4+ messages in thread
From: Denys Vlasenko @ 2015-02-12 19:04 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: Denys Vlasenko, Frank Ch. Eigler, Srikar Dronamraju,
	Ananth N Mavinakayanahalli, Jim Keniston, Oleg Nesterov,
	Andi Kleen, Ingo Molnar, linux-kernel

Before this patch, users need to do this to fetch vex.vvvv:

        if (insn->vex_prefix.nbytes == 2) {
                vex_vvvv = ((insn->vex_prefix.bytes[1] >> 3) & 0xf) ^ 0xf;
        }
        if (insn->vex_prefix.nbytes == 3) {
                vex_vvvv = ((insn->vex_prefix.bytes[2] >> 3) & 0xf) ^ 0xf;
        }

Make it so that insn->vex_prefix.bytes[2] always contains vex.wvvvvLpp bits.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Jim Keniston <jkenisto@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org
---

Masami, you were ok with this patch last time it was posted.
Can you "officially" add your Acked-By?

 arch/x86/lib/insn.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
index 54fcffe..829ca4c 100644
--- a/arch/x86/lib/insn.c
+++ b/arch/x86/lib/insn.c
@@ -163,6 +163,12 @@ found:
 				/* VEX.W overrides opnd_size */
 				insn->opnd_bytes = 8;
 		} else {
+			/*
+			 * For VEX2, fake VEX3-like byte#2.
+			 * Makes it easier to decode vex.W, vex.vvvv,
+			 * vex.L and vex.pp. Masking with 0x7f sets vex.W == 0.
+			 */
+			insn->vex_prefix.bytes[2] = b2 & 0x7f;
 			insn->vex_prefix.nbytes = 2;
 			insn->next_byte += 2;
 		}
-- 
1.8.1.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-19  0:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-12 19:04 [PATCH] x86: insn decoder: create artificial 3rd byte for 2-byte VEX Denys Vlasenko
2015-02-13 12:32 ` Masami Hiramatsu
2015-02-13 14:12   ` Denys Vlasenko
2015-02-19  0:25 ` [tip:x86/asm] x86/asm/decoder: Create " tip-bot for Denys Vlasenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.