aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2015-02-26 10:58:48 -0800
committerRob Pike <r@golang.org>2015-02-26 22:03:21 +0000
commit940f22eea2ac57f5f41848c62d6d1c82d94828ee (patch)
tree7feacf9a10ccf0e2c45952bd8539b405bb5ceaa0 /src/cmd
parentfb75f856df0c3ad5f4df861ab6ff3cab8a73a129 (diff)
downloadgo-940f22eea2ac57f5f41848c62d6d1c82d94828ee.tar.xz
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>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/asm/internal/asm/operand_test.go4
-rw-r--r--src/cmd/asm/internal/asm/testdata/386.out2
-rw-r--r--src/cmd/internal/obj/util.go3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/cmd/asm/internal/asm/operand_test.go b/src/cmd/asm/internal/asm/operand_test.go
index a02e5bfdb3..e1deea3985 100644
--- a/src/cmd/asm/internal/asm/operand_test.go
+++ b/src/cmd/asm/internal/asm/operand_test.go
@@ -244,8 +244,8 @@ var x86OperandTests = []operandTest{
{"(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 6578f3e2b6..59c7f89e92 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 740f664479..4dad7904db 100644
--- a/src/cmd/internal/obj/util.go
+++ b/src/cmd/internal/obj/util.go
@@ -312,6 +312,9 @@ func Dconv(p *Prog, Rconv func(int) string, a *Addr) string {
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 {