-#define MAKE_1OP_8FLAGS_WINST(iname) static inline void iname##8(addr_t * dst, addr_t * flags) { \
+#define MAKE_1OP_8FLAGS_INST(iname) static inline void iname##8(addr_t * dst, addr_t * flags) { \
uchar_t tmp_dst = *dst; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
\
}
-#define MAKE_1OP_16FLAGS_WINST(iname) static inline void iname##16(addr_t * dst, addr_t * flags) { \
+#define MAKE_1OP_16FLAGS_INST(iname) static inline void iname##16(addr_t * dst, addr_t * flags) { \
ushort_t tmp_dst = *dst; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
\
}
-#define MAKE_1OP_32FLAGS_WINST(iname) static inline void iname##32(addr_t * dst, addr_t * flags) { \
+#define MAKE_1OP_32FLAGS_INST(iname) static inline void iname##32(addr_t * dst, addr_t * flags) { \
uint_t tmp_dst = *dst; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
\
}
-#define MAKE_1OP_64FLAGS_WINST(iname) static inline void iname##64(addr_t * dst, addr_t * flags) { \
+#define MAKE_1OP_64FLAGS_INST(iname) static inline void iname##64(addr_t * dst, addr_t * flags) { \
ullong_t tmp_dst = *dst; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
-#define MAKE_1OP_8_WINST(iname) static inline void iname##8(addr_t * dst) { \
+#define MAKE_1OP_8_INST(iname) static inline void iname##8(addr_t * dst) { \
uchar_t tmp_dst = *dst; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_1OP_16_WINST(iname) static inline void iname##16(addr_t * dst) { \
+#define MAKE_1OP_16_INST(iname) static inline void iname##16(addr_t * dst) { \
ushort_t tmp_dst = *dst; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_1OP_32_WINST(iname) static inline void iname##32(addr_t * dst) { \
+#define MAKE_1OP_32_INST(iname) static inline void iname##32(addr_t * dst) { \
uint_t tmp_dst = *dst; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_1OP_64_WINST(iname) static inline void iname##64(addr_t * dst) { \
+#define MAKE_1OP_64_INST(iname) static inline void iname##64(addr_t * dst) { \
ullong_t tmp_dst = *dst; \
\
asm volatile ( \
}
-#define MAKE_2OP_64FLAGS_WINST(iname) static inline void iname##64(addr_t * dst, addr_t * src, addr_t * flags) { \
+#define MAKE_2OP_64FLAGS_INST(iname) static inline void iname##64(addr_t * dst, addr_t * src, addr_t * flags) { \
uint64_t tmp_dst = *dst, tmp_src = *src; \
addr_t tmp_flags = *flags; \
\
-#define MAKE_2OP_32FLAGS_WINST(iname) static inline void iname##32(addr_t * dst, addr_t * src, addr_t * flags) { \
+#define MAKE_2OP_32FLAGS_INST(iname) static inline void iname##32(addr_t * dst, addr_t * src, addr_t * flags) { \
uint32_t tmp_dst = *dst, tmp_src = *src; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
}
-#define MAKE_2OP_16FLAGS_WINST(iname) static inline void iname##16(addr_t * dst, addr_t * src, addr_t * flags) { \
+#define MAKE_2OP_16FLAGS_INST(iname) static inline void iname##16(addr_t * dst, addr_t * src, addr_t * flags) { \
ushort_t tmp_dst = *dst, tmp_src = *src; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
\
}
-#define MAKE_2OP_8FLAGS_WINST(iname) static inline void iname##8(addr_t * dst, addr_t * src, addr_t * flags) { \
+#define MAKE_2OP_8FLAGS_INST(iname) static inline void iname##8(addr_t * dst, addr_t * src, addr_t * flags) { \
uchar_t tmp_dst = *dst, tmp_src = *src; \
\
/* Some of the flags values are not copied out in a pushf, we save them here */ \
-#define MAKE_2OP_64STR_WINST(iname) static inline void iname##64(addr_t * dst, \
+#define MAKE_2OP_64STR_INST(iname) static inline void iname##64(addr_t * dst, \
addr_t * src, \
addr_t * ecx, addr_t * flags) { \
/* Some of the flags values are not copied out in a pushf, we save them here */ \
}
-#define MAKE_2OP_32STR_WINST(iname) static inline void iname##32(addr_t * dst, \
+#define MAKE_2OP_32STR_INST(iname) static inline void iname##32(addr_t * dst, \
addr_t * src, \
addr_t * ecx, addr_t * flags) { \
/* Some of the flags values are not copied out in a pushf, we save them here */ \
*flags |= flags_rsvd; \
}
-#define MAKE_2OP_16STR_WINST(iname) static inline void iname##16(addr_t * dst, \
+#define MAKE_2OP_16STR_INST(iname) static inline void iname##16(addr_t * dst, \
addr_t * src, \
addr_t * ecx, addr_t * flags) { \
/* Some of the flags values are not copied out in a pushf, we save them here */ \
-#define MAKE_2OP_8STR_WINST(iname) static inline void iname##8(addr_t * dst, \
+#define MAKE_2OP_8STR_INST(iname) static inline void iname##8(addr_t * dst, \
addr_t * src, \
addr_t * ecx, addr_t * flags) { \
/* Some of the flags values are not copied out in a pushf, we save them here */ \
-#define MAKE_2OP_64_WINST(iname) static inline void iname##64(addr_t * dst, addr_t * src) { \
+#define MAKE_2OP_64_INST(iname) static inline void iname##64(addr_t * dst, addr_t * src) { \
uint32_t tmp_dst = *dst, tmp_src = *src; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_2OP_32_WINST(iname) static inline void iname##32(addr_t * dst, addr_t * src) { \
+#define MAKE_2OP_32_INST(iname) static inline void iname##32(addr_t * dst, addr_t * src) { \
uint32_t tmp_dst = *dst, tmp_src = *src; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_2OP_16_WINST(iname) static inline void iname##16(addr_t * dst, addr_t * src) { \
+#define MAKE_2OP_16_INST(iname) static inline void iname##16(addr_t * dst, addr_t * src) { \
ushort_t tmp_dst = *dst, tmp_src = *src; \
\
asm volatile ( \
*dst = tmp_dst; \
}
-#define MAKE_2OP_8_WINST(iname) static inline void iname##8(addr_t * dst, addr_t * src) { \
+#define MAKE_2OP_8_INST(iname) static inline void iname##8(addr_t * dst, addr_t * src) { \
uchar_t tmp_dst = *dst, tmp_src = *src; \
\
asm volatile ( \
+/****************************/
+/* 8 Bit instruction forms */
+/****************************/
+MAKE_2OP_8FLAGS_INST(adc);
+MAKE_2OP_8FLAGS_INST(add);
+MAKE_2OP_8FLAGS_INST(and);
+MAKE_2OP_8FLAGS_INST(or);
+MAKE_2OP_8FLAGS_INST(xor);
+MAKE_2OP_8FLAGS_INST(sub);
-MAKE_2OP_8FLAGS_WINST(adc);
-MAKE_2OP_8FLAGS_WINST(add);
-MAKE_2OP_8FLAGS_WINST(and);
-MAKE_2OP_8FLAGS_WINST(or);
-MAKE_2OP_8FLAGS_WINST(xor);
-MAKE_2OP_8FLAGS_WINST(sub);
+MAKE_1OP_8FLAGS_INST(inc);
+MAKE_1OP_8FLAGS_INST(dec);
+MAKE_1OP_8FLAGS_INST(neg);
+MAKE_1OP_8FLAGS_INST(setb);
+MAKE_1OP_8FLAGS_INST(setbe);
+MAKE_1OP_8FLAGS_INST(setl);
+MAKE_1OP_8FLAGS_INST(setle);
+MAKE_1OP_8FLAGS_INST(setnb);
+MAKE_1OP_8FLAGS_INST(setnbe);
+MAKE_1OP_8FLAGS_INST(setnl);
+MAKE_1OP_8FLAGS_INST(setnle);
+MAKE_1OP_8FLAGS_INST(setno);
+MAKE_1OP_8FLAGS_INST(setnp);
+MAKE_1OP_8FLAGS_INST(setns);
+MAKE_1OP_8FLAGS_INST(setnz);
+MAKE_1OP_8FLAGS_INST(seto);
+MAKE_1OP_8FLAGS_INST(setp);
+MAKE_1OP_8FLAGS_INST(sets);
+MAKE_1OP_8FLAGS_INST(setz);
-MAKE_1OP_8FLAGS_WINST(inc);
-MAKE_1OP_8FLAGS_WINST(dec);
-MAKE_1OP_8FLAGS_WINST(neg);
-MAKE_1OP_8FLAGS_WINST(setb);
-MAKE_1OP_8FLAGS_WINST(setbe);
-MAKE_1OP_8FLAGS_WINST(setl);
-MAKE_1OP_8FLAGS_WINST(setle);
-MAKE_1OP_8FLAGS_WINST(setnb);
-MAKE_1OP_8FLAGS_WINST(setnbe);
-MAKE_1OP_8FLAGS_WINST(setnl);
-MAKE_1OP_8FLAGS_WINST(setnle);
-MAKE_1OP_8FLAGS_WINST(setno);
-MAKE_1OP_8FLAGS_WINST(setnp);
-MAKE_1OP_8FLAGS_WINST(setns);
-MAKE_1OP_8FLAGS_WINST(setnz);
-MAKE_1OP_8FLAGS_WINST(seto);
-MAKE_1OP_8FLAGS_WINST(setp);
-MAKE_1OP_8FLAGS_WINST(sets);
-MAKE_1OP_8FLAGS_WINST(setz);
+MAKE_1OP_8_INST(not);
-MAKE_1OP_8_WINST(not);
+MAKE_2OP_8_INST(mov);
+MAKE_2OP_8_INST(xchg);
-MAKE_2OP_8_WINST(mov);
-MAKE_2OP_8_WINST(xchg);
+MAKE_2OP_8STR_INST(movs);
+/****************************/
+/* 16 Bit instruction forms */
+/****************************/
+MAKE_2OP_16FLAGS_INST(adc);
+MAKE_2OP_16FLAGS_INST(add);
+MAKE_2OP_16FLAGS_INST(and);
+MAKE_2OP_16FLAGS_INST(or);
+MAKE_2OP_16FLAGS_INST(xor);
+MAKE_2OP_16FLAGS_INST(sub);
-MAKE_2OP_16FLAGS_WINST(adc);
-MAKE_2OP_16FLAGS_WINST(add);
-MAKE_2OP_16FLAGS_WINST(and);
-MAKE_2OP_16FLAGS_WINST(or);
-MAKE_2OP_16FLAGS_WINST(xor);
-MAKE_2OP_16FLAGS_WINST(sub);
+MAKE_1OP_16FLAGS_INST(inc);
+MAKE_1OP_16FLAGS_INST(dec);
+MAKE_1OP_16FLAGS_INST(neg);
-MAKE_1OP_16FLAGS_WINST(inc);
-MAKE_1OP_16FLAGS_WINST(dec);
-MAKE_1OP_16FLAGS_WINST(neg);
+MAKE_1OP_16_INST(not);
-MAKE_1OP_16_WINST(not);
+MAKE_2OP_16_INST(mov);
+MAKE_2OP_16_INST(xchg);
-MAKE_2OP_16_WINST(mov);
-MAKE_2OP_16_WINST(xchg);
+MAKE_2OP_16STR_INST(movs);
+/****************************/
+/* 32 Bit instruction forms */
+/****************************/
+MAKE_2OP_32FLAGS_INST(adc);
+MAKE_2OP_32FLAGS_INST(add);
+MAKE_2OP_32FLAGS_INST(and);
+MAKE_2OP_32FLAGS_INST(or);
+MAKE_2OP_32FLAGS_INST(xor);
+MAKE_2OP_32FLAGS_INST(sub);
+MAKE_1OP_32FLAGS_INST(inc);
+MAKE_1OP_32FLAGS_INST(dec);
+MAKE_1OP_32FLAGS_INST(neg);
+MAKE_1OP_32_INST(not);
-MAKE_2OP_32FLAGS_WINST(adc);
-MAKE_2OP_32FLAGS_WINST(add);
-MAKE_2OP_32FLAGS_WINST(and);
-MAKE_2OP_32FLAGS_WINST(or);
-MAKE_2OP_32FLAGS_WINST(xor);
-MAKE_2OP_32FLAGS_WINST(sub);
+MAKE_2OP_32_INST(mov);
+MAKE_2OP_32_INST(xchg);
-MAKE_1OP_32FLAGS_WINST(inc);
-MAKE_1OP_32FLAGS_WINST(dec);
-MAKE_1OP_32FLAGS_WINST(neg);
-MAKE_1OP_32_WINST(not);
+MAKE_2OP_32STR_INST(movs);
-MAKE_2OP_32_WINST(mov);
-MAKE_2OP_32_WINST(xchg);
+#ifdef __V3_64BIT__
-MAKE_2OP_8STR_WINST(movs);
-MAKE_2OP_16STR_WINST(movs);
-MAKE_2OP_32STR_WINST(movs);
+/****************************/
+/* 64 Bit instruction forms */
+/****************************/
+MAKE_2OP_64FLAGS_INST(adc);
+MAKE_2OP_64FLAGS_INST(add);
+MAKE_2OP_64FLAGS_INST(and);
+MAKE_2OP_64FLAGS_INST(or);
+MAKE_2OP_64FLAGS_INST(xor);
+MAKE_2OP_64FLAGS_INST(sub);
+
+MAKE_1OP_64FLAGS_INST(inc);
+MAKE_1OP_64FLAGS_INST(dec);
+MAKE_1OP_64FLAGS_INST(neg);
+
+MAKE_1OP_64_INST(not);
+
+
+MAKE_2OP_64_INST(mov);
+
+MAKE_2OP_64_INST(xchg);
+
+
+#endif