diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c6f37e5f68..02db7089e7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2013-12-28 Sergio Durigan Junior + + * arm-linux-tdep.c (arm_stap_is_single_operand): Accept "$" as a + literal prefix. Also accept no prefix at all. + (arm_stap_parse_special_token): Likewise. + (arm_linux_init_abi): Likewise. + 2013-12-28 Sergio Durigan Junior PR tdep/15653 diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index 0284f69ccd..830b2ebc7a 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -1116,7 +1116,7 @@ arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, static int arm_stap_is_single_operand (struct gdbarch *gdbarch, const char *s) { - return (*s == '#' /* Literal number. */ + return (*s == '#' || *s == '$' || isdigit (*s) /* Literal number. */ || *s == '[' /* Register indirection or displacement. */ || isalpha (*s)); /* Register value. */ @@ -1183,8 +1183,8 @@ arm_stap_parse_special_token (struct gdbarch *gdbarch, ++tmp; tmp = skip_spaces_const (tmp); - if (*tmp++ != '#') - return 0; + if (*tmp == '#' || *tmp == '$') + ++tmp; if (*tmp == '-') { @@ -1235,7 +1235,7 @@ static void arm_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - static const char *const stap_integer_prefixes[] = { "#", NULL }; + static const char *const stap_integer_prefixes[] = { "#", "$", "", NULL }; static const char *const stap_register_prefixes[] = { "r", NULL }; static const char *const stap_register_indirection_prefixes[] = { "[", NULL };