gdb/riscv: fix decode of c.sdsp instruction
authorChungyi Chi <demonic@csie.io>
Thu, 17 Sep 2020 08:45:50 +0000 (09:45 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 17 Sep 2020 08:45:50 +0000 (09:45 +0100)
The decode of c.sdsp was incorrectly claiming to be a 4-byte store
instead of an 8-byte store.

gdb/ChangeLog:

* riscv-tdep.c (riscv-insn::decode): Fix recorded insn type.

gdb/ChangeLog
gdb/riscv-tdep.c

index 84ee292750ec43830d4599c20cb14a78a2b5fb9f..c6136f6b9f59d4fd796c112604b2a203f9d9b415 100644 (file)
@@ -1,3 +1,7 @@
+2020-09-17  Chungyi Chi  <demonic@csie.io>
+
+       * riscv-tdep.c (riscv-insn::decode): Fix recorded insn type.
+
 2020-09-16  Simon Marchi  <simon.marchi@efficios.com>
 
        * breakpoint.h (init_catchpoint): Change int parameter to bool.
index a7c25642d0352d89df6d2f7ac576a81afed0bba7..ac4ac1b6fdf42a6a9474ac1d0e0f7c5fb9e99f6d 100644 (file)
@@ -1472,7 +1472,7 @@ riscv_insn::decode (struct gdbarch *gdbarch, CORE_ADDR pc)
       else if (is_c_swsp_insn (ival))
        decode_css_type_insn (SW, ival, EXTRACT_RVC_SWSP_IMM (ival));
       else if (xlen != 4 && is_c_sdsp_insn (ival))
-       decode_css_type_insn (SW, ival, EXTRACT_RVC_SDSP_IMM (ival));
+       decode_css_type_insn (SD, ival, EXTRACT_RVC_SDSP_IMM (ival));
       /* C_JR and C_MV have the same opcode.  If RS2 is 0, then this is a C_JR.
         So must try to match C_JR first as it ahs more bits in mask.  */
       else if (is_c_jr_insn (ival))