summaryrefslogtreecommitdiff
path: root/bcc/softop.c
diff options
context:
space:
mode:
Diffstat (limited to 'bcc/softop.c')
-rw-r--r--bcc/softop.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/bcc/softop.c b/bcc/softop.c
index e2e2b25..acb7b27 100644
--- a/bcc/softop.c
+++ b/bcc/softop.c
@@ -188,21 +188,26 @@ struct symstruct *target;
extend(target);
load(target, DREG);
-#ifndef IN_FUNC /* I8088 ? */
+#if defined(I8088)
if ((op_t) op != DIVOP && (op_t) op != MODOP )
{
load(source, DATREG1); /* CX */
switch ((op_t) op)
{
case MULOP:
- outnop2str("imul\tcx");
+ outop2str("imul\t");
+ outnregname(DATREG1);
break;
case SLOP:
- outnop2str("shl\tax,cl");
+ outop2str("shl\t");
+ outregname(DREG);
+ outnstr(",cl");
break;
case SROP:
- if (uflag) outnop2str("shr\tax,cl");
- else outnop2str("sar\tax,cl");
+ if (uflag) outop2str("shr\t");
+ else outop2str("sar\t");
+ outregname(DREG);
+ outnstr(",cl");
break;
}
}