old-cross-binutils/gdb/amd64-linux-tdep.h
H.J. Lu 90884b2b1f Enable XML target descriptions for x86.
gdb/

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* amd64-linux-nat.c (AMD64_LINUX_USER64_CS): New.
	(amd64_linux_read_description): Likewise.
	(_initialize_amd64_linux_nat): Set to_read_description to
	amd64_linux_read_description.

	* amd64-linux-tdep.c: Include "features/i386/amd64-linux.c".
	(amd64_linux_register_name): Removed.
	(amd64_linux_register_type): Likewise.
	(amd64_linux_core_read_description): New.
	(amd64_linux_init_abi): Set target description to
	tdesc_amd64_linux if needed.  Support orig_rax in target
	description.  Don't call set_gdbarch_register_name nor
	set_gdbarch_register_type.  Call
	set_gdbarch_core_read_description.
	(_initialize_amd64_linux_tdep): Call
	initialize_tdesc_amd64_linux.

	* amd64-linux-tdep.h (tdesc_amd64_linux): New.

	* amd64-tdep.c:  Include "features/i386/amd64.c".
	(amd64_register_names): Removed.
	(amd64_register_name): Likewise.
	(amd64_register_type): Likewise.
	(amd64_init_abi):  Set num_core_regs and register_names.  Set
	target description to tdesc_amd64 if needed.  Don't call
	set_gdbarch_register_name nor set_gdbarch_register_type.
	(_initialize_amd64_tdep): New.

	* i386-linux-nat.c (i386_linux_read_description): New.
	(_initialize_i386_linux_nat): Set to_read_description to
	i386_linux_read_description.

	* i386-linux-tdep.c: Include "features/i386/i386-linux.c".
	(i386_linux_register_name): Removed.
	(i386_linux_core_read_description): New.
	(i386_linux_read_description): Likewise.
	(i386_linux_init_abi): Don't call set_gdbarch_register_name.
	Set target description to tdesc_i386_linux if needed.  Support
	orig_eax.  Set register_reggroup_p.  Call
	set_gdbarch_core_read_description.
	(_initialize_i386_linux_tdep): Call initialize_tdesc_i386_linux.

	* i386-linux-tdep.h (tdesc_i386_linux): New.

	* i386-nto-tdep.c (i386nto_regset_id): Replace I386_NUM_FREGS
	with I387_NUM_REGS.

	* i386-tdep.c: Include "features/i386/i386.c".
	(i386_register_names): Make it const.
	(i386_mmx_names): Likewise.
	(i386_num_register_names): Removed.
	(i386_register_name): Likewise.
	(i386_eflags_type): Likewise.
	(i386_mxcsr_type): Likewise.
	(i386_sse_type): Likewise.
	(i386_register_type): Likewise.
	(i387_ext_type): Call tdesc_find_type instead of arch_float_type.
	(i386_pseudo_register_name): New.
	(i386_pseudo_register_type): Likewise.
	(i386_mmx_type): Make it static.
	(i386_gdbarch_init): Check arch.  Replace I386_NUM_FREGS with
	I387_NUM_REGS.  Set num_core_regs and register_names.  Don't
	call set_gdbarch_register_name nor set_gdbarch_register_type.
	Set register_reggroup_p.  Set target description to tdesc_i386
	if needed.  Call set_tdesc_pseudo_register_type,
	set_tdesc_pseudo_register_name and tdesc_use_registers.
	(_initialize_i386_tdep): Call initialize_tdesc_i386.
	initialize_tdesc_x86_64.

	* i386-tdep.h (gdbarch_tdep): Remove i386_eflags_type,
	i386_mxcsr_type and i386_sse_type.  Add num_core_regs,
	register_names, tdesc and register_reggroup_p.
	(I386_NUM_FREGS): Removed.
	(i386_eflags_type): Likewise.
	(i386_mxcsr_type): Likewise.
	(i386_mmx_type): Likewise.
	(i386_sse_type): Likewise.
	(i386_register_name): Likewise.
	(i386_regnum): Add I386_MXCSR_REGNUM.
	(I386_SSE_NUM_REGS): Defined with I386_MXCSR_REGNUM.

	* i387-tdep.h (I387_NUM_REGS): New.

	* regformats/i386/i386-linux.dat: Generated.
	* regformats/i386/i386.dat: Likewise.
	* regformats/i386/amd64-linux.dat: Likewise.
	* regformats/i386/amd64.dat: Likewise.

	* regformats/reg-i386-linux.dat: Removed.
	* regformats/reg-i386.dat: Likewise.
	* regformats/reg-x86-64-linux.dat: Likewise.
	* regformats/reg-x86-64.dat: Likewise.

