static int exp_parse_failed = 0;
static bool parsing_insn_operands = false;
+static char *g_curr_insn_str;
static char *
parse_expression (char *s, expressionS *exp)
if (parse_bpf_register ((char *) name, 'r', ®no)
|| parse_bpf_register ((char *) name, 'w', ®no))
{
- as_bad (_("unexpected register name `%s' in expression"),
- name);
+ as_bad (_("unexpected register name `%s' in instruction `%s'"),
+ name, g_curr_insn_str);
return false;
}
}
function above. */
partial_match_length = 0;
errmsg = NULL;
+ g_curr_insn_str = str;
#define PARSE_ERROR(...) parse_error (s > str ? s - str : 0, __VA_ARGS__)
.*: Assembler messages:
-.*:1: Error: unexpected register name `w3' in expression
-.*:2: Error: unexpected register name `r3' in expression
-.*:2: Error: unexpected register name `r3' in expression
-.*:3: Error: unexpected register name `r3' in expression
-.*:3: Error: unexpected register name `r3' in expression
-.*:4: Error: unexpected register name `r3' in expression
-.*:4: Error: unexpected register name `r3' in expression
+.*:1: Error: unexpected register name `w3' in instruction `goto w3'
+.*:2: Error: unexpected register name `r3' in instruction `r2 =r3'
+.*:2: Error: unexpected register name `r3' in instruction `r2 =r3'
+.*:3: Error: unexpected register name `r3' in instruction `r2 =r3'
+.*:3: Error: unexpected register name `r3' in instruction `r2 =r3'
+.*:4: Error: unexpected register name `r3' in instruction `r2 =1\+r3'
+.*:4: Error: unexpected register name `r3' in instruction `r2 =1\+r3'