Brad Fitzpatrick | 5194744 | 2016-03-01 22:57:46 +0000 | [diff] [blame] | 1 | // Copyright 2010 The Go Authors. All rights reserved. |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style |
| 3 | // license that can be found in the LICENSE file. |
| 4 | |
Rob Pike | 8bca148 | 2014-08-12 17:04:45 -0700 | [diff] [blame] | 5 | #include "textflag.h" |
Keith Randall | 1f79663 | 2013-08-12 10:25:18 -0700 | [diff] [blame] | 6 | |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 7 | // func Log10(x float64) float64 |
Keith Randall | 1f79663 | 2013-08-12 10:25:18 -0700 | [diff] [blame] | 8 | TEXT ·Log10(SB),NOSPLIT,$0 |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 9 | FLDLG2 // F0=log10(2) |
| 10 | FMOVD x+0(FP), F0 // F0=x, F1=log10(2) |
| 11 | FYL2X // F0=log10(x)=log2(x)*log10(2) |
Russ Cox | 07720b6 | 2013-03-22 12:57:55 -0400 | [diff] [blame] | 12 | FMOVDP F0, ret+8(FP) |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 13 | RET |
| 14 | |
| 15 | // func Log2(x float64) float64 |
Keith Randall | 1f79663 | 2013-08-12 10:25:18 -0700 | [diff] [blame] | 16 | TEXT ·Log2(SB),NOSPLIT,$0 |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 17 | FLD1 // F0=1 |
| 18 | FMOVD x+0(FP), F0 // F0=x, F1=1 |
| 19 | FYL2X // F0=log2(x) |
Russ Cox | 07720b6 | 2013-03-22 12:57:55 -0400 | [diff] [blame] | 20 | FMOVDP F0, ret+8(FP) |
Charles L. Dorian | c28bd54 | 2010-07-12 11:30:11 -0700 | [diff] [blame] | 21 | RET |