359 |
*(inst)++ = 0xcc; \ |
*(inst)++ = 0xcc; \ |
360 |
} while (0) |
} while (0) |
361 |
|
|
362 |
|
#define x86_clc(inst) do { *(inst)++ =(unsigned char)0xf8; } while (0) |
363 |
#define x86_cld(inst) do { *(inst)++ =(unsigned char)0xfc; } while (0) |
#define x86_cld(inst) do { *(inst)++ =(unsigned char)0xfc; } while (0) |
364 |
#define x86_stosb(inst) do { *(inst)++ =(unsigned char)0xaa; } while (0) |
#define x86_stosb(inst) do { *(inst)++ =(unsigned char)0xaa; } while (0) |
365 |
#define x86_stosl(inst) do { *(inst)++ =(unsigned char)0xab; } while (0) |
#define x86_stosl(inst) do { *(inst)++ =(unsigned char)0xab; } while (0) |
1037 |
#define x86_widen_reg(inst,dreg,reg,is_signed,is_half) \ |
#define x86_widen_reg(inst,dreg,reg,is_signed,is_half) \ |
1038 |
do { \ |
do { \ |
1039 |
unsigned char op = 0xb6; \ |
unsigned char op = 0xb6; \ |
1040 |
g_assert (is_half || X86_IS_BYTE_REG (reg)); \ |
assert (is_half || X86_IS_BYTE_REG (reg)); \ |
1041 |
*(inst)++ = (unsigned char)0x0f; \ |
*(inst)++ = (unsigned char)0x0f; \ |
1042 |
if ((is_signed)) op += 0x08; \ |
if ((is_signed)) op += 0x08; \ |
1043 |
if ((is_half)) op += 0x01; \ |
if ((is_half)) op += 0x01; \ |
1075 |
x86_memindex_emit ((inst), (dreg), (basereg), (disp), (indexreg), (shift)); \ |
x86_memindex_emit ((inst), (dreg), (basereg), (disp), (indexreg), (shift)); \ |
1076 |
} while (0) |
} while (0) |
1077 |
|
|
1078 |
|
#define x86_lahf(inst) do { *(inst)++ = (unsigned char)0x9f; } while (0) |
1079 |
|
#define x86_sahf(inst) do { *(inst)++ = (unsigned char)0x9e; } while (0) |
1080 |
|
#define x86_xchg_ah_al(inst) \ |
1081 |
|
do { \ |
1082 |
|
*(inst)++ = (unsigned char)0x86; \ |
1083 |
|
*(inst)++ = (unsigned char)0xe0; \ |
1084 |
|
} while (0) |
1085 |
|
|
1086 |
|
|
1087 |
#define x86_cdq(inst) do { *(inst)++ = (unsigned char)0x99; } while (0) |
#define x86_cdq(inst) do { *(inst)++ = (unsigned char)0x99; } while (0) |
1088 |
#define x86_wait(inst) do { *(inst)++ = (unsigned char)0x9b; } while (0) |
#define x86_wait(inst) do { *(inst)++ = (unsigned char)0x9b; } while (0) |
1089 |
|
|
1539 |
|
|
1540 |
#define x86_set_reg(inst,cond,reg,is_signed) \ |
#define x86_set_reg(inst,cond,reg,is_signed) \ |
1541 |
do { \ |
do { \ |
1542 |
g_assert (X86_IS_BYTE_REG (reg)); \ |
assert (X86_IS_BYTE_REG (reg)); \ |
1543 |
*(inst)++ = (unsigned char)0x0f; \ |
*(inst)++ = (unsigned char)0x0f; \ |
1544 |
if ((is_signed)) \ |
if ((is_signed)) \ |
1545 |
*(inst)++ = x86_cc_signed_map [(cond)] + 0x20; \ |
*(inst)++ = x86_cc_signed_map [(cond)] + 0x20; \ |