Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
page ,132 title 87trig - trigonometric functions - SIN, COS, TAN ;*** ;87trig.asm - trigonometric functions - SIN, COS, TAN ; ; Copyright (c) 1984-2001, Microsoft Corporation. All rights reserved. ; ;Purpose: ; Support for SIN, COS, TAN ; ;Revision History: ; ; 11-06-91 GDP rewritten for 386 ; ;*******************************************************************************
.xlist include cruntime.inc include mrt386.inc include elem87.inc .list
.data
extrn _piby2:tbyte
staticT _piby4, 03FFEC90FDAA22168C235R ; pi/4 staticD _plossval, 04D000000R ; 2^27 staticD _tlossval, 04F000000R ; 2^31
CODESEG
extrn _rtindfnpop:near extrn _rtonenpop:near extrn _rttosnpop:near extrn _rtinfnpopse:near extrn _rttosnpop:near extrn _rttosnpopde:near extrn _tosnan1:near
;---------------------------------------------------------- ; ; FORWARD TRIGONOMETRIC FUNCTIONS ; ;---------------------------------------------------------- ; ; INPUTS - The argument is the stack top. ; The sign of argument is the 04h bit of CL. ; ; OUTPUT - The result is the stack top. ; ;----------------------------------------------------------
jmponC2 macro tag fstsw ax fwait sahf JSP tag endm
labelNP _fFCOS, PUBLIC lab fFCOS fcos jmponC2 ArgTooLarge ret
labelNP _fFSIN, PUBLIC lab fFSIN fsin jmponC2 ArgTooLarge ret
lab fFTAN fptan fstsw ax fstp st(0) ; pop TOS (fptan pushed an extra value) sahf JSP ArgTooLarge ret
lab ArgTooLarge mov DSF.ErrorType, TLOSS ; set TLOSS error jmp _rtindfnpop
end
|