1// Copyright 2021 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 !ppc64 && !ppc64le && !riscv64 6 7package reflect 8 9import "unsafe" 10 11// This file implements a straightforward conversion of a float32 12// value into its representation in a register. This conversion 13// applies for amd64 and arm64. It is also chosen for the case of 14// zero argument registers, but is not used. 15 16func archFloat32FromReg(reg uint64) float32 { 17 i := uint32(reg) 18 return *(*float32)(unsafe.Pointer(&i)) 19} 20 21func archFloat32ToReg(val float32) uint64 { 22 return uint64(*(*uint32)(unsafe.Pointer(&val))) 23} 24