summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/arch/x86/x86asm/gnu.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/arch/x86/x86asm/gnu.go')
-rw-r--r--vendor/golang.org/x/arch/x86/x86asm/gnu.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/vendor/golang.org/x/arch/x86/x86asm/gnu.go b/vendor/golang.org/x/arch/x86/x86asm/gnu.go
index 8eba1fd0c..864f32c12 100644
--- a/vendor/golang.org/x/arch/x86/x86asm/gnu.go
+++ b/vendor/golang.org/x/arch/x86/x86asm/gnu.go
@@ -667,12 +667,14 @@ func gnuArg(inst *Inst, pc uint64, symname SymLookup, x Arg, usedPrefixes *bool)
}
}
case Imm:
- if s, base := symname(uint64(x)); s != "" {
- suffix := ""
- if uint64(x) != base {
- suffix = fmt.Sprintf("%+d", uint64(x)-base)
+ if (inst.Op == MOV || inst.Op == PUSH) && inst.DataSize == 32 { // See comment in plan9x.go.
+ if s, base := symname(uint64(x)); s != "" {
+ suffix := ""
+ if uint64(x) != base {
+ suffix = fmt.Sprintf("%+d", uint64(x)-base)
+ }
+ return fmt.Sprintf("$%s%s", s, suffix)
}
- return fmt.Sprintf("$%s%s", s, suffix)
}
if inst.Mode == 32 {
return fmt.Sprintf("$%#x", uint32(x))