aboutsummaryrefslogtreecommitdiff
path: root/gdb/amd64-windows-nat.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2009-01-11 13:15:56 +0000
committerJoel Brobecker <brobecker@gnat.com>2009-01-11 13:15:56 +0000
commitd076129955bd55521f3793076b7ae77e17e1dea4 (patch)
tree28317e2fc148169d9239bc1717d8896309d5865b /gdb/amd64-windows-nat.c
parentbfb87e33ab2006cc3ab23d18fd921425223337c5 (diff)
downloadgdb-d076129955bd55521f3793076b7ae77e17e1dea4.zip
gdb-d076129955bd55521f3793076b7ae77e17e1dea4.tar.gz
gdb-d076129955bd55521f3793076b7ae77e17e1dea4.tar.bz2
* amd64-windows-nat.c, amd64-windows-tdep.c: New files.
* config/i386/mingw64.mh, config/i386/nm-cygwin64.h: New files. * configure.host, configure.tgt: Add handling for x86_64/windows. * config/djgpp/fnchange.lst: Add entries for amd64-windows-nat.c and amd64-windows-tdep.c.
Diffstat (limited to 'gdb/amd64-windows-nat.c')
-rw-r--r--gdb/amd64-windows-nat.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/gdb/amd64-windows-nat.c b/gdb/amd64-windows-nat.c
new file mode 100644
index 0000000..88815a9
--- /dev/null
+++ b/gdb/amd64-windows-nat.c
@@ -0,0 +1,92 @@
+/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "win32-nat.h"
+
+#include <windows.h>
+
+#define context_offset(x) (offsetof (CONTEXT, x))
+static const int mappings[] =
+{
+ context_offset (Rax),
+ context_offset (Rbx),
+ context_offset (Rcx),
+ context_offset (Rdx),
+ context_offset (Rsi),
+ context_offset (Rdi),
+ context_offset (Rbp),
+ context_offset (Rsp),
+ context_offset (R8),
+ context_offset (R9),
+ context_offset (R10),
+ context_offset (R11),
+ context_offset (R12),
+ context_offset (R13),
+ context_offset (R14),
+ context_offset (R15),
+ context_offset (Rip),
+ context_offset (EFlags),
+ context_offset (SegCs),
+ context_offset (SegSs),
+ context_offset (SegDs),
+ context_offset (SegEs),
+ context_offset (SegFs),
+ context_offset (SegGs),
+ context_offset (FloatSave.FloatRegisters[0]),
+ context_offset (FloatSave.FloatRegisters[1]),
+ context_offset (FloatSave.FloatRegisters[2]),
+ context_offset (FloatSave.FloatRegisters[3]),
+ context_offset (FloatSave.FloatRegisters[4]),
+ context_offset (FloatSave.FloatRegisters[5]),
+ context_offset (FloatSave.FloatRegisters[6]),
+ context_offset (FloatSave.FloatRegisters[7]),
+ context_offset (FloatSave.ControlWord),
+ context_offset (FloatSave.StatusWord),
+ context_offset (FloatSave.TagWord),
+ context_offset (FloatSave.ErrorSelector),
+ context_offset (FloatSave.ErrorOffset),
+ context_offset (FloatSave.DataSelector),
+ context_offset (FloatSave.DataOffset),
+ context_offset (FloatSave.ErrorSelector)
+ /* XMM0-7 */ ,
+ context_offset (Xmm0),
+ context_offset (Xmm1),
+ context_offset (Xmm2),
+ context_offset (Xmm3),
+ context_offset (Xmm4),
+ context_offset (Xmm5),
+ context_offset (Xmm6),
+ context_offset (Xmm7),
+ context_offset (Xmm8),
+ context_offset (Xmm9),
+ context_offset (Xmm10),
+ context_offset (Xmm11),
+ context_offset (Xmm12),
+ context_offset (Xmm13),
+ context_offset (Xmm14),
+ context_offset (Xmm15),
+ /* MXCSR */
+ context_offset (FloatSave.MxCsr)
+};
+#undef context_offset
+
+void
+_initialize_amd64_windows_nat (void)
+{
+ win32_set_context_register_offsets (mappings);
+}