1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2022 The Ebitengine Authors
3
4//go:build !cgo && (amd64 || arm64)
5
6package purego
7
8import (
9 "math"
10 "unsafe"
11)
12
13var syscall9XABI0 uintptr
14
15type syscall9Args struct {
16 fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr
17 f1, f2, f3, f4, f5, f6, f7, f8 float64
18 r1, r2, err uintptr
19}
20
21//go:nosplit
22func syscall_syscall9X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2, err uintptr) {
23 args := syscall9Args{fn, a1, a2, a3, a4, a5, a6, a7, a8, a9,
24 math.Float64frombits(uint64(a1)), math.Float64frombits(uint64(a2)), math.Float64frombits(uint64(a3)),
25 math.Float64frombits(uint64(a4)), math.Float64frombits(uint64(a5)), math.Float64frombits(uint64(a6)),
26 math.Float64frombits(uint64(a7)), math.Float64frombits(uint64(a8)),
27 r1, r2, err}
28 runtime_cgocall(syscall9XABI0, unsafe.Pointer(&args))
29 return args.r1, args.r2, args.err
30}
31
32func NewCallback(_ interface{}) uintptr {
33 panic("purego: NewCallback not supported")
34}