change delegation for to_read_description
[deliverable/binutils-gdb.git] / gdb / amd64-windows-tdep.c
index a75d6bafcf351e0124c878644f8d9a763ded6f2c..59a960a99e3b01d24751ef95b700ad53e8e1d54f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,8 +18,6 @@
 #include "defs.h"
 #include "osabi.h"
 #include "amd64-tdep.h"
-#include "solib.h"
-#include "solib-target.h"
 #include "gdbtypes.h"
 #include "gdbcore.h"
 #include "regcache.h"
@@ -651,7 +649,8 @@ amd64_windows_frame_decode_insns (struct frame_info *this_frame,
           ex_ui.CountOfCodes, ex_ui.FrameRegisterOffset);
 
       /* Check version.  */
-      if (PEX64_UWI_VERSION (ex_ui.Version_Flags) != 1)
+      if (PEX64_UWI_VERSION (ex_ui.Version_Flags) != 1
+         && PEX64_UWI_VERSION (ex_ui.Version_Flags) != 2)
        return;
 
       if (j == 0
@@ -698,7 +697,17 @@ amd64_windows_frame_decode_insns (struct frame_info *this_frame,
        return;
 
       end_insns = &insns[codes_count * 2];
-      for (p = insns; p < end_insns; p += 2)
+      p = insns;
+
+      /* Skip opcodes 6 of version 2.  This opcode is not documented.  */
+      if (PEX64_UWI_VERSION (ex_ui.Version_Flags) == 2)
+       {
+         for (; p < end_insns; p += 2)
+           if (PEX64_UNWCODE_CODE (p[1]) != 6)
+             break;
+       }
+
+      for (; p < end_insns; p += 2)
        {
          int reg;
 
@@ -1177,6 +1186,8 @@ amd64_windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   amd64_init_abi (info, gdbarch);
 
+  windows_init_abi (info, gdbarch);
+
   /* On Windows, "long"s are only 32bit.  */
   set_gdbarch_long_bit (gdbarch, 32);
 
@@ -1187,14 +1198,9 @@ amd64_windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_skip_trampoline_code (gdbarch,
                                    amd64_windows_skip_trampoline_code);
 
-  set_gdbarch_iterate_over_objfiles_in_search_order
-    (gdbarch, windows_iterate_over_objfiles_in_search_order);
-
   set_gdbarch_skip_prologue (gdbarch, amd64_windows_skip_prologue);
 
   set_gdbarch_auto_wide_charset (gdbarch, amd64_windows_auto_wide_charset);
-
-  set_solib_ops (gdbarch, &solib_target_so_ops);
 }
 
 /* -Wmissing-prototypes */
This page took 0.026862 seconds and 4 git commands to generate.