-static void emith_pass_arg(int count, ...)
-{
- va_list vl;
- int i;
-
- va_start(vl, count);
-
- for (i = 0; i < count; i++) {
- long av = va_arg(vl, long);
- int r = 7;
-
- switch (i) {
- case 0: r = xAX; break;
- case 1: r = xDX; break;
- case 2: r = xCX; break;
- }
- emith_move_r_imm(r, av);
+#define arg2reg(rd, arg) \
+ switch (arg) { \
+ case 0: rd = xAX; break; \
+ case 1: rd = xDX; break; \
+ case 2: rd = xCX; break; \