Use a branch instead of math on enum types

This commit is contained in:
Dale Weiler 2013-11-13 04:57:18 -05:00
parent f43106017f
commit 1900262df4

View file

@ -476,7 +476,10 @@ static bool parser_sy_apply_operator(parser_t *parser, shunt *sy)
type_name[exprs[0]->vtype]); type_name[exprs[0]->vtype]);
return false; return false;
} }
out = (ast_expression*)ast_unary_new(ctx, (VINSTR_NEG_F-TYPE_FLOAT) + exprs[0]->vtype, exprs[0]); if (exprs[0]->vtype == TYPE_FLOAT)
out = (ast_expression*)ast_unary_new(ctx, VINSTR_NEG_F, exprs[0]);
else
out = (ast_expression*)ast_unary_new(ctx, VINSTR_NEG_V, exprs[0]);
break; break;
case opid2('!','P'): case opid2('!','P'):