1// Copyright 2020 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build !goexperiment.regabiargs && !amd64 && !arm64 && !loong64 && !ppc64 && !ppc64le && !riscv64
6
7package abi
8
9const (
10	// ABI-related constants.
11	//
12	// In the generic case, these are all zero
13	// which lets them gracefully degrade to ABI0.
14
15	// IntArgRegs is the number of registers dedicated
16	// to passing integer argument values. Result registers are identical
17	// to argument registers, so this number is used for those too.
18	IntArgRegs = 0
19
20	// FloatArgRegs is the number of registers dedicated
21	// to passing floating-point argument values. Result registers are
22	// identical to argument registers, so this number is used for
23	// those too.
24	FloatArgRegs = 0
25
26	// EffectiveFloatRegSize describes the width of floating point
27	// registers on the current platform from the ABI's perspective.
28	//
29	// Since Go only supports 32-bit and 64-bit floating point primitives,
30	// this number should be either 0, 4, or 8. 0 indicates no floating
31	// point registers for the ABI or that floating point values will be
32	// passed via the softfloat ABI.
33	//
34	// For platforms that support larger floating point register widths,
35	// such as x87's 80-bit "registers" (not that we support x87 currently),
36	// use 8.
37	EffectiveFloatRegSize = 0
38)
39