aboutsummaryrefslogtreecommitdiffstats
path: root/code/unix/ftol.nasm
diff options
context:
space:
mode:
Diffstat (limited to 'code/unix/ftol.nasm')
-rw-r--r--code/unix/ftol.nasm151
1 files changed, 0 insertions, 151 deletions
diff --git a/code/unix/ftol.nasm b/code/unix/ftol.nasm
deleted file mode 100644
index 131dfc6..0000000
--- a/code/unix/ftol.nasm
+++ /dev/null
@@ -1,151 +0,0 @@
-;===========================================================================
-;Copyright (C) 1999-2005 Id Software, Inc.
-;
-;This file is part of Quake III Arena source code.
-;
-;Quake III Arena source code is free software; you can redistribute it
-;and/or modify it under the terms of the GNU General Public License as
-;published by the Free Software Foundation; either version 2 of the License,
-;or (at your option) any later version.
-;
-;Quake III Arena source code is distributed in the hope that it will be
-;useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-;
-;You should have received a copy of the GNU General Public License
-;along with Foobar; if not, write to the Free Software
-;Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-;===========================================================================
-
-;
-; qftol -- fast floating point to long conversion.
-;
-
-segment .data
-
-temp dd 0.0
-fpucw dd 0
-
-; Precision Control Field , 2 bits / 0x0300
-; PC24 0x0000 Single precision (24 bits).
-; PC53 0x0200 Double precision (53 bits).
-; PC64 0x0300 Extended precision (64 bits).
-
-; Rounding Control Field, 2 bits / 0x0C00
-; RCN 0x0000 Rounding to nearest (even).
-; RCD 0x0400 Rounding down (directed, minus).
-; RCU 0x0800 Rounding up (directed plus).
-; RC0 0x0C00 Rounding towards zero (chop mode).
-
-
-; rounding towards nearest (even)
-cw027F dd 0x027F ; double precision
-cw037F dd 0x037F ; extended precision
-
-; rounding towards zero (chop mode)
-cw0E7F dd 0x0E7F ; double precision
-cw0F7F dd 0x0F7F ; extended precision
-
-
-segment .text
-
-;
-; int qftol( void ) - default control word
-;
-
-global qftol
-
-qftol:
- fistp dword [temp]
- mov eax, [temp]
- ret
-
-
-;
-; int qftol027F( void ) - DirectX FPU
-;
-
-global qftol027F
-
-qftol027F:
- fnstcw [fpucw]
- fldcw [cw027F]
- fistp dword [temp]
- fldcw [fpucw]
- mov eax, [temp]
- ret
-
-;
-; int qftol037F( void ) - Linux FPU
-;
-
-global qftol037F
-
-qftol037F:
- fnstcw [fpucw]
- fldcw [cw037F]
- fistp dword [temp]
- fldcw [fpucw]
- mov eax, [temp]
- ret
-
-
-;
-; int qftol0F7F( void ) - ANSI
-;
-
-global qftol0F7F
-
-qftol0F7F:
- fnstcw [fpucw]
- fldcw [cw0F7F]
- fistp dword [temp]
- fldcw [fpucw]
- mov eax, [temp]
- ret
-
-;
-; int qftol0E7F( void )
-;
-
-global qftol0E7F
-
-qftol0E7F:
- fnstcw [fpucw]
- fldcw [cw0E7F]
- fistp dword [temp]
- fldcw [fpucw]
- mov eax, [temp]
- ret
-
-
-
-;
-; long Q_ftol( float q )
-;
-
-global Q_ftol
-
-Q_ftol:
- fld dword [esp+4]
- fistp dword [temp]
- mov eax, [temp]
- ret
-
-
-;
-; long qftol0F7F( float q ) - Linux FPU
-;
-
-global Q_ftol0F7F
-
-Q_ftol0F7F:
- fnstcw [fpucw]
- fld dword [esp+4]
- fldcw [cw0F7F]
- fistp dword [temp]
- fldcw [fpucw]
- mov eax, [temp]
- ret
-