diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/bfin-parse.y | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 64b3470..1b939ed 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-09-18 Bernd Schmidt <bernd.schmidt@analog.com> + + * config/bfin-parse.y (binary): Change sub of const to add of negated + const. + 2006-09-17 Mei Ligang <ligang@sunnorth.com.cn> * config/tc-score.c: New file. diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y index f74074e..b3416aa 100644 --- a/gas/config/bfin-parse.y +++ b/gas/config/bfin-parse.y @@ -4328,6 +4328,12 @@ binary (Expr_Op_Type op, Expr_Node *x, Expr_Node *y) x = y; y = t; } + /* Canonicalize subtraction of const to addition of negated const. */ + if (op == Expr_Op_Type_Sub && y->type == Expr_Node_Constant) + { + op = Expr_Op_Type_Add; + y->value.i_value = -y->value.i_value; + } if (y->type == Expr_Node_Constant && x->type == Expr_Node_Binop && x->Right_Child->type == Expr_Node_Constant) { |