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 && !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  

View as plain text