178 #define VALID_CVALUE(dtype, symbol) ((NULL != (symbol)->const_value_##dtype) && (symbol_c::cs_const_value == (symbol)->const_value_##dtype->status)) |
178 #define VALID_CVALUE(dtype, symbol) ((NULL != (symbol)->const_value_##dtype) && (symbol_c::cs_const_value == (symbol)->const_value_##dtype->status)) |
179 #define ISZERO_CVALUE(dtype, symbol) ((VALID_CVALUE(dtype, symbol)) && (GET_CVALUE(dtype, symbol) == 0)) |
179 #define ISZERO_CVALUE(dtype, symbol) ((VALID_CVALUE(dtype, symbol)) && (GET_CVALUE(dtype, symbol) == 0)) |
180 |
180 |
181 #define DO_BINARY_OPER(dtype, oper, otype)\ |
181 #define DO_BINARY_OPER(dtype, oper, otype)\ |
182 if (VALID_CVALUE(dtype, symbol->r_exp) && VALID_CVALUE(dtype, symbol->l_exp)) { \ |
182 if (VALID_CVALUE(dtype, symbol->r_exp) && VALID_CVALUE(dtype, symbol->l_exp)) { \ |
183 NEW_CVALUE(dtype, symbol); \ |
183 NEW_CVALUE(otype, symbol); \ |
184 SET_CVALUE(otype, symbol, GET_CVALUE(dtype, symbol->l_exp) oper GET_CVALUE(dtype, symbol->r_exp)); \ |
184 SET_CVALUE(otype, symbol, GET_CVALUE(dtype, symbol->l_exp) oper GET_CVALUE(dtype, symbol->r_exp)); \ |
185 } |
185 } |
186 |
186 |
187 #define DO_UNARY_OPER(dtype, oper, arg)\ |
187 #define DO_UNARY_OPER(dtype, oper, arg)\ |
188 if (VALID_CVALUE(dtype, arg)) { \ |
188 if (VALID_CVALUE(dtype, arg)) { \ |