summaryrefslogtreecommitdiff
path: root/libgo/go/cmd/vet/asmdecl.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/cmd/vet/asmdecl.go')
-rw-r--r--libgo/go/cmd/vet/asmdecl.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/libgo/go/cmd/vet/asmdecl.go b/libgo/go/cmd/vet/asmdecl.go
index b01d23d342b..ccf6269f1db 100644
--- a/libgo/go/cmd/vet/asmdecl.go
+++ b/libgo/go/cmd/vet/asmdecl.go
@@ -77,6 +77,7 @@ var (
asmArchPpc64 = asmArch{name: "ppc64", bigEndian: true, stack: "R1", lr: true}
asmArchPpc64LE = asmArch{name: "ppc64le", bigEndian: false, stack: "R1", lr: true}
asmArchS390X = asmArch{name: "s390x", bigEndian: true, stack: "R15", lr: true}
+ asmArchWasm = asmArch{name: "wasm", bigEndian: false, stack: "SP", lr: false}
arches = []*asmArch{
&asmArch386,
@@ -91,6 +92,7 @@ var (
&asmArchPpc64,
&asmArchPpc64LE,
&asmArchS390X,
+ &asmArchWasm,
}
)
@@ -104,6 +106,8 @@ func init() {
arch.ptrSize = int(arch.sizes.Sizeof(types.Typ[types.UnsafePointer]))
arch.maxAlign = int(arch.sizes.Alignof(types.Typ[types.Int64]))
}
+
+ registerPkgCheck("asmdecl", asmCheck)
}
var (
@@ -119,7 +123,7 @@ var (
)
func asmCheck(pkg *Package) {
- if !vet("asmdecl") {
+ if vcfg.VetxOnly {
return
}
@@ -240,17 +244,17 @@ Files:
continue
}
}
+ flag := m[3]
fn = knownFunc[fnName][arch]
if fn != nil {
size, _ := strconv.Atoi(m[5])
- flag := m[3]
if size != fn.size && (flag != "7" && !strings.Contains(flag, "NOSPLIT") || size != 0) {
badf("wrong argument size %d; expected $...-%d", size, fn.size)
}
}
localSize, _ = strconv.Atoi(m[4])
localSize += archDef.intSize
- if archDef.lr {
+ if archDef.lr && !strings.Contains(flag, "NOFRAME") {
// Account for caller's saved LR
localSize += archDef.intSize
}