1/* Native-dependent code for NetBSD/amd64. 2 3 Copyright 2003, 2004 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22#include "defs.h" 23 24#include "gdb_assert.h" 25 26#include "amd64-tdep.h" 27#include "amd64-nat.h" 28 29/* Mapping between the general-purpose registers in NetBSD/amd64 30 `struct reg' format and GDB's register cache layout for 31 NetBSD/i386. 32 33 Note that most (if not all) NetBSD/amd64 registers are 64-bit, 34 while the NetBSD/i386 registers are all 32-bit, but since we're 35 little-endian we get away with that. */ 36 37/* From <machine/reg.h>. */ 38static int amd64nbsd32_r_reg_offset[] = 39{ 40 14 * 8, /* %eax */ 41 3 * 8, /* %ecx */ 42 2 * 8, /* %edx */ 43 13 * 8, /* %ebx */ 44 24 * 8, /* %esp */ 45 12 * 8, /* %ebp */ 46 1 * 8, /* %esi */ 47 0 * 8, /* %edi */ 48 21 * 8, /* %eip */ 49 23 * 8, /* %eflags */ 50 22 * 8, /* %cs */ 51 25 * 8, /* %ss */ 52 18 * 8, /* %ds */ 53 17 * 8, /* %es */ 54 16 * 8, /* %fs */ 55 15 * 8 /* %gs */ 56}; 57 58 59/* Provide a prototype to silence -Wmissing-prototypes. */ 60void _initialize_amd64nbsd_nat (void); 61 62void 63_initialize_amd64nbsd_nat (void) 64{ 65 amd64_native_gregset32_reg_offset = amd64nbsd32_r_reg_offset; 66 amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64nbsd32_r_reg_offset); 67 amd64_native_gregset64_reg_offset = amd64nbsd_r_reg_offset; 68} 69