| // Copyright 2020 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| //go:build !goexperiment.regabiargs && !amd64 && !arm64 && !loong64 && !ppc64 && !ppc64le && !riscv64 | |
| package abi | |
| const ( | |
| // ABI-related constants. | |
| // | |
| // In the generic case, these are all zero | |
| // which lets them gracefully degrade to ABI0. | |
| // IntArgRegs is the number of registers dedicated | |
| // to passing integer argument values. Result registers are identical | |
| // to argument registers, so this number is used for those too. | |
| IntArgRegs = 0 | |
| // FloatArgRegs is the number of registers dedicated | |
| // to passing floating-point argument values. Result registers are | |
| // identical to argument registers, so this number is used for | |
| // those too. | |
| FloatArgRegs = 0 | |
| // EffectiveFloatRegSize describes the width of floating point | |
| // registers on the current platform from the ABI's perspective. | |
| // | |
| // Since Go only supports 32-bit and 64-bit floating point primitives, | |
| // this number should be either 0, 4, or 8. 0 indicates no floating | |
| // point registers for the ABI or that floating point values will be | |
| // passed via the softfloat ABI. | |
| // | |
| // For platforms that support larger floating point register widths, | |
| // such as x87's 80-bit "registers" (not that we support x87 currently), | |
| // use 8. | |
| EffectiveFloatRegSize = 0 | |
| ) | |