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

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/math/llrintf.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: llrintf.asm 4071 2007-08-07 17:07:59Z vboxsync $
 
2
;; @file
 
3
; innotek Portable Runtime - No-CRT llrintf - 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
%include "iprt/asmdefs.mac"
 
18
 
 
19
BEGINCODE
 
20
 
 
21
;;
 
22
; Round rd to the nearest integer value, rounding according to the current rounding direction.
 
23
; @returns 32-bit: edx:eax  64-bit: rax
 
24
; @param    rf     32-bit: [esp + 4h]  64-bit: xmm0
 
25
BEGINPROC RT_NOCRT(llrintf)
 
26
%ifdef RT_ARCH_AMD64
 
27
    cvtss2si rax, xmm0
 
28
%else
 
29
    push    ebp
 
30
    mov     ebp, esp
 
31
    sub     esp, 8h
 
32
 
 
33
    fld     dword [ebp + 8h]
 
34
    fistp   qword [esp]
 
35
    fwait
 
36
    mov     eax, [esp]
 
37
    mov     edx, [esp + 4]
 
38
 
 
39
    leave
 
40
%endif
 
41
    ret
 
42
ENDPROC   RT_NOCRT(llrintf)
 
43