File indexing completed on 2025-02-21 10:05:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef CERN_FCODE
0019 #define CERN_FCODE
0020
0021
0022 #define CAT_BITS 6
0023 #define MASK_FC 0xfff
0024
0025
0026 #define FC_HALT_BIT 0x80000000L
0027
0028
0029 #define FC_VECTOR_BIT 0x40000000L
0030
0031
0032 #define FC_DYNAMIC_TEST_BIT 0x20000000L
0033
0034
0035 #define FC_DYNAMIC_INFO_BIT 0x10000000L
0036
0037
0038
0039
0040
0041
0042
0043
0044 typedef enum _category_ {
0045 CAT_NONE = 1,
0046 CAT_OP,
0047 CAT_CONV,
0048 CAT_CONST,
0049 CAT_MATH_SINGLE,
0050 CAT_MATH_DOUBLE,
0051 CAT_BITOP,
0052 CAT_VAR,
0053 CAT_LITERAL,
0054 CAT_COMIS,
0055 CAT_DYN,
0056 CAT_MASK,
0057 CAT_FLOW
0058 } Category;
0059
0060
0061 typedef enum _fcode_ {
0062
0063
0064
0065 FC_OR = 0 * 64,
0066 FC_AND,
0067 FC_NOT,
0068
0069 FC_LT,
0070 FC_LE,
0071
0072 FC_LTLT,
0073 FC_LTLE,
0074 FC_LELT,
0075 FC_LELE,
0076
0077 FC_GT,
0078 FC_GE,
0079
0080 FC_GTGT,
0081 FC_GTGE,
0082 FC_GEGT,
0083 FC_GEGE,
0084
0085 FC_EQ,
0086 FC_NE,
0087 FC_CT,
0088
0089 FC_PLUS,
0090 FC_MINUS,
0091 FC_TIMES,
0092 FC_DIV,
0093
0094 FC_UMINUS,
0095
0096 FC_POW,
0097
0098 FC_VADD,
0099 FC_VMUL,
0100 FC_VAND,
0101 FC_VOR,
0102 FC_VMIN,
0103 FC_VMAX,
0104
0105 FC_MIN,
0106 FC_MAX,
0107
0108
0109 FC_B_2_B = 16 * 64,
0110 FC_B_2_U,
0111 FC_B_2_LU,
0112 FC_B_2_I,
0113 FC_B_2_LI,
0114 FC_B_2_F,
0115 FC_B_2_LF,
0116 FC_U_2_B,
0117 FC_U_2_U,
0118 FC_U_2_LU,
0119 FC_U_2_I,
0120 FC_U_2_LI,
0121 FC_U_2_F,
0122 FC_U_2_LF,
0123 FC_LU_2_B,
0124 FC_LU_2_U,
0125 FC_LU_2_LU,
0126 FC_LU_2_I,
0127 FC_LU_2_LI,
0128 FC_LU_2_F,
0129 FC_LU_2_LF,
0130 FC_I_2_B,
0131 FC_I_2_U,
0132 FC_I_2_LU,
0133 FC_I_2_I,
0134 FC_I_2_LI,
0135 FC_I_2_F,
0136 FC_I_2_LF,
0137 FC_LI_2_B,
0138 FC_LI_2_U,
0139 FC_LI_2_LU,
0140 FC_LI_2_I,
0141 FC_LI_2_LI,
0142 FC_LI_2_F,
0143 FC_LI_2_LF,
0144 FC_F_2_B,
0145 FC_F_2_U,
0146 FC_F_2_LU,
0147 FC_F_2_I,
0148 FC_F_2_LI,
0149 FC_F_2_F,
0150 FC_F_2_LF,
0151 FC_LF_2_B,
0152 FC_LF_2_U,
0153 FC_LF_2_LU,
0154 FC_LF_2_I,
0155 FC_LF_2_LI,
0156 FC_LF_2_F,
0157 FC_LF_2_LF,
0158
0159
0160 FC_TRUE = 20 * 64,
0161 FC_FALSE,
0162 FC_PI,
0163 FC_DPI,
0164
0165 FC_UINT32_MIN,
0166 FC_UINT32_MAX,
0167 FC_UINT64_MIN,
0168 FC_UINT64_MAX,
0169
0170 FC_INT32_MIN,
0171 FC_INT32_MAX,
0172 FC_INT64_MIN,
0173 FC_INT64_MAX,
0174
0175 FC_FLOAT32_MIN,
0176 FC_FLOAT32_MAX,
0177 FC_FLOAT64_MIN,
0178 FC_FLOAT64_MAX,
0179
0180 FC_SUBSTR,
0181 FC_MATCH,
0182
0183
0184
0185 FC_FSIN = 21 * 64,
0186 FC_FCOS,
0187 FC_FSQRT,
0188 FC_FEXP,
0189 FC_FLOG,
0190 FC_FATAN,
0191 FC_FABS,
0192 FC_FLOG10,
0193 FC_FTANH,
0194 FC_FACOS,
0195 FC_FASIN,
0196 FC_FTAN,
0197 FC_FSINH,
0198 FC_FCOSH,
0199
0200 FC_FMOD,
0201 FC_FATAN2,
0202 FC_FSIGN,
0203
0204 FC_FINT,
0205 FC_FFRAC,
0206
0207
0208
0209
0210 FC_DSIN = 22 * 64,
0211 FC_DCOS,
0212 FC_DSQRT,
0213 FC_DEXP,
0214 FC_DLOG,
0215 FC_DATAN,
0216 FC_DABS,
0217 FC_DLOG10,
0218 FC_DTANH,
0219 FC_DACOS,
0220 FC_DASIN,
0221 FC_DTAN,
0222 FC_DSINH,
0223 FC_DCOSH,
0224
0225 FC_DMOD,
0226 FC_DATAN2,
0227 FC_DSIGN,
0228
0229 FC_DINT,
0230 FC_DFRAC,
0231
0232
0233
0234
0235
0236 FC_CWN_SCA_BOOL = 23 * 64,
0237 FC_CWN_SCA_UINT,
0238 FC_CWN_SCA_ULONG,
0239 FC_CWN_SCA_INT,
0240 FC_CWN_SCA_LONG,
0241 FC_CWN_SCA_FLOAT,
0242 FC_CWN_SCA_DOUBLE,
0243 FC_CWN_SCA_STR,
0244
0245 FC_CWN_MAT_BOOL,
0246 FC_CWN_MAT_UINT,
0247 FC_CWN_MAT_ULONG,
0248 FC_CWN_MAT_INT,
0249 FC_CWN_MAT_LONG,
0250 FC_CWN_MAT_FLOAT,
0251 FC_CWN_MAT_DOUBLE,
0252 FC_CWN_MAT_STR,
0253
0254 FC_RWN_SCA_LOAD,
0255
0256
0257
0258 FC_LIT_SCA_BOOL = 24 * 64,
0259 FC_LIT_SCA_UINT,
0260 FC_LIT_SCA_ULONG,
0261 FC_LIT_SCA_INT,
0262 FC_LIT_SCA_LONG,
0263 FC_LIT_SCA_FLOAT,
0264 FC_LIT_SCA_DOUBLE,
0265 FC_LIT_SCA_STR,
0266
0267
0268
0269
0270
0271 FC_IOR = 25 * 64,
0272 FC_IAND,
0273 FC_INOT,
0274 FC_IEOR,
0275 FC_ISHFT,
0276 FC_ISHFTC,
0277 FC_IBITS,
0278 FC_MVBITS,
0279 FC_BTEST,
0280 FC_IBSET,
0281 FC_IBCLR,
0282 FC_IABS,
0283 FC_IMOD,
0284 FC_ISIGN,
0285
0286
0287
0288 FC_CS_LFUN = 26 * 64,
0289 FC_CS_IFUN,
0290 FC_CS_RFUN,
0291 FC_CS_DFUN,
0292 FC_CS_SFUN,
0293
0294
0295
0296
0297
0298
0299 FC_CWN_DYN_BOOL = 27 * 64,
0300 FC_CWN_DYN_UINT,
0301 FC_CWN_DYN_ULONG,
0302 FC_CWN_DYN_INT,
0303 FC_CWN_DYN_LONG,
0304 FC_CWN_DYN_FLOAT,
0305 FC_CWN_DYN_DOUBLE,
0306 FC_CWN_DYN_STR,
0307
0308
0309
0310 FC_MASK_SET_BIT = 28 * 64,
0311 FC_MASK_GET_BIT,
0312 FC_MASK_GET_WORD,
0313
0314
0315
0316 FC_HALT = 31 * 64,
0317 FC_JUMP,
0318 FC_POP_JUMP,
0319 FC_JUMP_POP,
0320 FC_NOP,
0321 FC_DUMP,
0322 FC_CHECK_SHAPE,
0323
0324 FC_CUT,
0325 FC_GCUT_1D,
0326 FC_GCUT_2D
0327
0328 } FCode;
0329
0330
0331 extern Category qp_fc_to_cat[];
0332
0333
0334 #endif