From: Cherry Zhang Date: Mon, 9 Oct 2017 19:25:51 +0000 (-0400) Subject: cmd/internal/objfile: allow disassemble amd64p32 binaries X-Git-Tag: go1.10beta1~450 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1cb86e2858d9cc76ebcb3f5abb7fcab3cbdb6ded;p=gostls13.git cmd/internal/objfile: allow disassemble amd64p32 binaries Change-Id: Ifa7701e97c0ec7d113e952b2b366edf422d6df2f Reviewed-on: https://go-review.googlesource.com/69351 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/internal/objfile/disasm.go b/src/cmd/internal/objfile/disasm.go index ede1141a3e..18cc4e6fff 100644 --- a/src/cmd/internal/objfile/disasm.go +++ b/src/cmd/internal/objfile/disasm.go @@ -243,7 +243,7 @@ func (d *Disasm) Print(w io.Writer, filter *regexp.Regexp, start, end uint64, pr fmt.Fprintf(tw, " %s:%d\t%#x\t", base(file), line, pc) } - if size%4 != 0 || d.goarch == "386" || d.goarch == "amd64" { + if size%4 != 0 || d.goarch == "386" || d.goarch == "amd64" || d.goarch == "amd64p32" { // Print instruction as bytes. fmt.Fprintf(tw, "%x", code[i:i+size]) } else { @@ -374,22 +374,24 @@ func disasm_ppc64(code []byte, pc uint64, lookup lookupFunc, byteOrder binary.By } var disasms = map[string]disasmFunc{ - "386": disasm_386, - "amd64": disasm_amd64, - "arm": disasm_arm, - "arm64": disasm_arm64, - "ppc64": disasm_ppc64, - "ppc64le": disasm_ppc64, + "386": disasm_386, + "amd64": disasm_amd64, + "amd64p32": disasm_amd64, + "arm": disasm_arm, + "arm64": disasm_arm64, + "ppc64": disasm_ppc64, + "ppc64le": disasm_ppc64, } var byteOrders = map[string]binary.ByteOrder{ - "386": binary.LittleEndian, - "amd64": binary.LittleEndian, - "arm": binary.LittleEndian, - "arm64": binary.LittleEndian, - "ppc64": binary.BigEndian, - "ppc64le": binary.LittleEndian, - "s390x": binary.BigEndian, + "386": binary.LittleEndian, + "amd64": binary.LittleEndian, + "amd64p32": binary.LittleEndian, + "arm": binary.LittleEndian, + "arm64": binary.LittleEndian, + "ppc64": binary.BigEndian, + "ppc64le": binary.LittleEndian, + "s390x": binary.BigEndian, } type Liner interface {