FORTRAN-86 COMPILER 04/21/95 06:47:05 PAGE 1 I4FIST.FTN DOS 5.0 (046-N) FORTRAN-86 COMPILER X420 COMPILER INVOKED BY: D:\F86\FORT86.EXE I4FIST.FTN CO XR PW(80) PL(63) MOD387 S R(I4) IE OT(2) 1 2 INTEGER*4 FUNCTION i4FIST(x, kflag) 3 c ... i4FIST = ( x rounded to INTEGER*4 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 i4FIST = x + (x*dummy - dummy) 11 c ... Changed, by using DEBUG, into FLD x ; FIST i4FIST . 12 CALL STSW87(kflag) 13 kflag = kflag .AND. LoBits 14 RETURN 15 END FORTRAN-86 COMPILER 04/21/95 06:47:05 PAGE 2 I4FIST.FTN I4FIST 16 FORTRAN-86 COMPILER PROGRAM CROSS-REFERENCE 04/21/95 06:47:05 PAGE 3 I4FIST.FTN I4FIST DEFN NAME ADDRESS DATA TYPE ATTRIBUTES ---- ---- ------- --------- ---------- 5 DUMMY . . . . . . . . . . . . . 6H D TEMPREAL VARIABLE, INITIALIZE -D 5 7 10 10 2 I4FIST. . . . . . . . . . . . . 0H D INTEGER*4 FUNCTION NAME 2 10 2 I4FIST. . . . . . . . . . . . . PROGRAM UNIT NAME, A -RGUMENT STACK SIZE = - 8H 2 6 KFLAG . . . . . . . . . . . . . 4H A INTEGER*2 ARGUMENT VARIABLE 2 6 8 12 13 13 6 LOBITS. . . . . . . . . . . . . 4H 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:47:05 PAGE 4 I4FIST.FTN I4FIST ; 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 DB1E0000 FISTP I4FIST ; Changed by Debug 00000020 EB15 JMP @@000001 ; " " 00000022 DB2EF9C4 FLD TREAL[C4F9] ; Corrects checksum 00000026 DEE9 FSUBP ; Skipped 00000028 DEC1 FADDP ; " 0000002A 9A00000000 CALL MQERINT ; " 0000002F 89060000 MOV I4FIST,AX ; " 00000033 89160200 MOV I4FIST+2H,DX; " ; STATEMENT # 12 @@000001: 00000037 C45E08 LES BX,[BP].@PARAM+8H 0000003A 8D37 LEA SI,[BX].KFLAG 0000003C 26DD3C FSTSW ES:[SI] 0000003F DBE2 FCLEX 00000041 9B WAIT ; STATEMENT # 13 00000042 8B060400 MOV AX,LOBITS 00000046 C45E08 LES BX,[BP].@PARAM+8H 00000049 262107 AND ES:[BX].KFLAG,AX ; STATEMENT # 15 0000004C 8B060000 MOV AX,I4FIST 00000050 8B160200 MOV DX,I4FIST+2H 00000054 C9 LEAVE 00000055 1F POP DS 00000056 CA0800 RET 8H FORTRAN-86 COMPILER LABELS, STATEMENT FUNCTIONS04/21/95 06:47:05 PAGE 5 I4FIST.FTN I4FIST EXTERNAL SYSTEM ROUTINES REFERENCES ------------------------ ---------- MQERINT . . . . . . . . . . . . 10 FORTRAN-86 COMPILER ERROR MESSAGES AND SUMMARY 04/21/95 06:47:05 PAGE 6 I4FIST.FTN I4FIST STORAGE REQUIREMENTS FOR MODULE I4FIST: CODE AREA SIZE 59H 89D CONSTANT AREA SIZE 0H 0D VARIABLE AREA SIZE 10H 16D MAXIMUM STACK SIZE CH 12D 0 ERRORS DETECTED. 0 WARNINGS ISSUED. ENTRY POINT IS 2H FLOATING-POINT OPERATIONS WERE GENERATED. COMPILATION OF I4FIST COMPLETE. 0 TOTAL ERRORS DETECTED. 0 TOTAL WARNINGS ISSUED. DICTIONARY SUMMARY: 5EH LAST OBJECT ID 437KB MEMORY AVAILABLE 4KB MEMORY USED (0%) 0KB DISK SPACE USED END OF FORTRAN-86 COMPILATION OF I4FIST.FTN