mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
KVM: x86: Introduce EM_ASM_2R
Replace the FASTOP2R instruction. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Sean Christopherson <seanjc@google.com> Link: https://lkml.kernel.org/r/20250714103440.024933524@infradead.org
This commit is contained in:
parent
b26deb0cad
commit
2df2b52c98
|
|
@ -326,6 +326,15 @@ static int em_##op(struct x86_emulate_ctxt *ctxt) \
|
|||
ON64(case 8: __EM_ASM_2(op##q, rax, rdx); break;) \
|
||||
EM_ASM_END
|
||||
|
||||
/* 2-operand, reversed */
|
||||
#define EM_ASM_2R(op, name) \
|
||||
EM_ASM_START(name) \
|
||||
case 1: __EM_ASM_2(op##b, dl, al); break; \
|
||||
case 2: __EM_ASM_2(op##w, dx, ax); break; \
|
||||
case 4: __EM_ASM_2(op##l, edx, eax); break; \
|
||||
ON64(case 8: __EM_ASM_2(op##q, rdx, rax); break;) \
|
||||
EM_ASM_END
|
||||
|
||||
/*
|
||||
* fastop functions have a special calling convention:
|
||||
*
|
||||
|
|
@ -1077,8 +1086,7 @@ FASTOP2W(bts);
|
|||
FASTOP2W(btr);
|
||||
FASTOP2W(btc);
|
||||
|
||||
|
||||
FASTOP2R(cmp, cmp_r);
|
||||
EM_ASM_2R(cmp, cmp_r);
|
||||
|
||||
static int em_bsf_c(struct x86_emulate_ctxt *ctxt)
|
||||
{
|
||||
|
|
@ -4336,12 +4344,12 @@ static const struct opcode opcode_table[256] = {
|
|||
I2bv(DstAcc | SrcMem | Mov | MemAbs, em_mov),
|
||||
I2bv(DstMem | SrcAcc | Mov | MemAbs | PageTable, em_mov),
|
||||
I2bv(SrcSI | DstDI | Mov | String | TwoMemOp, em_mov),
|
||||
F2bv(SrcSI | DstDI | String | NoWrite | TwoMemOp, em_cmp_r),
|
||||
I2bv(SrcSI | DstDI | String | NoWrite | TwoMemOp, em_cmp_r),
|
||||
/* 0xA8 - 0xAF */
|
||||
I2bv(DstAcc | SrcImm | NoWrite, em_test),
|
||||
I2bv(SrcAcc | DstDI | Mov | String, em_mov),
|
||||
I2bv(SrcSI | DstAcc | Mov | String, em_mov),
|
||||
F2bv(SrcAcc | DstDI | String | NoWrite, em_cmp_r),
|
||||
I2bv(SrcAcc | DstDI | String | NoWrite, em_cmp_r),
|
||||
/* 0xB0 - 0xB7 */
|
||||
X8(I(ByteOp | DstReg | SrcImm | Mov, em_mov)),
|
||||
/* 0xB8 - 0xBF */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user