Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

fesupprt.h

Go to the documentation of this file.
00001 /****************************** 00002 Intel Confidential 00003 ******************************/ 00004 00005 #ifndef _EM_SUPPORT_H 00006 #define _EM_SUPPORT_H 00007 00008 void 00009 fp82_EM_initialize_state(EM_state_type *ps); 00010 00011 00012 EM_boolean_t 00013 fp82_fp_software_assistance_required(EM_state_type *, 00014 EM_opcode_type, ...); 00015 00016 00017 /******************************************************* 00018 Fault handlers -- Start 00019 ********************************************************/ 00020 00021 /******************************************************* 00022 Defines to get rid of ps in the function declaration 00023 ********************************************************/ 00024 00025 #define disabled_fp_register_fault(arg1, arg2) \ 00026 fp82_disabled_fp_register_fault(EM_state_type *ps, arg1, arg2) 00027 00028 #define fp_exception_fault(arg1) \ 00029 fp82_fp_exception_fault(EM_state_type *ps, arg1) 00030 00031 #define fp_exception_trap(arg1) \ 00032 fp82_fp_exception_trap(EM_state_type *ps, arg1) 00033 00034 #define illegal_operation_fault(arg1) \ 00035 fp82_illegal_operation_fault(EM_state_type *ps, arg1) 00036 00037 #define check_target_register(arg1, arg2) \ 00038 fp82_check_target_register(EM_state_type *ps, arg1, arg2) 00039 00040 #define fp_check_target_register(arg1) \ 00041 fp82_fp_check_target_register(EM_state_type *ps, arg1) 00042 00043 /******************************************************* 00044 Fault prototypes 00045 ********************************************************/ 00046 INLINE void 00047 disabled_fp_register_fault(EM_uint_t isr_code, EM_uint_t itype); 00048 00049 INLINE void 00050 fp_exception_fault(EM_uint_t isr_code); 00051 00052 INLINE void 00053 fp_exception_trap(EM_uint_t isr_code); 00054 00055 INLINE void 00056 illegal_operation_fault(EM_uint_t non_rs); 00057 00058 INLINE void 00059 check_target_register(EM_uint_t reg_specifier, EM_uint_t itype); 00060 00061 void 00062 fp_check_target_register(EM_uint_t reg_specifier); 00063 00064 /******************************************************* 00065 Fault handlers -- End 00066 ********************************************************/ 00067 00068 00069 /******************************************************* 00070 GET PUT functions 00071 ********************************************************/ 00072 00073 /******************************************************* 00074 Defines to get rid of ps in GET PUT functions 00075 ********************************************************/ 00076 00077 #define GETSTATE_F1(qp,f1,f3,f4,f2) _GETSTATE_F1(EM_state_type *ps, qp,f1,f3,f4,f2) 00078 #define PUTSTATE_F1(f1) _PUTSTATE_F1(EM_state_type *ps, f1) 00079 00080 #define GETSTATE_F4(qp,p1,p2,f2,f3) _GETSTATE_F4(EM_state_type *ps, qp,p1,p2,f2,f3) 00081 #define PUTSTATE_F4(p1,p2) _PUTSTATE_F4(EM_state_type *ps, p1,p2) 00082 00083 #define GETSTATE_F6(qp,f1,p2,f2,f3) _GETSTATE_F6(EM_state_type *ps,qp,f1,p2,f2,f3) 00084 #define PUTSTATE_F6(f1,p2) _PUTSTATE_F6(EM_state_type *ps,f1,p2) 00085 00086 #define GETSTATE_F7(qp,f1,p2,f3) _GETSTATE_F7(EM_state_type *ps, qp,f1,p2,f3) 00087 #define PUTSTATE_F7(f1,p2) _PUTSTATE_F7(EM_state_type *ps, f1,p2) 00088 00089 #define GETSTATE_F8(qp,f1,f2,f3) _GETSTATE_F8(EM_state_type *ps, qp,f1,f2,f3) 00090 #define PUTSTATE_F8(f1) _PUTSTATE_F8(EM_state_type *ps, f1) 00091 00092 #define GETSTATE_F10(qp,f1,f2) _GETSTATE_F10(EM_state_type *ps, qp,f1,f2) 00093 #define PUTSTATE_F10(f1) _PUTSTATE_F10(EM_state_type *ps, f1) 00094 00095 /******************************************************* 00096 Prototypes for GET PUT functions 00097 ********************************************************/ 00098 00099 void 00100 GETSTATE_F1( 00101 EM_pred_reg_specifier Pr0, 00102 EM_fp_reg_specifier Fr1, 00103 EM_fp_reg_specifier Fr3, 00104 EM_fp_reg_specifier Fr4, 00105 EM_fp_reg_specifier Fr2); 00106 00107 void 00108 PUTSTATE_F1( 00109 EM_fp_reg_specifier Fr1); 00110 00111 void 00112 GETSTATE_F4( 00113 EM_pred_reg_specifier Pr0, 00114 EM_pred_reg_specifier Pr1, 00115 EM_pred_reg_specifier Pr2, 00116 EM_fp_reg_specifier Fr2, 00117 EM_fp_reg_specifier Fr3); 00118 00119 void 00120 PUTSTATE_F4( 00121 EM_pred_reg_specifier Pr1, 00122 EM_pred_reg_specifier Pr2); 00123 00124 void 00125 GETSTATE_F6( 00126 EM_pred_reg_specifier Pr0, 00127 EM_fp_reg_specifier Fr1, 00128 EM_pred_reg_specifier Pr2, 00129 EM_fp_reg_specifier Fr2, 00130 EM_fp_reg_specifier Fr3); 00131 00132 void 00133 PUTSTATE_F6( 00134 EM_fp_reg_specifier Fr1, 00135 EM_pred_reg_specifier Pr2); 00136 00137 void 00138 GETSTATE_F7( 00139 EM_pred_reg_specifier Pr0, 00140 EM_fp_reg_specifier Fr1, 00141 EM_pred_reg_specifier Pr2, 00142 EM_fp_reg_specifier Fr3); 00143 00144 void 00145 PUTSTATE_F7( 00146 EM_fp_reg_specifier Fr1, 00147 EM_pred_reg_specifier Pr2); 00148 00149 void 00150 GETSTATE_F8( 00151 EM_pred_reg_specifier Pr0, 00152 EM_fp_reg_specifier Fr1, 00153 EM_fp_reg_specifier Fr2, 00154 EM_fp_reg_specifier Fr3); 00155 00156 void 00157 PUTSTATE_F8( 00158 EM_fp_reg_specifier Fr1); 00159 00160 void 00161 GETSTATE_F10( 00162 EM_pred_reg_specifier Pr0, 00163 EM_fp_reg_specifier Fr1, 00164 EM_fp_reg_specifier Fr2); 00165 00166 void 00167 PUTSTATE_F10( 00168 EM_fp_reg_specifier Fr1); 00169 00170 00171 /******************************************************************************/ 00172 /* Define macros to make transformation to the EAS easier */ 00173 /******************************************************************************/ 00174 00175 #define get_bit(val, bit) \ 00176 ((val >> bit) &0x1) 00177 00178 00179 /******************************************************************************/ 00180 /* Define macros to simplify access to the fp82_ functions. This is done so */ 00181 /* the namespace doesn't get cluttered, while retaining convenient access. */ 00182 /* The FP82_NO_SHORTCUTS macro can be defined to prevent creation of these. */ 00183 /******************************************************************************/ 00184 00185 #ifndef FP82_NO_SHORTCUTS 00186 #define EM_initialize_state fp82_EM_initialize_state 00187 00188 #define fp_software_assistance_required fp82_fp_software_assistance_required 00189 #endif /* FP82_NO_SHORTCUTS */ 00190 00191 #endif /* _EM_SUPPORT_H */ 00192

Generated on Sat May 15 19:40:00 2004 for test by doxygen 1.3.7