X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fstap-probe.c;h=b6de873d2c935a42e21c6b19bcb667a3b5959348;hb=6b78c3f83c8bcbfa714aab7627ece9673b2d602a;hp=866b41e7f04e367c1d94c81cbd783e3eae30017a;hpb=d72a9b85651c872378f6dd732cb578f6f055a9b3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index 866b41e7f0..b6de873d2c 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -774,23 +774,24 @@ stap_parse_register_operand (struct stap_parse_info *p) code would like to perform on the register name. */ if (gdbarch_stap_adjust_register_p (gdbarch)) { - std::string oldregname = regname; + std::string newregname + = gdbarch_stap_adjust_register (gdbarch, p, regname, regnum); - gdbarch_stap_adjust_register (gdbarch, p, regname, regnum); - - if (regname != oldregname) + if (regname != newregname) { /* This is just a check we perform to make sure that the arch-dependent code has provided us with a valid register name. */ - regnum = user_reg_map_name_to_regnum (gdbarch, regname.c_str (), - regname.size ()); + regnum = user_reg_map_name_to_regnum (gdbarch, newregname.c_str (), + newregname.size ()); if (regnum == -1) internal_error (__FILE__, __LINE__, _("Invalid register name '%s' after replacing it" " (previous name was '%s')"), - regname.c_str (), oldregname.c_str ()); + newregname.c_str (), regname.c_str ()); + + regname = newregname; } }