diff options
author | Joel Brobecker <brobecker@gnat.com> | 2009-01-11 13:15:56 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2009-01-11 13:15:56 +0000 |
commit | d076129955bd55521f3793076b7ae77e17e1dea4 (patch) | |
tree | 28317e2fc148169d9239bc1717d8896309d5865b /gdb/amd64-windows-nat.c | |
parent | bfb87e33ab2006cc3ab23d18fd921425223337c5 (diff) | |
download | gdb-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.c | 92 |
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); +} |