+#define emith_pass_arg_r(arg, reg) do { \
+ int rd = 7; \
+ host_arg2reg(rd, arg); \
+ emith_move_r_r_ptr(rd, reg); \
+} while (0)
+
+#define emith_pass_arg_imm(arg, imm) do { \
+ int rd = 7; \
+ host_arg2reg(rd, arg); \
+ emith_move_r_imm(rd, imm); \
+} while (0)
+
+#define host_instructions_updated(base, end)
+
+#ifdef __x86_64__
+
+#define PTR_SCALE 3
+#define NA_TMP_REG xAX // non-arg tmp from reg_temp[]
+
+#define EMIT_REX_IF(w, r, rm) do { \
+ int r_ = (r) > 7 ? 1 : 0; \
+ int rm_ = (rm) > 7 ? 1 : 0; \
+ if ((w) | r_ | rm_) \
+ EMIT_REX(1, r_, 0, rm_); \
+} while (0)
+
+#ifndef _WIN32
+