feat(cmd): enable loong64 JIT execution, all trampolines qemu-validated
Assisted-by: GLM 5.3
This commit is contained in:
+7
-10
@@ -1019,8 +1019,8 @@ that tolerate nil pointers and zero lengths in their arguments.
|
||||
With -abi, each function is called with sentinel values in the registers
|
||||
the Go ABI fixes across calls (the frame pointer and the goroutine
|
||||
pointer) plus a canary below SP; violations are reported. JIT-based
|
||||
checks run when the host matches the file's architecture (all but
|
||||
loong64, which is ground-truth only for now).
|
||||
checks run when the host matches the file's architecture, on all four
|
||||
architectures.
|
||||
|
||||
With -fuzz, each function with a // func signature is differentially fuzzed
|
||||
against the go-tool-asm version in a subprocess (so a crash on a partial
|
||||
@@ -1062,16 +1062,13 @@ each entry reproduces.
|
||||
path := set.Arg(0)
|
||||
targetArch := arch.FromFilename(path)
|
||||
// JIT execution runs when the host CPU matches the kernel's
|
||||
// architecture, except loong64: its trampoline is implemented but not
|
||||
// yet validated against real hardware (the Go runtime cannot start
|
||||
// under the available loong64 emulators), so those kernels take the
|
||||
// toolchain-comparison path.
|
||||
if targetArch != hostArch() || targetArch == arch.LOONG64 {
|
||||
// architecture; every trampoline is validated end to end under
|
||||
// qemu-user emulation (the loong64 one included, via the raw-address
|
||||
// leave handoff).
|
||||
if targetArch != hostArch() {
|
||||
// No JIT on this host: ground truth and profile remain available for
|
||||
// every architecture, because cmdVerifyNonJIT assembles and compares
|
||||
// against the toolchain without executing anything. (loong64 is
|
||||
// ground-truth-only everywhere for now: its trampoline is implemented
|
||||
// but not yet validated against real hardware.)
|
||||
// against the toolchain without executing anything.
|
||||
switch targetArch {
|
||||
case arch.AMD64, arch.RISCV, arch.LOONG64, arch.ARM64:
|
||||
return cmdVerifyNonJIT(path, targetArch, *groundTruth, *profile)
|
||||
|
||||
Reference in New Issue
Block a user