diff options
| -rw-r--r-- | x86_64/emit.c | 2 |
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 { |