gdb/gdbserver/

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (clean): Replace reg-i386.c, reg-x86-64.c,
	reg-i386-linux.c and reg-x86-64-linux.c with i386.c, amd64.c,
	i386-linux.c and amd64-linux.c.
	(reg-i386.o): Removed.
	(reg-i386.c): Likewise.
	(reg-i386-linux.o): Likewise.
	(reg-i386-linux.c): Likewise.
	(reg-x86-64.o): Likewise.
	(reg-x86-64.c): Likewise.
	(reg-x86-64-linux.o): Likewise.
	(reg-x86-64-linux.c): Likewise.
	(i386.o): New.
	(i386.c): Likewise.
	(i386-linux.o): Likewise.
	(i386-linux.c): Likewise.
	(amd64.o): Likewise.
	(amd64.c): Likewise.
	(amd64-linux.o): Likewise.
	(amd64-linux.c): Likewise.

	* configure.srv (srv_i386_regobj): New.
	(srv_i386_linux_regobj): Likewise.
	(srv_amd64_regobj): Likewise.
	(srv_amd64_linux_regobj): Likewise.
	(srv_i386_32bit_xmlfiles): Likewise.
	(srv_i386_64bit_xmlfiles): Likewise.
	(srv_i386_xmlfiles): Likewise.
	(srv_amd64_xmlfiles): Likewise.
	(srv_i386_linux_xmlfiles): Likewise.
	(srv_amd64_linux_xmlfiles): Likewise.
	(i[34567]86-*-cygwin*): Set srv_regobj to $srv_i386_regobj.  Set
	srv_xmlfiles to $srv_i386_xmlfiles.
	(i[34567]86-*-mingw32ce*): Likewise.
	(i[34567]86-*-mingw*): Likewise.
	(i[34567]86-*-nto*): Likewise.
	(i[34567]86-*-linux*): Set srv_regobj to $srv_i386_linux_regobj
	and $srv_amd64_linux_regobj.  Set srv_xmlfiles to
	$srv_i386_linux_xmlfiles and $srv_amd64_linux_xmlfiles.
	(x86_64-*-linux*): Likewise.

	* linux-x86-low.c (init_registers_x86_64_linux): Removed.
	(init_registers_amd64_linux): New.
	(x86_arch_setup): Replace init_registers_x86_64_linux with
	init_registers_amd64_linux.

gdb/testsuite/

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.xml/tdesc-regs.exp (architecture): New.  Set it for x86.
	(load_description): Set architecture if defined.
2010-03-01 15:33:32 +00:00

310 lines
8.9 KiB
C

