Move encoded as 'or' in binutils.
authorSimon Dardis <Simon.Dardis@imgtec.com>
Wed, 28 Oct 2015 16:52:17 +0000 (09:52 -0700)
committerJoel Brobecker <brobecker@adacore.com>
Wed, 28 Oct 2015 16:54:30 +0000 (09:54 -0700)
A patch (http://sourceware.org/ml/binutils/2015-07/msg00376.html)
submitted to binutils will be encoding move as an 'or' instruction over
[d]addu in assembly and various code stubs. This patch for gdb addresses
that change for the mips specific parts of gdb.

gdb/ChangeLog:

* mips-linux-tdep.c (mips_linux_in_dynsym_stub): Recognise 'or'
as move along with [d]addu.

gdb/ChangeLog
gdb/mips-linux-tdep.c

index 181991ae4b01a260b55bc083987f9ab2a25c4d85..7209666af922b5accd561acb3e6445aa256070a9 100644 (file)
@@ -1,3 +1,8 @@
+2015-10-28  Simon Dardis  <Simon.Dardis@imgtec.com>
+
+       * mips-linux-tdep.c (mips_linux_in_dynsym_stub): Recognise 'or'
+       as move along with [d]addu.
+
 2015-10-28  Yao Qi  <yao.qi@linaro.org>
 
        * aarch64-tdep.c (aarch64_software_single_step): Pass 1 to
index f7eaf34ff1d46824d2b9ca18fcc7032ca72507c3..b29073b7343087e209b01c371824e186891ac6e5 100644 (file)
@@ -739,15 +739,17 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc)
   insn = extract_unsigned_integer (p + 4, 4, byte_order);
   if (n64)
     {
-      /* daddu t7,ra */
-      if (insn != 0x03e0782d)
+      /* 'daddu t7,ra' or 'or t7, ra, zero'*/
+      if (insn != 0x03e0782d || insn != 0x03e07825)
        return 0;
+
     }
   else
     {
-      /* addu t7,ra */
-      if (insn != 0x03e07821)
+      /* 'addu t7,ra'  or 'or t7, ra, zero'*/
+      if (insn != 0x03e07821 || insn != 0x03e07825)
        return 0;
+
     }
 
   insn = extract_unsigned_integer (p + 8, 4, byte_order);
This page took 0.033591 seconds and 4 git commands to generate.