aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/symbols.c')
-rw-r--r--gas/symbols.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gas/symbols.c b/gas/symbols.c
index 3e7b73e..a3ece14 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -375,7 +375,7 @@ symbol_table_insert (symbolP)
*/
symbolS *
symbol_find_or_make (name)
- char *name;
+ const char *name;
{
register symbolS *symbolP;
@@ -752,6 +752,8 @@ resolve_symbol_value (symp)
case O_le:
case O_ge:
case O_gt:
+ case O_logical_and:
+ case O_logical_or:
resolve_symbol_value (symp->sy_value.X_add_symbol);
resolve_symbol_value (symp->sy_value.X_op_symbol);
seg_left = S_GET_SEGMENT (symp->sy_value.X_add_symbol);
@@ -787,6 +789,8 @@ resolve_symbol_value (symp)
case O_le: val = left <= right ? ~ (offsetT) 0 : 0;
case O_ge: val = left >= right ? ~ (offsetT) 0 : 0;
case O_gt: val = left > right ? ~ (offsetT) 0 : 0;
+ case O_logical_and: val = left && right; break;
+ case O_logical_or: val = left || right; break;
default: abort ();
}
S_SET_VALUE (symp,
@@ -1543,6 +1547,12 @@ print_expr_1 (file, exp)
case O_gt:
fprintf (file, "gt");
break;
+ case O_logical_and:
+ fprintf (file, "logical_and");
+ break;
+ case O_logical_or:
+ fprintf (file, "logical_or");
+ break;
case O_add:
indent_level++;
fprintf (file, "add\n%*s<", indent_level * 4, "");