From: Dale Weiler Date: Wed, 18 Sep 2013 23:15:24 +0000 (-0400) Subject: Generate (non_const_float * (1.0 / constant_float)) for (non_const_float / constant_f... X-Git-Tag: 0.3.5~87 X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=commitdiff_plain;h=e18849fa423e57637c30e3f1aa633f8485fb96e6 Generate (non_const_float * (1.0 / constant_float)) for (non_const_float / constant_float) expressions. --- diff --git a/fold.c b/fold.c index 98e637a..32eeae6 100644 --- a/fold.c +++ b/fold.c @@ -386,7 +386,7 @@ static GMQCC_INLINE ast_expression *fold_op_mul_vec(fold_t *fold, vec3_t vec, as out = (ast_expression*)ast_member_new(fold_ctx(fold), (ast_expression*)sel, set[0]-'x', NULL); out->node.keep = false; ((ast_member*)out)->rvalue = true; - if (x != -1) + if (x != -1.0f) return (ast_expression*)ast_binary_new(fold_ctx(fold), INSTR_MUL_F, fold_constgen_float(fold, x), out); } return NULL; @@ -483,6 +483,13 @@ static GMQCC_INLINE ast_expression *fold_op_div(fold_t *fold, ast_value *a, ast_ return fold_constgen_float(fold, fold_immvalue_float(a) / fold_immvalue_float(b)); else return (ast_expression*)fold->imm_float[3]; /* inf */ + } else if (fold_can_1(b)) { + return (ast_expression*)ast_binary_new( + fold_ctx(fold), + INSTR_MUL_F, + (ast_expression*)a, + fold_constgen_float(fold, 1.0f / fold_immvalue_float(b)) + ); } } else if (isvector(a)) { if (fold_can_2(a, b)) { diff --git a/misc/xonotic_export.sh b/misc/xonotic_export.sh old mode 100644 new mode 100755 index 08f0355..f1413ca --- a/misc/xonotic_export.sh +++ b/misc/xonotic_export.sh @@ -35,8 +35,14 @@ rm -f i18n-guide.txt rm -rf server-testcase rm -f Makefile rm -f *.src +rm -f qccversion.* echo "complete" +cat client/progs.src | sed "s/\.\.\///" > csprogs.src +cat server/progs.src | sed "s/\.\.\///" > progs.src +cat menu/progs.src | sed "s/\.\.\///" > menu.src + + echo -n "creating zip archive ... " zip -r -9 ../xonotic.zip * > /dev/null echo "complete"