aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i386-asm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/i386-asm.c b/i386-asm.c
index 4b1dd8f..b18a4bc 100644
--- a/i386-asm.c
+++ b/i386-asm.c
@@ -676,10 +676,11 @@ static void asm_opcode(TCCState *s1, int opcode)
g(seg_prefix);
v = pa->opcode;
- if (v == 0x69 || v == 0x69) {
+ if ((v == 0x69 || v == 0x6b) && nb_ops == 2) {
/* kludge for imul $im, %reg */
nb_ops = 3;
ops[2] = ops[1];
+ op_type[2] = op_type[1];
} else if (v == 0xcd && ops[0].e.v == 3 && !ops[0].e.sym) {
v--; /* int $3 case */
nb_ops = 0;