X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=fold.c;h=4664487a3eb776ec6251483fe3180614081337dc;hp=99ab73773dba2573a3659a234992d4d773d5c4a8;hb=869905388781e978c4d3a5e4adcf999f19c4a099;hpb=003bb9dfb41791a84c496d43f69438b0daadfc05 diff --git a/fold.c b/fold.c index 99ab737..4664487 100644 --- a/fold.c +++ b/fold.c @@ -734,13 +734,18 @@ static GMQCC_INLINE ast_expression *fold_intrin_fabs(fold_t *fold, ast_value *va } ast_expression *fold_intrin(fold_t *fold, const char *intrin, ast_expression **arg) { - if (!strcmp(intrin, "mod")) return fold_intrin_mod (fold, (ast_value*)arg[0], (ast_value*)arg[1]); - if (!strcmp(intrin, "pow")) return fold_intrin_pow (fold, (ast_value*)arg[0], (ast_value*)arg[1]); - if (!strcmp(intrin, "exp")) return fold_intrin_exp (fold, (ast_value*)arg[0]); - if (!strcmp(intrin, "isnan")) return fold_intrin_isnan(fold, (ast_value*)arg[0]); - if (!strcmp(intrin, "fabs")) return fold_intrin_fabs (fold, (ast_value*)arg[0]); + ast_expression *ret = NULL; - return NULL; + if (!strcmp(intrin, "mod")) ret = fold_intrin_mod (fold, (ast_value*)arg[0], (ast_value*)arg[1]); + if (!strcmp(intrin, "pow")) ret = fold_intrin_pow (fold, (ast_value*)arg[0], (ast_value*)arg[1]); + if (!strcmp(intrin, "exp")) ret = fold_intrin_exp (fold, (ast_value*)arg[0]); + if (!strcmp(intrin, "isnan")) ret = fold_intrin_isnan(fold, (ast_value*)arg[0]); + if (!strcmp(intrin, "fabs")) ret = fold_intrin_fabs (fold, (ast_value*)arg[0]); + + if (ret) + ++opts_optimizationcount[OPTIM_CONST_FOLD]; + + return ret; } /*