/* Target-dependent code for GNU/Linux AMD64.
Copyright (C) 2006, 2007, 2008, 2009, 2010 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/>. */
#ifndef AMD64_LINUX_TDEP_H
#define AMD64_LINUX_TDEP_H
/* Like for i386 GNU/Linux, there is an extra "register"
used to control syscall restarting. */
/* Register number for the "orig_rax" register. If this register
contains a value >= 0 it is interpreted as the system call number
that the kernel is supposed to restart. */
#define AMD64_LINUX_ORIG_RAX_REGNUM (AMD64_MXCSR_REGNUM + 1)
/* Total number of registers for GNU/Linux. */
#define AMD64_LINUX_NUM_REGS (AMD64_LINUX_ORIG_RAX_REGNUM + 1)
/* Linux target description. */
extern struct target_desc *tdesc_amd64_linux;
/* Enum that defines the syscall identifiers for amd64 linux.
Used for process record/replay, these will be translated into
a gdb-canonical set of syscall ids in linux-record.c. */
enum amd64_syscall {
amd64_sys_read = 0,
amd64_sys_write = 1,
amd64_sys_open = 2,
amd64_sys_close = 3,
amd64_sys_newstat = 4,
amd64_sys_newfstat = 5,
amd64_sys_newlstat = 6,
amd64_sys_poll = 7,
amd64_sys_lseek = 8,
amd64_sys_mmap = 9,
amd64_sys_mprotect = 10,
amd64_sys_munmap = 11,
amd64_sys_brk = 12,
amd64_sys_rt_sigaction = 13,
amd64_sys_rt_sigprocmask = 14,
amd64_sys_rt_sigreturn = 15,
amd64_sys_ioctl = 16,
amd64_sys_pread64 = 17,
amd64_sys_pwrite64 = 18,
amd64_sys_readv = 19,
amd64_sys_writev = 20,
amd64_sys_access = 21,
amd64_sys_pipe = 22,
amd64_sys_select = 23,
amd64_sys_sched_yield = 24,
amd64_sys_mremap = 25,
amd64_sys_msync = 26,
amd64_sys_mincore = 27,
amd64_sys_madvise = 28,
amd64_sys_shmget = 29,
amd64_sys_shmat = 30,
amd64_sys_shmctl = 31,
amd64_sys_dup = 32,
amd64_sys_dup2 = 33,
amd64_sys_pause = 34,
amd64_sys_nanosleep = 35,
amd64_sys_getitimer = 36,
amd64_sys_alarm = 37,
amd64_sys_setitimer = 38,
amd64_sys_getpid = 39,
amd64_sys_sendfile64 = 40,
amd64_sys_socket = 41,
amd64_sys_connect = 42,
amd64_sys_accept = 43,
amd64_sys_sendto = 44,
amd64_sys_recvfrom = 45,
amd64_sys_sendmsg = 46,
amd64_sys_recvmsg = 47,
amd64_sys_shutdown = 48,
amd64_sys_bind = 49,
amd64_sys_listen = 50,
amd64_sys_getsockname = 51,
amd64_sys_getpeername = 52,
amd64_sys_socketpair = 53,
amd64_sys_setsockopt = 54,
amd64_sys_getsockopt = 55,
amd64_sys_clone = 56,
amd64_sys_fork = 57,
amd64_sys_vfork = 58,
amd64_sys_execve = 59,
amd64_sys_exit = 60,
amd64_sys_wait4 = 61,
amd64_sys_kill = 62,
amd64_sys_uname = 63,
amd64_sys_semget = 64,
amd64_sys_semop = 65,
amd64_sys_semctl = 66,
amd64_sys_shmdt = 67,
amd64_sys_msgget = 68,
amd64_sys_msgsnd = 69,
amd64_sys_msgrcv = 70,
amd64_sys_msgctl = 71,
amd64_sys_fcntl = 72,
amd64_sys_flock = 73,
amd64_sys_fsync = 74,
amd64_sys_fdatasync = 75,
amd64_sys_truncate = 76,
amd64_sys_ftruncate = 77,
amd64_sys_getdents = 78,
amd64_sys_getcwd = 79,
amd64_sys_chdir = 80,
amd64_sys_fchdir = 81,
amd64_sys_rename = 82,
amd64_sys_mkdir = 83,
amd64_sys_rmdir = 84,
amd64_sys_creat = 85,
amd64_sys_link = 86,
amd64_sys_unlink = 87,
amd64_sys_symlink = 88,
amd64_sys_readlink = 89,
amd64_sys_chmod = 90,
amd64_sys_fchmod = 91,
amd64_sys_chown = 92,
amd64_sys_fchown = 93,
amd64_sys_lchown = 94,
amd64_sys_umask = 95,
amd64_sys_gettimeofday = 96,
amd64_sys_getrlimit = 97,
amd64_sys_getrusage = 98,
amd64_sys_sysinfo = 99,
amd64_sys_times = 100,
amd64_sys_ptrace = 101,
amd64_sys_getuid = 102,
amd64_sys_syslog = 103,
amd64_sys_getgid = 104,
amd64_sys_setuid = 105,
amd64_sys_setgid = 106,
amd64_sys_geteuid = 107,
amd64_sys_getegid = 108,
amd64_sys_setpgid = 109,
amd64_sys_getppid = 110,
amd64_sys_getpgrp = 111,
amd64_sys_setsid = 112,
amd64_sys_setreuid = 113,
amd64_sys_setregid = 114,
amd64_sys_getgroups = 115,
amd64_sys_setgroups = 116,
amd64_sys_setresuid = 117,
amd64_sys_getresuid = 118,
amd64_sys_setresgid = 119,
amd64_sys_getresgid = 120,
amd64_sys_getpgid = 121,
amd64_sys_setfsuid = 122,
amd64_sys_setfsgid = 123,
amd64_sys_getsid = 124,
amd64_sys_capget = 125,
amd64_sys_capset = 126,
amd64_sys_rt_sigpending = 127,
amd64_sys_rt_sigtimedwait = 128,
amd64_sys_rt_sigqueueinfo = 129,
amd64_sys_rt_sigsuspend = 130,
amd64_sys_sigaltstack = 131,
amd64_sys_utime = 132,
amd64_sys_mknod = 133,
amd64_sys_personality = 135,
amd64_sys_ustat = 136,
amd64_sys_statfs = 137,
amd64_sys_fstatfs = 138,
amd64_sys_sysfs = 139,
amd64_sys_getpriority = 140,
amd64_sys_setpriority = 141,
amd64_sys_sched_setparam = 142,
amd64_sys_sched_getparam = 143,
amd64_sys_sched_setscheduler = 144,
amd64_sys_sched_getscheduler = 145,
amd64_sys_sched_get_priority_max = 146,
amd64_sys_sched_get_priority_min = 147,
amd64_sys_sched_rr_get_interval = 148,
amd64_sys_mlock = 149,
amd64_sys_munlock = 150,
amd64_sys_mlockall = 151,
amd64_sys_munlockall = 152,
amd64_sys_vhangup = 153,
amd64_sys_modify_ldt = 154,
amd64_sys_pivot_root = 155,
amd64_sys_sysctl = 156,
amd64_sys_prctl = 157,
amd64_sys_arch_prctl = 158,
amd64_sys_adjtimex = 159,
amd64_sys_setrlimit = 160,
amd64_sys_chroot = 161,
amd64_sys_sync = 162,
amd64_sys_acct = 163,
amd64_sys_settimeofday = 164,
amd64_sys_mount = 165,
amd64_sys_umount = 166,
amd64_sys_swapon = 167,
amd64_sys_swapoff = 168,
amd64_sys_reboot = 169,
amd64_sys_sethostname = 170,
amd64_sys_setdomainname = 171,
amd64_sys_iopl = 172,
amd64_sys_ioperm = 173,
amd64_sys_init_module = 175,
amd64_sys_delete_module = 176,
amd64_sys_quotactl = 179,
amd64_sys_nfsservctl = 180,
amd64_sys_gettid = 186,
amd64_sys_readahead = 187,
amd64_sys_setxattr = 188,
amd64_sys_lsetxattr = 189,
amd64_sys_fsetxattr = 190,
amd64_sys_getxattr = 191,
amd64_sys_lgetxattr = 192,
amd64_sys_fgetxattr = 193,
amd64_sys_listxattr = 194,
amd64_sys_llistxattr = 195,
amd64_sys_flistxattr = 196,
amd64_sys_removexattr = 197,
amd64_sys_lremovexattr = 198,
amd64_sys_fremovexattr = 199,
amd64_sys_tkill = 200,
amd64_sys_time = 201,
amd64_sys_futex = 202,
amd64_sys_sched_setaffinity = 203,
amd64_sys_sched_getaffinity = 204,
amd64_sys_io_setup = 206,
amd64_sys_io_destroy = 207,
amd64_sys_io_getevents = 208,
amd64_sys_io_submit = 209,
amd64_sys_io_cancel = 210,
amd64_sys_lookup_dcookie = 212,
amd64_sys_epoll_create = 213,
amd64_sys_remap_file_pages = 216,
amd64_sys_getdents64 = 217,
amd64_sys_set_tid_address = 218,
amd64_sys_restart_syscall = 219,
amd64_sys_semtimedop = 220,
amd64_sys_fadvise64 = 221,
amd64_sys_timer_create = 222,
amd64_sys_timer_settime = 223,
amd64_sys_timer_gettime = 224,
amd64_sys_timer_getoverrun = 225,
amd64_sys_timer_delete = 226,
amd64_sys_clock_settime = 227,
amd64_sys_clock_gettime = 228,
amd64_sys_clock_getres = 229,
amd64_sys_clock_nanosleep = 230,
amd64_sys_exit_group = 231,
amd64_sys_epoll_wait = 232,
amd64_sys_epoll_ctl = 233,
amd64_sys_tgkill = 234,
amd64_sys_utimes = 235,
amd64_sys_mbind = 237,
amd64_sys_set_mempolicy = 238,
amd64_sys_get_mempolicy = 239,
amd64_sys_mq_open = 240,
amd64_sys_mq_unlink = 241,
amd64_sys_mq_timedsend = 242,
amd64_sys_mq_timedreceive = 243,
amd64_sys_mq_notify = 244,
amd64_sys_mq_getsetattr = 245,
amd64_sys_kexec_load = 246,
amd64_sys_waitid = 247,
amd64_sys_add_key = 248,
amd64_sys_request_key = 249,
amd64_sys_keyctl = 250,
amd64_sys_ioprio_set = 251,
amd64_sys_ioprio_get = 252,
amd64_sys_inotify_init = 253,
amd64_sys_inotify_add_watch = 254,
amd64_sys_inotify_rm_watch = 255,
amd64_sys_migrate_pages = 256,
amd64_sys_openat = 257,
amd64_sys_mkdirat = 258,
amd64_sys_mknodat = 259,
amd64_sys_fchownat = 260,
amd64_sys_futimesat = 261,
amd64_sys_newfstatat = 262,
amd64_sys_unlinkat = 263,
amd64_sys_renameat = 264,
amd64_sys_linkat = 265,
amd64_sys_symlinkat = 266,
amd64_sys_readlinkat = 267,
amd64_sys_fchmodat = 268,
amd64_sys_faccessat = 269,
amd64_sys_pselect6 = 270,
amd64_sys_ppoll = 271,
amd64_sys_unshare = 272,
amd64_sys_set_robust_list = 273,
amd64_sys_get_robust_list = 274,
amd64_sys_splice = 275,
amd64_sys_tee = 276,
amd64_sys_sync_file_range = 277,
amd64_sys_vmsplice = 278,
amd64_sys_move_pages = 279,
};
#endif /* amd64-linux-tdep.h */