aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2017-10-09 15:25:51 -0400
committerCherry Zhang <cherryyz@google.com>2017-11-02 14:02:34 +0000
commit1cb86e2858d9cc76ebcb3f5abb7fcab3cbdb6ded (patch)
treef85cd1b6f8facdd176477db53b7895c289807eb0 /src/cmd/internal
parent3860478b421d8be0ced439b4a307ccb60f71738f (diff)
downloadgo-1cb86e2858d9cc76ebcb3f5abb7fcab3cbdb6ded.tar.xz
cmd/internal/objfile: allow disassemble amd64p32 binaries
Change-Id: Ifa7701e97c0ec7d113e952b2b366edf422d6df2f Reviewed-on: https://go-review.googlesource.com/69351 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/internal')
-rw-r--r--src/cmd/internal/objfile/disasm.go30
1 files changed, 16 insertions, 14 deletions
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 {