Source file src/internal/abi/abi_generic.go
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 7 package abi 8 9 const ( 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