39 lines
1.4 KiB
Go
39 lines
1.4 KiB
Go
// 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
|
|
)
|