~ubuntu-branches/ubuntu/vivid/golang/vivid

« back to all changes in this revision

Viewing changes to src/pkg/math/frexp_386.s

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-08-20 14:06:23 UTC
  • mfrom: (14.1.23 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130820140623-b414jfxi3m0qkmrq
Tags: 2:1.1.2-2ubuntu1
* Merge from Debian unstable (LP: #1211749, #1202027). Remaining changes:
  - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
  - d/control,control.cross: Update Breaks/Replaces for Ubuntu
    versions to ensure smooth upgrades, regenerate control file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
// Use of this source code is governed by a BSD-style
3
3
// license that can be found in the LICENSE file.
4
4
 
5
 
// func Frexp(x float64) (f float64, e int)
 
5
// func Frexp(f float64) (frac float64, exp int)
6
6
TEXT ·Frexp(SB),7,$0
7
 
        FMOVD   x+0(FP), F0   // F0=x
 
7
        FMOVD   f+0(FP), F0   // F0=f
8
8
        FXAM
9
9
        FSTSW   AX
10
10
        SAHF
12
12
        JCS     nan_zero_inf
13
13
        FXTRACT               // F0=f (0<=f<1), F1=e
14
14
        FMULD  $(0.5), F0     // F0=f (0.5<=f<1), F1=e
15
 
        FMOVDP  F0, f+8(FP)   // F0=e
 
15
        FMOVDP  F0, frac+8(FP)   // F0=e
16
16
        FLD1                  // F0=1, F1=e
17
17
        FADDDP  F0, F1        // F0=e+1
18
 
        FMOVLP  F0, e+16(FP)  // (int=int32)
 
18
        FMOVLP  F0, exp+16(FP)  // (int=int32)
19
19
        RET
20
20
nan_zero_inf:
21
 
        FMOVDP  F0, f+8(FP)   // F0=e
22
 
        MOVL    $0, e+16(FP)  // e=0
 
21
        FMOVDP  F0, frac+8(FP)   // F0=e
 
22
        MOVL    $0, exp+16(FP)  // exp=0
23
23
        RET