aboutsummaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c54
1 files changed, 28 insertions, 26 deletions
diff --git a/parse.c b/parse.c
index 33a8b66..67ac99e 100644
--- a/parse.c
+++ b/parse.c
@@ -104,116 +104,118 @@ static int needsmovabs(Imm *imm) {
} \
}
-#define OPREG(PREFIX, REX, OPCODE, REG, A1) \
+#define OPREG(REX, PREFIX, OPCODE, REG, A1) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_OPREG, .prefix = PREFIX, \
- .rex = REX, .fixedreg = REG, .opcode = OPCODE, .arg1 = internparsev(&A1) \
+ .rex = (Rex)REX, .fixedreg = REG, .opcode = OPCODE, \
+ .arg1 = internparsev(&A1) \
} \
}
-#define OPMEM(PREFIX, REX, OPCODE, REG, A1) \
+#define OPMEM(REX, PREFIX, OPCODE, REG, A1) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_OPMEM, .prefix = PREFIX, \
- .rex = REX, .fixedreg = REG, .opcode = OPCODE, .arg1 = internparsev(&A1) \
+ .rex = (Rex)REX, .fixedreg = REG, .opcode = OPCODE, \
+ .arg1 = internparsev(&A1) \
} \
}
-#define R(PREFIX, REX, OPCODE, A1) \
+#define R(REX, PREFIX, OPCODE, A1) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_R, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
} \
}
-#define IMM(PREFIX, REX, OPCODE, A1, A2) \
+#define IMM(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_IMM, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define RIMM(PREFIX, REX, OPCODE, A1, A2) \
+#define RIMM(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_RIMM, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define IMMREG(PREFIX, REX, OPCODE, IMMREG, A1, A2) \
+#define IMMREG(REX, PREFIX, OPCODE, IMMREG, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_IMMREG, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .fixedreg = IMMREG, \
+ .opcode = OPCODE, .rex = (Rex)REX, .fixedreg = IMMREG, \
.arg1 = internparsev(&A1), .arg2 = internparsev(&A2) \
} \
}
-#define IMMMEM(PREFIX, REX, OPCODE, IMMREG, A1, A2) \
+#define IMMMEM(REX, PREFIX, OPCODE, IMMREG, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_IMMMEM, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .fixedreg = IMMREG, \
+ .opcode = OPCODE, .rex = (Rex)REX, .fixedreg = IMMREG, \
.arg1 = internparsev(&A1), .arg2 = internparsev(&A2) \
} \
}
-#define REGMEM(PREFIX, REX, OPCODE, A1, A2) \
+#define REGMEM(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_REGMEM, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define MEMREG(PREFIX, REX, OPCODE, A1, A2) \
+#define MEMREG(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_MEMREG, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define REGREG(PREFIX, REX, OPCODE, A1, A2) \
+#define REGREG(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_REGREG, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define REGREG2(PREFIX, REX, OPCODE, A1, A2) \
+#define REGREG2(REX, PREFIX, OPCODE, A1, A2) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_REGREG2, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2) \
} \
}
-#define IMMREGREG2(PREFIX, REX, OPCODE, A1, A2, A3) \
+#define IMMREGREG2(REX, PREFIX, OPCODE, A1, A2, A3) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_IMMREGREG2, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2), .arg3 = internparsev(&A3) \
} \
}
-#define IMMMEMREG(PREFIX, REX, OPCODE, A1, A2, A3) \
+#define IMMMEMREG(REX, PREFIX, OPCODE, A1, A2, A3) \
(Parsev) { \
.instr = (Instr) { \
.kind = ASM_INSTR, .encoder = ENCODER_IMMMEMREG, .prefix = PREFIX, \
- .opcode = OPCODE, .rex = REX, .arg1 = internparsev(&A1), \
+ .opcode = OPCODE, .rex = (Rex)REX, .arg1 = internparsev(&A1), \
.arg2 = internparsev(&A2), .arg3 = internparsev(&A3) \
} \
}