]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj: implement Dconv for TYPE_INDIR
authorRob Pike <r@golang.org>
Thu, 26 Feb 2015 18:58:48 +0000 (10:58 -0800)
committerRob Pike <r@golang.org>
Thu, 26 Feb 2015 22:03:21 +0000 (22:03 +0000)
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>
src/cmd/asm/internal/asm/operand_test.go
src/cmd/asm/internal/asm/testdata/386.out
src/cmd/internal/obj/util.go

index a02e5bfdb3c1c9456efccd7b609618ab52f16452..e1deea398510fe40dd7158bc1728e2c99819e947 100644 (file)
@@ -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)"},
index 6578f3e2b6da3d2956f747e99066456dfde7087d..59c7f89e927987a1ea026e4a166ad97faa2754ac 100644 (file)
@@ -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)
index 740f66447958dc1be5c40b257c29da7f129bd66b..4dad7904dbee067bdc853e013c1b1c06f2cdd7d7 100644 (file)
@@ -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 {