1 | ;; THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
---|
2 | ;; PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
---|
3 | ;; TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
---|
4 | ;; INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
---|
5 | ;; DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
---|
6 | ;; THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
---|
7 | ;; EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
---|
8 | ;; FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
---|
9 | ;;
|
---|
10 | ;; USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
---|
11 | ;; RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
---|
12 | ;; TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
---|
13 | ;; AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
---|
14 | ;; SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
---|
15 | ;; THE UNITED STATES.
|
---|
16 | ;;
|
---|
17 | ;; COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
---|
18 |
|
---|
19 | ;;
|
---|
20 | ;; Assembly Function for reading the Time Stamp Counter
|
---|
21 | ;;
|
---|
22 | TITLE utsc.asm
|
---|
23 | .586P
|
---|
24 | ;include listing.inc
|
---|
25 | if @Version gt 510
|
---|
26 | .model FLAT, C
|
---|
27 | else
|
---|
28 | _TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
|
---|
29 | _TEXT ENDS
|
---|
30 | _DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
|
---|
31 | _DATA ENDS
|
---|
32 | CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
|
---|
33 | CONST ENDS
|
---|
34 | _BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
|
---|
35 | _BSS ENDS
|
---|
36 | _TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
|
---|
37 | _TLS ENDS
|
---|
38 | FLAT GROUP _DATA, CONST, _BSS
|
---|
39 | ASSUME CS: FLAT, DS: FLAT, SS: FLAT
|
---|
40 | endif
|
---|
41 |
|
---|
42 | ; some useful floating load and store macros <ala gmt>
|
---|
43 | flds TEXTEQU <fld DWORD PTR>
|
---|
44 | fsubs TEXTEQU <fsub DWORD PTR>
|
---|
45 | fmuls TEXTEQU <fmul DWORD PTR>
|
---|
46 | fstsp TEXTEQU <fstp DWORD PTR>
|
---|
47 |
|
---|
48 | _DATA SEGMENT
|
---|
49 | One DD 03f800000r
|
---|
50 | Dummy DD ?
|
---|
51 | _DATA ENDS
|
---|
52 |
|
---|
53 | _TEXT SEGMENT
|
---|
54 |
|
---|
55 | ;; Fxu32 tscReadTSC( void )
|
---|
56 | ;; Reads the pentium time stamp counter and returns
|
---|
57 | ;; the low 32bits
|
---|
58 |
|
---|
59 | align 4
|
---|
60 | PUBLIC tscReadTSC
|
---|
61 | tscReadTSC PROC NEAR
|
---|
62 |
|
---|
63 | .586
|
---|
64 | rdtsc ; Read the time stamp counter
|
---|
65 |
|
---|
66 | ret
|
---|
67 | tscReadTSC ENDP
|
---|
68 |
|
---|
69 | _TEXT ENDS
|
---|
70 | END
|
---|