1
0
mirror of https://github.com/golang/go synced 2024-11-17 13:44:43 -07:00

go/analysis/passes/asmdecl: define register-ABI result registers for PPC64

So "go vet" works for register-ABI assembly functions.

Change-Id: I875e613f22ead19ea30b7f9f6c70a665df109d4c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/394234
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Cherry Mui 2022-03-21 12:17:06 -04:00
parent 86b02b36c4
commit c717623e31
2 changed files with 10 additions and 2 deletions

View File

@ -90,8 +90,8 @@ var (
asmArchMipsLE = asmArch{name: "mipsle", bigEndian: false, stack: "R29", lr: true}
asmArchMips64 = asmArch{name: "mips64", bigEndian: true, stack: "R29", lr: true}
asmArchMips64LE = asmArch{name: "mips64le", bigEndian: false, stack: "R29", lr: true}
asmArchPpc64 = asmArch{name: "ppc64", bigEndian: true, stack: "R1", lr: true}
asmArchPpc64LE = asmArch{name: "ppc64le", bigEndian: false, stack: "R1", lr: true}
asmArchPpc64 = asmArch{name: "ppc64", bigEndian: true, stack: "R1", lr: true, retRegs: []string{"R3", "F1"}}
asmArchPpc64LE = asmArch{name: "ppc64le", bigEndian: false, stack: "R1", lr: true, retRegs: []string{"R3", "F1"}}
asmArchRISCV64 = asmArch{name: "riscv64", bigEndian: false, stack: "SP", lr: true}
asmArchS390X = asmArch{name: "s390x", bigEndian: true, stack: "R15", lr: true}
asmArchWasm = asmArch{name: "wasm", bigEndian: false, stack: "SP", lr: false}

View File

@ -190,3 +190,11 @@ TEXT ·returnnamed(SB),0,$0-41
TEXT ·returnintmissing(SB),0,$0-8
RET // want `RET without writing to 8-byte ret\+0\(FP\)`
// writing to result in ABIInternal function
TEXT ·returnABIInternal<ABIInternal>(SB), NOSPLIT, $8
MOVD $123, R3
RET
TEXT ·returnmissingABIInternal<ABIInternal>(SB), NOSPLIT, $8
MOVD $123, R10
RET // want `RET without writing to result register`