add senduipi/stui/testui/uiret

This commit is contained in:
MITSUNARI Shigeo 2023-02-20 14:03:03 +09:00
parent e78f1121b9
commit ad0dfffd29
3 changed files with 20 additions and 2 deletions

View file

@ -659,7 +659,6 @@ void put()
{ "cli", 0xFA },
{ "cmc", 0xF5 },
{ "clui", 0xF3, 0x0F, 0x01, 0xEE },
{ "cpuid", 0x0F, 0xA2 },
{ "cwd", 0x66, 0x99 },
{ "cwde", 0x98 },
@ -1868,6 +1867,10 @@ void put64()
{ "stosq", 0x48, 0xAB },
{ "syscall", 0x0F, 0x05 },
{ "sysret", 0x0F, 0x07 },
{ "clui", 0xF3, 0x0F, 0x01, 0xEE },
{ "stui", 0xF3, 0x0F, 0x01, 0xEF },
{ "testui", 0xF3, 0x0F, 0x01, 0xED },
{ "uiret", 0xF3, 0x0F, 0x01, 0xEC },
};
putGeneric(tbl, NUM_OF_ARRAY(tbl));
@ -1878,6 +1881,7 @@ void put64()
puts("void movsxd(const Reg64& reg, const Operand& op) { if (!op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION) opModRM(reg, op, op.isREG(), op.isMEM(), 0x63); }");
puts("void pextrq(const Operand& op, const Xmm& xmm, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, 0x3A); }");
puts("void pinsrq(const Xmm& xmm, const Operand& op, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, 0x3A); }");
puts("void senduipi(const Reg64& r) { db(0xF3); opModR(Reg32(6), r.cvt32(), 0x0F, 0xC7); }");
puts("void vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_ER_X | T_N8, 0x2D); }");
puts("void vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_SAE_X | T_N8, 0x2C); }");