13 { &al, ax, eax, rax },
17 { &sil,
si,
esi, rsi },
18 { &dil,
di,
edi, rdi },
19 { &bpl,
bp,
ebp, rbp },
20 { &spl,
sp,
esp, rsp },
21 { &r8b, r8w, r8d, r8 },
22 { &r9b, r9w, r9d, r9 },
23 { &r10b, r10w, r10d, r10 },
24 { &r11b, r11w, r11d, r11 },
25 { &r12b, r12w, r12d, r12 },
26 { &r13b, r13w, r13d, r13 },
27 { &r14b, r14w, r14d, r14 },
28 { &r15b, r15w, r15d, r15 },
54 printf(
"ERR %s %s\n", x.toString(), y.toString());
60#define verifyExp(state) \
65 } catch (const Xbyak::Error& e) { \
66 if ((int)e == ERR_CANT_CONVERT) { \
71 printf("ERR " #state "\n"); \
80 for (
size_t i = 0; i <
sizeof(
tbl) /
sizeof(
tbl[0]); i++) {
105 const Reg8 errTbl[] = {
108 for (
size_t i = 0; i <
sizeof(errTbl) /
sizeof(errTbl[0]); i++) {
114 const Reg16 errTbl[] = {
117 for (
size_t i = 0; i <
sizeof(errTbl) /
sizeof(errTbl[0]); i++) {
123}
catch (std::exception& e) {
124 printf(
"ERR %s\n", e.what());
void verify(const T &x, const T &y)
LOGGING_API void printf(Category category, const char *format,...)
static const Reg8 dl(Operand::DL)
static const Reg32 ebp(Operand::EBP)
static const Reg8 ch(Operand::CH)
static const Reg32 esp(Operand::ESP)
static const Reg16 dx(Operand::DX)
static const Reg8 ah(Operand::AH)
static const Reg32 ecx(Operand::ECX)
static const Reg32 edi(Operand::EDI)
static const Reg32 edx(Operand::EDX)
static const Reg16 di(Operand::DI)
static const Reg16 si(Operand::SI)
static const Reg8 dh(Operand::DH)
static const Reg16 sp(Operand::SP)
static const Reg8 bh(Operand::BH)
static const Reg16 bp(Operand::BP)
static const Reg16 cx(Operand::CX)
static const Reg32 ebx(Operand::EBX)
static const Reg8 bl(Operand::BL)
static const Reg8 cl(Operand::CL)
static const Reg16 bx(Operand::BX)
static const Reg32 esi(Operand::ESI)
#define T(meth, val, expected)
Xbyak ; JIT assembler for x86(IA32)/x64 by C++.