| // 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 Sqrt(x float64) float64 | |
| TEXT ·Sqrt(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) |