gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/internal/abi/abi_generic.go (about) 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.regabireflect 6 // +build !goexperiment.regabireflect 7 8 package abi 9 10 const ( 11 // ABI-related constants. 12 // 13 // In the generic case, these are all zero 14 // which lets them gracefully degrade to ABI0. 15 16 // IntArgRegs is the number of registers dedicated 17 // to passing integer argument values. Result registers are identical 18 // to argument registers, so this number is used for those too. 19 IntArgRegs = 0 20 21 // FloatArgRegs is the number of registers dedicated 22 // to passing floating-point argument values. Result registers are 23 // identical to argument registers, so this number is used for 24 // those too. 25 FloatArgRegs = 0 26 27 // EffectiveFloatRegSize describes the width of floating point 28 // registers on the current platform from the ABI's perspective. 29 // 30 // Since Go only supports 32-bit and 64-bit floating point primitives, 31 // this number should be either 0, 4, or 8. 0 indicates no floating 32 // point registers for the ABI or that floating point values will be 33 // passed via the softfloat ABI. 34 // 35 // For platforms that support larger floating point register widths, 36 // such as x87's 80-bit "registers" (not that we support x87 currently), 37 // use 8. 38 EffectiveFloatRegSize = 0 39 )