处理AI胡乱生成的乱摊子
This commit is contained in:
14
vendor/golang.org/x/arch/x86/x86asm/gnu.go
generated
vendored
14
vendor/golang.org/x/arch/x86/x86asm/gnu.go
generated
vendored
@@ -10,7 +10,7 @@ import (
|
||||
)
|
||||
|
||||
// GNUSyntax returns the GNU assembler syntax for the instruction, as defined by GNU binutils.
|
||||
// This general form is often called ``AT&T syntax'' as a reference to AT&T System V Unix.
|
||||
// This general form is often called “AT&T syntax” as a reference to AT&T System V Unix.
|
||||
func GNUSyntax(inst Inst, pc uint64, symname SymLookup) string {
|
||||
// Rewrite instruction to mimic GNU peculiarities.
|
||||
// Note that inst has been passed by value and contains
|
||||
@@ -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))
|
||||
|
||||
2
vendor/golang.org/x/arch/x86/x86asm/inst.go
generated
vendored
2
vendor/golang.org/x/arch/x86/x86asm/inst.go
generated
vendored
@@ -144,7 +144,7 @@ type Arg interface {
|
||||
// the interface value instead of requiring an allocation.
|
||||
|
||||
// A Reg is a single register.
|
||||
// The zero Reg value has no name but indicates ``no register.''
|
||||
// The zero Reg value has no name but indicates “no register.”
|
||||
type Reg uint8
|
||||
|
||||
const (
|
||||
|
||||
12
vendor/golang.org/x/arch/x86/x86asm/intel.go
generated
vendored
12
vendor/golang.org/x/arch/x86/x86asm/intel.go
generated
vendored
@@ -341,12 +341,14 @@ func IntelSyntax(inst Inst, pc uint64, symname SymLookup) string {
|
||||
func intelArg(inst *Inst, pc uint64, symname SymLookup, arg Arg) string {
|
||||
switch a := arg.(type) {
|
||||
case Imm:
|
||||
if s, base := symname(uint64(a)); s != "" {
|
||||
suffix := ""
|
||||
if uint64(a) != base {
|
||||
suffix = fmt.Sprintf("%+d", uint64(a)-base)
|
||||
if (inst.Op == MOV || inst.Op == PUSH) && inst.DataSize == 32 { // See comment in plan9x.go.
|
||||
if s, base := symname(uint64(a)); s != "" {
|
||||
suffix := ""
|
||||
if uint64(a) != base {
|
||||
suffix = fmt.Sprintf("%+d", uint64(a)-base)
|
||||
}
|
||||
return fmt.Sprintf("$%s%s", s, suffix)
|
||||
}
|
||||
return fmt.Sprintf("$%s%s", s, suffix)
|
||||
}
|
||||
if inst.Mode == 32 {
|
||||
return fmt.Sprintf("%#x", uint32(a))
|
||||
|
||||
21
vendor/golang.org/x/arch/x86/x86asm/plan9x.go
generated
vendored
21
vendor/golang.org/x/arch/x86/x86asm/plan9x.go
generated
vendored
@@ -116,12 +116,23 @@ func plan9Arg(inst *Inst, pc uint64, symname func(uint64) (string, uint64), arg
|
||||
return fmt.Sprintf("%#x", addr)
|
||||
|
||||
case Imm:
|
||||
if s, base := symname(uint64(a)); s != "" {
|
||||
suffix := ""
|
||||
if uint64(a) != base {
|
||||
suffix = fmt.Sprintf("%+d", uint64(a)-base)
|
||||
if (inst.Op == MOV || inst.Op == PUSH) && inst.DataSize == 32 {
|
||||
// Only try to convert an immediate to a symbol in certain
|
||||
// special circumstances. See issue 72942.
|
||||
//
|
||||
// On 64-bit, symbol addresses always hit the Mem case below.
|
||||
// Particularly, we use LEAQ to materialize the address of
|
||||
// a global or function.
|
||||
//
|
||||
// On 32-bit, we sometimes use MOVL. Still try to symbolize
|
||||
// those immediates.
|
||||
if s, base := symname(uint64(a)); s != "" {
|
||||
suffix := ""
|
||||
if uint64(a) != base {
|
||||
suffix = fmt.Sprintf("%+d", uint64(a)-base)
|
||||
}
|
||||
return fmt.Sprintf("$%s%s(SB)", s, suffix)
|
||||
}
|
||||
return fmt.Sprintf("$%s%s(SB)", s, suffix)
|
||||
}
|
||||
if inst.Mode == 32 {
|
||||
return fmt.Sprintf("$%#x", uint32(a))
|
||||
|
||||
2
vendor/golang.org/x/arch/x86/x86asm/tables.go
generated
vendored
2
vendor/golang.org/x/arch/x86/x86asm/tables.go
generated
vendored
@@ -1,4 +1,4 @@
|
||||
// Code generated by x86map -fmt=decoder x86.csv DO NOT EDIT.
|
||||
// Code generated by x86map -fmt=decoder ../x86.csv DO NOT EDIT.
|
||||
|
||||
package x86asm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user