~ubuntu-branches/ubuntu/gutsy/virtualbox-ose/gutsy

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/math/lrintl.asm

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2007-09-08 16:44:58 UTC
  • Revision ID: james.westby@ubuntu.com-20070908164458-wao29470vqtr8ksy
Tags: upstream-1.5.0-dfsg2
ImportĀ upstreamĀ versionĀ 1.5.0-dfsg2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; $Id: lrintl.asm 4071 2007-08-07 17:07:59Z vboxsync $
 
2
;; @file
 
3
; innotek Portable Runtime - No-CRT lrintl - AMD64 & X86.
 
4
;
 
5
 
 
6
;
 
7
;  Copyright (C) 2006-2007 innotek GmbH
 
8
 
9
;  This file is part of VirtualBox Open Source Edition (OSE), as
 
10
;  available from http://www.virtualbox.org. This file is free software;
 
11
;  you can redistribute it and/or modify it under the terms of the GNU
 
12
;  General Public License as published by the Free Software Foundation,
 
13
;  in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
 
14
;  distribution. VirtualBox OSE is distributed in the hope that it will
 
15
;  be useful, but WITHOUT ANY WARRANTY of any kind.
 
16
 
 
17
 
 
18
%include "iprt/asmdefs.mac"
 
19
 
 
20
BEGINCODE
 
21
 
 
22
%ifdef RT_ARCH_AMD64
 
23
 %define _SP rsp
 
24
 %define _BP rbp
 
25
 %define _S  8
 
26
%else
 
27
 %define _SP esp
 
28
 %define _BP ebp
 
29
 %define _S  4
 
30
%endif
 
31
 
 
32
;;
 
33
; Round rd to the nearest integer value, rounding according to the current rounding direction.
 
34
; @returns 32-bit: eax  64-bit: rax
 
35
; @param    lrd     [rbp + _S*2]
 
36
BEGINPROC RT_NOCRT(lrintl)
 
37
    push    _BP
 
38
    mov     _BP, _SP
 
39
    sub     _SP, 10h
 
40
 
 
41
    fld     tword [_BP + _S*2]
 
42
%ifdef RT_ARCH_AMD64
 
43
    fistp   qword [_SP]
 
44
    fwait
 
45
    mov     rax, [_SP]
 
46
%else
 
47
    fistp   dword [_SP]
 
48
    fwait
 
49
    mov     eax, [_SP]
 
50
%endif
 
51
 
 
52
    leave
 
53
    ret
 
54
ENDPROC   RT_NOCRT(lrintl)
 
55