FORTRAN-86 COMPILER 04/21/95 06:44:26 PAGE 1 I2FIST.FTN DOS 5.0 (046-N) FORTRAN-86 COMPILER X420 COMPILER INVOKED BY: D:\F86\FORT86.EXE I2FIST.FTN CO XR PW(80) PL(63) MOD387 S R(I4) IE OT(2) 1 2 INTEGER*2 FUNCTION i2FIST(x, kflag) 3 c ... i2FIST = ( x rounded to INTEGER*2 in current rounding mode ) 4 c : and return bottom 7 bits of ix87 Status Word in kflag . 5 REAL*10 x, dummy 6 INTEGER*2 kflag, LoBits 7 DATA dummy, LoBits / 0.0, Z'7F' / 8 CALL STSW87(kflag) 9 c ... Having cleared ix87 Status Reg., perform FIST : 10 i2FIST = x + (x*dummy - dummy) 11 c ... Changed, by using DEBUG, into FLD x ; FIST i2FIST . 12 CALL STSW87(kflag) 13 kflag = kflag .AND. LoBits 14 RETURN 15 END FORTRAN-86 COMPILER 04/21/95 06:44:26 PAGE 2 I2FIST.FTN I2FIST 16 FORTRAN-86 COMPILER PROGRAM CROSS-REFERENCE 04/21/95 06:44:26 PAGE 3 I2FIST.FTN I2FIST DEFN NAME ADDRESS DATA TYPE ATTRIBUTES ---- ---- ------- --------- ---------- 5 DUMMY . . . . . . . . . . . . . 4H D TEMPREAL VARIABLE, INITIALIZE -D 5 7 10 10 2 I2FIST. . . . . . . . . . . . . PROGRAM UNIT NAME, A -RGUMENT STACK SIZE = - 8H 2 2 I2FIST. . . . . . . . . . . . . 0H D INTEGER*2 FUNCTION NAME 2 10 6 KFLAG . . . . . . . . . . . . . 4H A INTEGER*2 ARGUMENT VARIABLE 2 6 8 12 13 13 6 LOBITS. . . . . . . . . . . . . 2H D INTEGER*2 VARIABLE, INITIALIZE -D 6 7 13 STSW87. . . . . . . . . . . . . SUBROUTINE, INTRINSI -C 8 12 5 X . . . . . . . . . . . . . . . 8H A TEMPREAL ARGUMENT VARIABLE 2 5 10 10 FORTRAN-86 COMPILER GENERATED CODE 04/21/95 06:44:26 PAGE 4 I2FIST.FTN I2FIST ; STATEMENT # 1 00000002 1E PUSH DS 00000003 2E8E1E0000 MOV DS,CS:@@DATA$FRAME 00000008 55 PUSH BP 00000009 8BEC MOV BP,SP ; STATEMENT # 8 0000000B C45E08 LES BX,[BP].@PARAM+8H 0000000E 8D37 LEA SI,[BX].KFLAG 00000010 26DD3C FSTSW ES:[SI] 00000013 DBE2 FCLEX 00000015 9B WAIT ; STATEMENT # 10 00000016 C45E0C LES BX,[BP].@PARAM+0CH 00000019 26DB2F FLD ES:[BX].X 0000001C DF1E0000 FISTP I2FIST ; Changed by Debug 00000020 EB11 JMP @@000001 ; " " 00000022 DB2EF1C8 FLD TREAL[F1C8] ; Corrects checksum 00000026 DEE9 FSUBP ; Skipped 00000028 DEC1 FADDP ; " 0000002A 9A00000000 CALL MQERCI2 ; " 0000002F 89060000 MOV I2FIST,AX ; " ; STATEMENT # 12 @@000001: 00000033 C45E08 LES BX,[BP].@PARAM+8H 00000036 8D37 LEA SI,[BX].KFLAG 00000038 26DD3C FSTSW ES:[SI] 0000003B DBE2 FCLEX 0000003D 9B WAIT ; STATEMENT # 13 0000003E 8B060200 MOV AX,LOBITS 00000042 C45E08 LES BX,[BP].@PARAM+8H 00000045 262107 AND ES:[BX].KFLAG,AX ; STATEMENT # 15 00000048 8B060000 MOV AX,I2FIST 0000004C C9 LEAVE 0000004D 1F POP DS 0000004E CA0800 RET 8H FORTRAN-86 COMPILER LABELS, STATEMENT FUNCTIONS04/21/95 06:44:26 PAGE 5 I2FIST.FTN I2FIST EXTERNAL SYSTEM ROUTINES REFERENCES ------------------------ ---------- MQERCI2 . . . . . . . . . . . . 10 FORTRAN-86 COMPILER ERROR MESSAGES AND SUMMARY 04/21/95 06:44:26 PAGE 6 I2FIST.FTN I2FIST STORAGE REQUIREMENTS FOR MODULE I2FIST: CODE AREA SIZE 51H 81D CONSTANT AREA SIZE 0H 0D VARIABLE AREA SIZE EH 14D MAXIMUM STACK SIZE CH 12D 0 ERRORS DETECTED. 0 WARNINGS ISSUED. ENTRY POINT IS 2H FLOATING-POINT OPERATIONS WERE GENERATED. COMPILATION OF I2FIST COMPLETE. 0 TOTAL ERRORS DETECTED. 0 TOTAL WARNINGS ISSUED. DICTIONARY SUMMARY: 5DH LAST OBJECT ID 437KB MEMORY AVAILABLE 4KB MEMORY USED (0%) 0KB DISK SPACE USED END OF FORTRAN-86 COMPILATION OF I2FIST.FTN