ieee_control.h

Go to the documentation of this file.
00001 /*
00002 *****************************************************************************
00003 **                                                                          *
00004 **                          COPYRIGHT 1990 BY                               *
00005 **             DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.                *
00006 **                         ALL RIGHTS RESERVED                              *
00007 **                                                                          *
00008 **  THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED  *
00009 **  ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE  *
00010 **  INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER  *
00011 **  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY  *
00012 **  OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY  *
00013 **  TRANSFERRED.                                                            *
00014 **                                                                          *
00015 **  THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE  *
00016 **  AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT  *
00017 **  CORPORATION.                                                            *
00018 **                                                                          *
00019 **  DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS  *
00020 **  SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.                 *
00021 **                                                                          *
00022 *****************************************************************************
00023 **++
00024 **  FACILITY:
00025 **
00026 **      SYS
00027 **
00028 **  ABSTRACT:
00029 **
00030 **      This module defines contents of the variables, my_control and my_status.
00031 **
00032 **  AUTHORS:
00033 **
00034 **      Robert Gries
00035 **
00036 **  CREATION DATE:      07-Oct-1993
00037 **
00038 **  MODIFICATION HISTORY:
00039 **      
00040 **      X-3     EMB             Ellen M. Batbouta               02-Apr-1999
00041 **              Change the values of the rounding modes (our local definitions)
00042 **              to match the rounding modes used by the square root routine
00043 **              (symbols used by square root routine are:  round_chopped, round_normal,
00044 **               round_pinf, and round_minf).
00045 **
00046 **      X-2     EMB             Ellen M. Batbouta               13-Apr-1998
00047 **              Add a few comments ( even a few will help immensely) !
00048 **              Add the status flag, e_SW_DENORMAL_OPERAND.
00049 **
00050 **      X-1     EMB0421         Ellen M. Batbouta               21-Mar-1996
00051 **              Add e_SW_DENORMAL mask.
00052 **--
00053 **/
00054 
00055 /* This module contains the flags in the variable, my_control */
00056 
00057 #define VAX_FLOAT 0x10u                 /* Flag set if instruction is a VAX float (as opposed to IEEE) */
00058 
00059 #define e_MCW_RC 0x03u                  /* Mask for 3 rounding modes...chopped, round up, or round down */
00060 #define e_RC_CHOP 0x00u                 /* The next several flags define the rounding mode associated with */
00061 #define e_RC_DOWN 0x01u                 /* a particular instruction */ 
00062 #define e_RC_NEAR 0x02u
00063 #define e_RC_UP 0x03u                   
00064 
00065 #define e_PC_CONTROL 0x04u              /* These few flags represent the contents of the src field in the.... */
00066 #define e_PC_24 0x0u                    /* ... E_PC_24 is the flag for "24 bit arithmetic" (S or a D float) and */
00067 #define e_PC_53 0x04u                   /* E_PC_53 is the flag for "53 bit arithmetic" (T or a G float)         */
00068 
00069 #define e_SW_DENORMAL 0x080u            /* Status flags to tell us the outcome of a particular emulated instruction */
00070 #define e_SW_IOV 0x040u                 /* These status values are returned by the specific emulated instruction....*/
00071 #define e_SW_DENORMAL_OPERAND 0x020u    
00072 #define e_SW_INEXACT 0x010u             /* .....routine,ie such as the routine e_addt.                              */
00073 #define e_SW_UNDERFLOW 0x008u
00074 #define e_SW_OVERFLOW 0x004u
00075 #define e_SW_ZERODIVIDE 0x002u
00076 #define e_SW_INVALID  0x001u
00077 
00078 unsigned set_my_control();
00079 unsigned set_my_status();

SourceForge.net Logo
Project space on SourceForge.net