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  )