cmd/internal/obj: implement Dconv for TYPE_INDIR
It was just missing, and apparently always was.
Change-Id: I84c057bb0ec72940201075f3e6078262fe4bce05
Reviewed-on: https://go-review.googlesource.com/6120
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/src/cmd/asm/internal/asm/operand_test.go b/src/cmd/asm/internal/asm/operand_test.go
index a02e5bf..e1deea3 100644
--- a/src/cmd/asm/internal/asm/operand_test.go
+++ b/src/cmd/asm/internal/asm/operand_test.go
@@ -244,8 +244,8 @@
{"(BP*8)", "0(BP*8)"},
{"(BX)", "(BX)"},
{"(SP)", "(SP)"},
- {"*AX", "AX"}, // TODO: Should make * illegal here; a simple alias for JMP AX.
- {"*runtimeĀ·_GetStdHandle(SB)", "type=16"}, // TODO: bizarre
+ {"*AX", "AX"}, // TODO: Should make * illegal here; a simple alias for JMP AX.
+ {"*runtimeĀ·_GetStdHandle(SB)", "*runtime._GetStdHandle(SB)"},
{"-(4+12)(DI)", "-16(DI)"},
{"-1(DI)(BX*1)", "-1(DI)(BX*1)"},
{"-96(DI)(BX*1)", "-96(DI)(BX*1)"},
diff --git a/src/cmd/asm/internal/asm/testdata/386.out b/src/cmd/asm/internal/asm/testdata/386.out
index 6578f3e..59c7f89 100644
--- a/src/cmd/asm/internal/asm/testdata/386.out
+++ b/src/cmd/asm/internal/asm/testdata/386.out
@@ -17,7 +17,7 @@
32 00017 (testdata/386.s:32) JCS ,16(PC)
35 00018 (testdata/386.s:35) CALL ,AX
36 00019 (testdata/386.s:36) JMP ,AX
-37 00020 (testdata/386.s:37) CALL ,type=16
+37 00020 (testdata/386.s:37) CALL ,*foo(SB)
38 00021 (testdata/386.s:38) JMP ,$4
39 00022 (testdata/386.s:39) JMP ,16
40 00023 (testdata/386.s:40) CALL ,foo(SB)
diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go
index 740f664..4dad790 100644
--- a/src/cmd/internal/obj/util.go
+++ b/src/cmd/internal/obj/util.go
@@ -312,6 +312,9 @@
str = fmt.Sprintf("%d(PC)", a.Offset)
}
+ case TYPE_INDIR:
+ str = fmt.Sprintf("*%s", Mconv(Rconv, a))
+
case TYPE_MEM:
str = Mconv(Rconv, a)
if a.Index != REG_NONE {