aboutsummaryrefslogtreecommitdiff
path: root/src/liblink/list6.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/liblink/list6.c')
-rw-r--r--src/liblink/list6.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/liblink/list6.c b/src/liblink/list6.c
index db8b0011af..d9e0b45c7a 100644
--- a/src/liblink/list6.c
+++ b/src/liblink/list6.c
@@ -102,6 +102,11 @@ Pconv(Fmt *fp)
default:
sprint(str, "%.5lld (%L) %A %D,%D",
p->pc, p->lineno, p->as, &p->from, &p->to);
+ // TODO(rsc): This special case is for SHRQ $32, AX:DX, which encodes as
+ // SHRQ $32(DX*0), AX
+ // Remove.
+ if((p->from.type == TYPE_REG || p->from.type == TYPE_CONST) && p->from.index != REG_NONE)
+ sprint(strchr(str, 0), ":%R", p->from.index);
break;
}
bigP = nil;
@@ -195,13 +200,6 @@ Dconv(Fmt *fp)
case TYPE_CONST:
sprint(str, "$%lld", a->offset);
- // TODO(rsc): This special case is for SHRQ $32, AX:DX, which encodes as
- // SHRQ $32(DX*0), AX
- // Remove.
- if(a->index != REG_NONE) {
- sprint(s, "(%R*%d)", (int)a->index, (int)a->scale);
- strcat(str, s);
- }
break;
case TYPE_TEXTSIZE: