From: Wolfgang (Blub) Bumiller Date: Tue, 14 Aug 2012 21:43:08 +0000 (+0200) Subject: const folding for division X-Git-Tag: 0.1-rc1~282 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a5b3faae30e33c00e6e09f0472dd3e0d37c243a3;p=xonotic%2Fgmqcc.git const folding for division --- diff --git a/parser.c b/parser.c index 9887978..4b09b45 100644 --- a/parser.c +++ b/parser.c @@ -608,7 +608,11 @@ static bool parser_sy_pop(parser_t *parser, shunt *sy) type_name[exprs[1]->expression.vtype]); return false; } - out = (ast_expression*)ast_binary_new(ctx, INSTR_DIV_F, exprs[0], exprs[1]); + if (CanConstFold(exprs[0], exprs[1])) + out = (ast_expression*)parser_const_float(parser, + asvalue[0]->constval.vfloat / asvalue[1]->constval.vfloat); + else + out = (ast_expression*)ast_binary_new(ctx, INSTR_DIV_F, exprs[0], exprs[1]); break; case opid1('%'): case opid2('%','='):