aboutsummaryrefslogtreecommitdiffhomepage
path: root/x86_64
diff options
context:
space:
mode:
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/emit.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/x86_64/emit.c b/x86_64/emit.c
index 6e832a4..3c72712 100644
--- a/x86_64/emit.c
+++ b/x86_64/emit.c
@@ -1034,6 +1034,8 @@ emitinstr(uchar **pcode, struct function *fn, struct block *blk, int curi, struc
dst = mkregoper(ins->l);
if (kisflt(cls)) {
Xsubf(pcode, cls, dst, mkimmdatregoper(ins->r));
+ } else if (!ins->reg) {
+ Xcmp(pcode, cls, mkregoper(ins->l), mkimmdatregoper(ins->r));
} else if (ins->reg-1 == dst.reg) { /* two-address */
Xsub(pcode, cls, dst, ref2oper(ins->r));
} else {