Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/objdump: invalid disasm #7999

Closed
alexbrainman opened this issue May 15, 2014 · 2 comments
Closed

cmd/objdump: invalid disasm #7999

alexbrainman opened this issue May 15, 2014 · 2 comments
Milestone

Comments

@alexbrainman
Copy link
Member

C:\>go tool objdump -s asmstdcall %GOROOT%\bin\go.exe
TEXT runtime.asmstdcall(SB) C:/go/root/src/pkg/runtime/sys_windows_386.s
    sys_windows_386.s:10    0x46fa90    00537b      ADDL DL, 0x7b(BX)
    sys_windows_386.s:10    0x46fa93    003c9e      ADDL BH, 0(SI)(BX*4)
    sys_windows_386.s:13    0x46fa96    7b00        JNP 0x46fa98
    sys_windows_386.s:13    0x46fa98    7465        JE 0x46faff
    sys_windows_386.s:13    0x46fa9a    7874        JS 0x46fb10
    sys_windows_386.s:13    0x46fa9c    2f      ?
    sys_windows_386.s:13    0x46fa9d    7465        JE 0x46fb04
    sys_windows_386.s:16    0x46fa9f    6d      INSD DX, ES:0(DI)
    sys_windows_386.s:16    0x46faa0    706c        JO 0x46fb0e
    sys_windows_386.s:17    0x46faa2    61      ?
    sys_windows_386.s:17    0x46faa3    7465        JE 0x46fb0a
    sys_windows_386.s:18    0x46faa5    2e282a      CS SUBL CH, 0(DX)
    sys_windows_386.s:19    0x46faa8    7374        JAE 0x46fb1e
    sys_windows_386.s:20    0x46faaa    61      ?
    sys_windows_386.s:21    0x46faab    7465        JE 0x46fb12
    sys_windows_386.s:22    0x46faad    292e        SUBL BP, 0(SI)
    sys_windows_386.s:22    0x46faaf    657661      GS JBE 0x46fb13
    sys_windows_386.s:24    0x46fab2    6c      INSB DX, ES:0(DI)
    sys_windows_386.s:28    0x46fab3    55      PUSHL BP
    sys_windows_386.s:28    0x46fab4    6e      OUTSB DS:0(SI), DX
    sys_windows_386.s:29    0x46fab5    7369        JAE runtime.getlasterror(SB)
    sys_windows_386.s:32    0x46fab7    676e        OUTSB DS:0(SI), DX
    sys_windows_386.s:32    0x46fab9    6564496e    FS OUTSB FS:0(SI), DX
    sys_windows_386.s:33    0x46fabd    7465        JE 0x46fb24
    sys_windows_386.s:34    0x46fabf    67657200    GS JB 0x46fac3
    sys_windows_386.s:37    0x46fac3    0002        ADDL AL, 0(DX)
    sys_windows_386.s:37    0x46fac5    2580028302  ANDL $0x2830280, AX
    sys_windows_386.s:38    0x46faca    ff01        INCL 0(CX)
    sys_windows_386.s:40    0x46facc    01      ?
    sys_windows_386.s:40    0x46facd    8002c7      ADDL $0xc7, 0(DX)

I don't recognize the original

TEXT runtime·asmstdcall(SB),NOSPLIT,$0
    MOVL    c+0(FP), BX

    // SetLastError(0).
    MOVL    $0, 0x34(FS)

    // Copy args to the stack.
    MOVL    SP, BP
    MOVL    libcall_n(BX), CX   // words
    MOVL    CX, AX
    SALL    $2, AX
    SUBL    AX, SP          // room for args
    MOVL    SP, DI
    MOVL    libcall_args(BX), SI
    CLD
    REP; MOVSL

    // Call stdcall or cdecl function.
    // DI SI BP BX are preserved, SP is not
    CALL    libcall_fn(BX)
    MOVL    BP, SP

    // Return result.
    MOVL    c+0(FP), BX
    MOVL    AX, libcall_r1(BX)
    MOVL    DX, libcall_r2(BX)

    // GetLastError().
    MOVL    0x34(FS), AX
    MOVL    AX, libcall_err(BX)

    RET
@ianlancetaylor
Copy link
Contributor

Comment 1:

Labels changed: added repo-main, release-go1.3.

@alexbrainman
Copy link
Member Author

Comment 2:

Fixed by 263c466e5491
cmd/addr2line, cmd/objdump: fix pe text section starting address
fixes windows build
LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/97500043
C:\go\root>hg id
263c466e5491+ tip
C:\go\root>go tool objdump -s asmstdcall %GOROOT%\bin\go.exe
TEXT runtime.asmstdcall(SB) C:/go/root/src/pkg/runtime/sys_windows_386.s
    sys_windows_386.s:10    0x46fa90    8b5c2404        MOVL 0x4(SP), BX
    sys_windows_386.s:13    0x46fa94    64c7053400000000000000  FS MOVL $0x0, FS:0x34(IP)
    sys_windows_386.s:16    0x46fa9f    89e5            MOVL SP, BP
    sys_windows_386.s:17    0x46faa1    8b4b04          MOVL 0x4(BX), CX
    sys_windows_386.s:18    0x46faa4    89c8            MOVL CX, AX
    sys_windows_386.s:19    0x46faa6    c1e002          SHLL $0x2, AX
    sys_windows_386.s:20    0x46faa9    29c4            SUBL AX, SP
    sys_windows_386.s:21    0x46faab    89e7            MOVL SP, DI
    sys_windows_386.s:22    0x46faad    8b7308          MOVL 0x8(BX), SI
    sys_windows_386.s:23    0x46fab0    fc          CLD
    sys_windows_386.s:24    0x46fab1    f3a5            REP MOVSD DS:0(SI), ES:0(DI)
    sys_windows_386.s:28    0x46fab3    ff13            CALL 0(BX)
    sys_windows_386.s:29    0x46fab5    89ec            MOVL BP, SP
    sys_windows_386.s:32    0x46fab7    8b5c2404        MOVL 0x4(SP), BX
    sys_windows_386.s:33    0x46fabb    89430c          MOVL AX, 0xc(BX)
    sys_windows_386.s:34    0x46fabe    895310          MOVL DX, 0x10(BX)
    sys_windows_386.s:37    0x46fac1    648b0534000000      FS MOVL FS:0x34(IP), AX
    sys_windows_386.s:38    0x46fac8    894314          MOVL AX, 0x14(BX)
    sys_windows_386.s:40    0x46facb    c3          RET
    sys_windows_386.s:40    0x46facc    0000            ADDL AL, 0(AX)
    sys_windows_386.s:40    0x46face    0000            ADDL AL, 0(AX)
C:\go\root>

Status changed to Fixed.

@rsc rsc added this to the Go1.3 milestone Apr 14, 2015
@rsc rsc removed the release-go1.3 label Apr 14, 2015
@golang golang locked and limited conversation to collaborators Jun 25, 2016
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants