aboutsummaryrefslogtreecommitdiff
path: root/src/math/sqrt_arm.s
blob: 64792ecaf7e254ee3396a7fc43b3dc11a8ee028c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Copyright 2011 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.

#include "textflag.h"

// func archSqrt(x float64) float64
TEXT ·archSqrt(SB),NOSPLIT,$0
	MOVB	runtime·goarm(SB), R11
	CMP	$5, R11
	BEQ	arm5
	MOVD	x+0(FP),F0
	SQRTD	F0,F0
	MOVD	F0,ret+8(FP)
	RET
arm5:
	// Tail call to Go implementation.
	// Can't use JMP, as in softfloat mode SQRTD is rewritten
	// to a CALL, which makes this function have a frame.
	RET	·sqrt(SB)