opersize=16,
opcode=[0x90],
operands=[Operand(type="Areg", size=16, dest=None),
- Operand(type="RegNotR8", size=16, dest="Op0Add")])
+ Operand(type="Reg", size=16, dest="Op0Add")])
add_group("xchg",
suffix="w",
opersize=16,
opcode=[0x90],
- operands=[Operand(type="RegNotR8", size=16, dest="Op0Add"),
+ operands=[Operand(type="Reg", size=16, dest="Op0Add"),
Operand(type="Areg", size=16, dest=None)])
add_group("xchg",
suffix="w",
opersize=32,
opcode=[0x90],
operands=[Operand(type="Areg", size=32, dest=None),
- Operand(type="RegNotR8", size=32, dest="Op0Add")])
+ Operand(type="Reg", size=32, dest="Op0Add")])
add_group("xchg",
suffix="l",
opersize=32,
opcode=[0x90],
- operands=[Operand(type="RegNotR8", size=32, dest="Op0Add"),
+ operands=[Operand(type="Reg", size=32, dest="Op0Add"),
Operand(type="Areg", size=32, dest=None)])
add_group("xchg",
suffix="l",
opersize=64,
opcode=[0x90],
operands=[Operand(type="Areg", size=64, dest=None),
- Operand(type="RegNotR8", size=64, dest="Op0Add")])
+ Operand(type="Reg", size=64, dest="Op0Add")])
add_group("xchg",
suffix="q",
opersize=64,
opcode=[0x90],
- operands=[Operand(type="RegNotR8", size=64, dest="Op0Add"),
+ operands=[Operand(type="Reg", size=64, dest="Op0Add"),
Operand(type="Areg", size=64, dest=None)])
add_group("xchg",
suffix="q",
/* EAX memory operand only (EA) [special case for SVM skinit opcode] */
OPT_MemEAX = 26,
/* SIMDReg with value equal to operand 0 SIMDReg */
- OPT_SIMDRegMatch0 = 27,
- /* Reg with value != 8 [special case for xchg r8, rax] */
- OPT_RegNotR8 = 28
+ OPT_SIMDRegMatch0 = 27
};
enum x86_operand_size {
mismatch = 1;
break;
}
- case OPT_RegNotR8:
- if (op->type != YASM_INSN__OPERAND_REG ||
- ((op->data.reg&0xFUL) == 8))
- mismatch = 1;
- else {
- switch ((x86_expritem_reg_size)(op->data.reg&~0xFUL)) {
- case X86_REG8:
- case X86_REG8X:
- case X86_REG16:
- case X86_REG32:
- case X86_REG64:
- case X86_FPUREG:
- break;
- default:
- mismatch = 1;
- break;
- }
- }
- break;
default:
yasm_internal_error(N_("invalid operand type"));
}