]> Git Repo - binutils.git/blob - gdb/amd64-linux-tdep.c
gdb: remove SYMBOL_CLASS macro, add getter
[binutils.git] / gdb / amd64-linux-tdep.c
1 /* Target-dependent code for GNU/Linux x86-64.
2
3    Copyright (C) 2001-2022 Free Software Foundation, Inc.
4    Contributed by Jiri Smid, SuSE Labs.
5
6    This file is part of GDB.
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 3 of the License, or
11    (at your option) any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21 #include "defs.h"
22 #include "arch-utils.h"
23 #include "frame.h"
24 #include "gdbcore.h"
25 #include "regcache.h"
26 #include "osabi.h"
27 #include "symtab.h"
28 #include "gdbtypes.h"
29 #include "reggroups.h"
30 #include "regset.h"
31 #include "parser-defs.h"
32 #include "user-regs.h"
33 #include "amd64-linux-tdep.h"
34 #include "i386-linux-tdep.h"
35 #include "linux-tdep.h"
36 #include "gdbsupport/x86-xstate.h"
37
38 #include "amd64-tdep.h"
39 #include "solib-svr4.h"
40 #include "xml-syscall.h"
41 #include "glibc-tdep.h"
42 #include "arch/amd64.h"
43 #include "target-descriptions.h"
44 #include "expop.h"
45
46 /* The syscall's XML filename for i386.  */
47 #define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
48
49 #include "record-full.h"
50 #include "linux-record.h"
51
52 /* Mapping between the general-purpose registers in `struct user'
53    format and GDB's register cache layout.  */
54
55 /* From <sys/reg.h>.  */
56 int amd64_linux_gregset_reg_offset[] =
57 {
58   10 * 8,                       /* %rax */
59   5 * 8,                        /* %rbx */
60   11 * 8,                       /* %rcx */
61   12 * 8,                       /* %rdx */
62   13 * 8,                       /* %rsi */
63   14 * 8,                       /* %rdi */
64   4 * 8,                        /* %rbp */
65   19 * 8,                       /* %rsp */
66   9 * 8,                        /* %r8 ...  */
67   8 * 8,
68   7 * 8,
69   6 * 8,
70   3 * 8,
71   2 * 8,
72   1 * 8,
73   0 * 8,                        /* ... %r15 */
74   16 * 8,                       /* %rip */
75   18 * 8,                       /* %eflags */
76   17 * 8,                       /* %cs */
77   20 * 8,                       /* %ss */
78   23 * 8,                       /* %ds */
79   24 * 8,                       /* %es */
80   25 * 8,                       /* %fs */
81   26 * 8,                       /* %gs */
82   -1, -1, -1, -1, -1, -1, -1, -1,
83   -1, -1, -1, -1, -1, -1, -1, -1,
84   -1, -1, -1, -1, -1, -1, -1, -1,
85   -1, -1, -1, -1, -1, -1, -1, -1, -1,
86   -1, -1, -1, -1, -1, -1, -1, -1,
87   -1, -1, -1, -1, -1, -1, -1, -1,
88   -1, -1, -1, -1,               /* MPX registers BND0 ... BND3.  */
89   -1, -1,                       /* MPX registers BNDCFGU and BNDSTATUS.  */
90   -1, -1, -1, -1, -1, -1, -1, -1,     /* xmm16 ... xmm31 (AVX512)  */
91   -1, -1, -1, -1, -1, -1, -1, -1,
92   -1, -1, -1, -1, -1, -1, -1, -1,     /* ymm16 ... ymm31 (AVX512)  */
93   -1, -1, -1, -1, -1, -1, -1, -1,
94   -1, -1, -1, -1, -1, -1, -1, -1,     /* k0 ... k7 (AVX512)  */
95   -1, -1, -1, -1, -1, -1, -1, -1,     /* zmm0 ... zmm31 (AVX512)  */
96   -1, -1, -1, -1, -1, -1, -1, -1,
97   -1, -1, -1, -1, -1, -1, -1, -1,
98   -1, -1, -1, -1, -1, -1, -1, -1,
99   -1,                           /* PKEYS register pkru  */
100
101   /* End of hardware registers */
102   21 * 8, 22 * 8,                     /* fs_base and gs_base.  */
103   15 * 8                              /* "orig_rax" */
104 };
105 \f
106
107 /* Support for signal handlers.  */
108
109 #define LINUX_SIGTRAMP_INSN0    0x48    /* mov $NNNNNNNN, %rax */
110 #define LINUX_SIGTRAMP_OFFSET0  0
111 #define LINUX_SIGTRAMP_INSN1    0x0f    /* syscall */
112 #define LINUX_SIGTRAMP_OFFSET1  7
113
114 static const gdb_byte amd64_linux_sigtramp_code[] =
115 {
116   /* mov $__NR_rt_sigreturn, %rax */
117   LINUX_SIGTRAMP_INSN0, 0xc7, 0xc0, 0x0f, 0x00, 0x00, 0x00,
118   /* syscall */
119   LINUX_SIGTRAMP_INSN1, 0x05
120 };
121
122 static const gdb_byte amd64_x32_linux_sigtramp_code[] =
123 {
124   /* mov $__NR_rt_sigreturn, %rax.  */
125   LINUX_SIGTRAMP_INSN0, 0xc7, 0xc0, 0x01, 0x02, 0x00, 0x40,
126   /* syscall */
127   LINUX_SIGTRAMP_INSN1, 0x05
128 };
129
130 #define LINUX_SIGTRAMP_LEN (sizeof amd64_linux_sigtramp_code)
131
132 /* If PC is in a sigtramp routine, return the address of the start of
133    the routine.  Otherwise, return 0.  */
134
135 static CORE_ADDR
136 amd64_linux_sigtramp_start (struct frame_info *this_frame)
137 {
138   struct gdbarch *gdbarch;
139   const gdb_byte *sigtramp_code;
140   CORE_ADDR pc = get_frame_pc (this_frame);
141   gdb_byte buf[LINUX_SIGTRAMP_LEN];
142
143   /* We only recognize a signal trampoline if PC is at the start of
144      one of the two instructions.  We optimize for finding the PC at
145      the start, as will be the case when the trampoline is not the
146      first frame on the stack.  We assume that in the case where the
147      PC is not at the start of the instruction sequence, there will be
148      a few trailing readable bytes on the stack.  */
149
150   if (!safe_frame_unwind_memory (this_frame, pc, buf))
151     return 0;
152
153   if (buf[0] != LINUX_SIGTRAMP_INSN0)
154     {
155       if (buf[0] != LINUX_SIGTRAMP_INSN1)
156         return 0;
157
158       pc -= LINUX_SIGTRAMP_OFFSET1;
159       if (!safe_frame_unwind_memory (this_frame, pc, buf))
160         return 0;
161     }
162
163   gdbarch = get_frame_arch (this_frame);
164   if (gdbarch_ptr_bit (gdbarch) == 32)
165     sigtramp_code = amd64_x32_linux_sigtramp_code;
166   else
167     sigtramp_code = amd64_linux_sigtramp_code;
168   if (memcmp (buf, sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
169     return 0;
170
171   return pc;
172 }
173
174 /* Return whether THIS_FRAME corresponds to a GNU/Linux sigtramp
175    routine.  */
176
177 static int
178 amd64_linux_sigtramp_p (struct frame_info *this_frame)
179 {
180   CORE_ADDR pc = get_frame_pc (this_frame);
181   const char *name;
182
183   find_pc_partial_function (pc, &name, NULL, NULL);
184
185   /* If we have NAME, we can optimize the search.  The trampoline is
186      named __restore_rt.  However, it isn't dynamically exported from
187      the shared C library, so the trampoline may appear to be part of
188      the preceding function.  This should always be sigaction,
189      __sigaction, or __libc_sigaction (all aliases to the same
190      function).  */
191   if (name == NULL || strstr (name, "sigaction") != NULL)
192     return (amd64_linux_sigtramp_start (this_frame) != 0);
193
194   return (strcmp ("__restore_rt", name) == 0);
195 }
196
197 /* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>.  */
198 #define AMD64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 40
199
200 /* Assuming THIS_FRAME is a GNU/Linux sigtramp routine, return the
201    address of the associated sigcontext structure.  */
202
203 static CORE_ADDR
204 amd64_linux_sigcontext_addr (struct frame_info *this_frame)
205 {
206   struct gdbarch *gdbarch = get_frame_arch (this_frame);
207   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
208   CORE_ADDR sp;
209   gdb_byte buf[8];
210
211   get_frame_register (this_frame, AMD64_RSP_REGNUM, buf);
212   sp = extract_unsigned_integer (buf, 8, byte_order);
213
214   /* The sigcontext structure is part of the user context.  A pointer
215      to the user context is passed as the third argument to the signal
216      handler, i.e. in %rdx.  Unfortunately %rdx isn't preserved across
217      function calls so we can't use it.  Fortunately the user context
218      is part of the signal frame and the unwound %rsp directly points
219      at it.  */
220   return sp + AMD64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
221 }
222 \f
223
224 static LONGEST
225 amd64_linux_get_syscall_number (struct gdbarch *gdbarch,
226                                 thread_info *thread)
227 {
228   struct regcache *regcache = get_thread_regcache (thread);
229   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
230   /* The content of a register.  */
231   gdb_byte buf[8];
232   /* The result.  */
233   LONGEST ret;
234
235   /* Getting the system call number from the register.
236      When dealing with x86_64 architecture, this information
237      is stored at %rax register.  */
238   regcache->cooked_read (AMD64_LINUX_ORIG_RAX_REGNUM, buf);
239
240   ret = extract_signed_integer (buf, byte_order);
241
242   return ret;
243 }
244
245
246 /* From <asm/sigcontext.h>.  */
247 static int amd64_linux_sc_reg_offset[] =
248 {
249   13 * 8,                       /* %rax */
250   11 * 8,                       /* %rbx */
251   14 * 8,                       /* %rcx */
252   12 * 8,                       /* %rdx */
253   9 * 8,                        /* %rsi */
254   8 * 8,                        /* %rdi */
255   10 * 8,                       /* %rbp */
256   15 * 8,                       /* %rsp */
257   0 * 8,                        /* %r8 */
258   1 * 8,                        /* %r9 */
259   2 * 8,                        /* %r10 */
260   3 * 8,                        /* %r11 */
261   4 * 8,                        /* %r12 */
262   5 * 8,                        /* %r13 */
263   6 * 8,                        /* %r14 */
264   7 * 8,                        /* %r15 */
265   16 * 8,                       /* %rip */
266   17 * 8,                       /* %eflags */
267
268   /* FIXME: kettenis/2002030531: The registers %cs, %fs and %gs are
269      available in `struct sigcontext'.  However, they only occupy two
270      bytes instead of four, which makes using them here rather
271      difficult.  Leave them out for now.  */
272   -1,                           /* %cs */
273   -1,                           /* %ss */
274   -1,                           /* %ds */
275   -1,                           /* %es */
276   -1,                           /* %fs */
277   -1                            /* %gs */
278 };
279
280 static int
281 amd64_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
282                                  struct reggroup *group)
283
284   if (regnum == AMD64_LINUX_ORIG_RAX_REGNUM
285       || regnum == AMD64_FSBASE_REGNUM
286       || regnum == AMD64_GSBASE_REGNUM)
287     return (group == system_reggroup
288             || group == save_reggroup
289             || group == restore_reggroup);
290   return i386_register_reggroup_p (gdbarch, regnum, group);
291 }
292
293 /* Set the program counter for process PTID to PC.  */
294
295 static void
296 amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
297 {
298   regcache_cooked_write_unsigned (regcache, AMD64_RIP_REGNUM, pc);
299
300   /* We must be careful with modifying the program counter.  If we
301      just interrupted a system call, the kernel might try to restart
302      it when we resume the inferior.  On restarting the system call,
303      the kernel will try backing up the program counter even though it
304      no longer points at the system call.  This typically results in a
305      SIGSEGV or SIGILL.  We can prevent this by writing `-1' in the
306      "orig_rax" pseudo-register.
307
308      Note that "orig_rax" is saved when setting up a dummy call frame.
309      This means that it is properly restored when that frame is
310      popped, and that the interrupted system call will be restarted
311      when we resume the inferior on return from a function call from
312      within GDB.  In all other cases the system call will not be
313      restarted.  */
314   regcache_cooked_write_unsigned (regcache, AMD64_LINUX_ORIG_RAX_REGNUM, -1);
315 }
316
317 /* Record all registers but IP register for process-record.  */
318
319 static int
320 amd64_all_but_ip_registers_record (struct regcache *regcache)
321 {
322   if (record_full_arch_list_add_reg (regcache, AMD64_RAX_REGNUM))
323     return -1;
324   if (record_full_arch_list_add_reg (regcache, AMD64_RCX_REGNUM))
325     return -1;
326   if (record_full_arch_list_add_reg (regcache, AMD64_RDX_REGNUM))
327     return -1;
328   if (record_full_arch_list_add_reg (regcache, AMD64_RBX_REGNUM))
329     return -1;
330   if (record_full_arch_list_add_reg (regcache, AMD64_RSP_REGNUM))
331     return -1;
332   if (record_full_arch_list_add_reg (regcache, AMD64_RBP_REGNUM))
333     return -1;
334   if (record_full_arch_list_add_reg (regcache, AMD64_RSI_REGNUM))
335     return -1;
336   if (record_full_arch_list_add_reg (regcache, AMD64_RDI_REGNUM))
337     return -1;
338   if (record_full_arch_list_add_reg (regcache, AMD64_R8_REGNUM))
339     return -1;
340   if (record_full_arch_list_add_reg (regcache, AMD64_R9_REGNUM))
341     return -1;
342   if (record_full_arch_list_add_reg (regcache, AMD64_R10_REGNUM))
343     return -1;
344   if (record_full_arch_list_add_reg (regcache, AMD64_R11_REGNUM))
345     return -1;
346   if (record_full_arch_list_add_reg (regcache, AMD64_R12_REGNUM))
347     return -1;
348   if (record_full_arch_list_add_reg (regcache, AMD64_R13_REGNUM))
349     return -1;
350   if (record_full_arch_list_add_reg (regcache, AMD64_R14_REGNUM))
351     return -1;
352   if (record_full_arch_list_add_reg (regcache, AMD64_R15_REGNUM))
353     return -1;
354   if (record_full_arch_list_add_reg (regcache, AMD64_EFLAGS_REGNUM))
355     return -1;
356
357   return 0;
358 }
359
360 /* amd64_canonicalize_syscall maps from the native amd64 Linux set 
361    of syscall ids into a canonical set of syscall ids used by 
362    process record.  */
363
364 static enum gdb_syscall
365 amd64_canonicalize_syscall (enum amd64_syscall syscall_number)
366 {
367   DIAGNOSTIC_PUSH
368   DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
369
370   switch (syscall_number) {
371   case amd64_sys_read:
372   case amd64_x32_sys_read:
373     return gdb_sys_read;
374
375   case amd64_sys_write:
376   case amd64_x32_sys_write:
377     return gdb_sys_write;
378
379   case amd64_sys_open:
380   case amd64_x32_sys_open:
381     return gdb_sys_open;
382
383   case amd64_sys_close:
384   case amd64_x32_sys_close:
385     return gdb_sys_close;
386
387   case amd64_sys_newstat:
388   case amd64_x32_sys_newstat:
389     return gdb_sys_newstat;
390
391   case amd64_sys_newfstat:
392   case amd64_x32_sys_newfstat:
393     return gdb_sys_newfstat;
394
395   case amd64_sys_newlstat:
396   case amd64_x32_sys_newlstat:
397     return gdb_sys_newlstat;
398
399   case amd64_sys_poll:
400   case amd64_x32_sys_poll:
401     return gdb_sys_poll;
402
403   case amd64_sys_lseek:
404   case amd64_x32_sys_lseek:
405     return gdb_sys_lseek;
406
407   case amd64_sys_mmap:
408   case amd64_x32_sys_mmap:
409     return gdb_sys_mmap2;
410
411   case amd64_sys_mprotect:
412   case amd64_x32_sys_mprotect:
413     return gdb_sys_mprotect;
414
415   case amd64_sys_munmap:
416   case amd64_x32_sys_munmap:
417     return gdb_sys_munmap;
418
419   case amd64_sys_brk:
420   case amd64_x32_sys_brk:
421     return gdb_sys_brk;
422
423   case amd64_sys_rt_sigaction:
424   case amd64_x32_sys_rt_sigaction:
425     return gdb_sys_rt_sigaction;
426
427   case amd64_sys_rt_sigprocmask:
428   case amd64_x32_sys_rt_sigprocmask:
429     return gdb_sys_rt_sigprocmask;
430
431   case amd64_sys_rt_sigreturn:
432   case amd64_x32_sys_rt_sigreturn:
433     return gdb_sys_rt_sigreturn;
434
435   case amd64_sys_ioctl:
436   case amd64_x32_sys_ioctl:
437     return gdb_sys_ioctl;
438
439   case amd64_sys_pread64:
440   case amd64_x32_sys_pread64:
441     return gdb_sys_pread64;
442
443   case amd64_sys_pwrite64:
444   case amd64_x32_sys_pwrite64:
445     return gdb_sys_pwrite64;
446
447   case amd64_sys_readv:
448   case amd64_x32_sys_readv:
449     return gdb_sys_readv;
450
451   case amd64_sys_writev:
452   case amd64_x32_sys_writev:
453     return gdb_sys_writev;
454
455   case amd64_sys_access:
456   case amd64_x32_sys_access:
457     return gdb_sys_access;
458
459   case amd64_sys_pipe:
460   case amd64_x32_sys_pipe:
461     return gdb_sys_pipe;
462
463   case amd64_sys_select:
464   case amd64_x32_sys_select:
465     return gdb_sys_select;
466
467   case amd64_sys_sched_yield:
468   case amd64_x32_sys_sched_yield:
469     return gdb_sys_sched_yield;
470
471   case amd64_sys_mremap:
472   case amd64_x32_sys_mremap:
473     return gdb_sys_mremap;
474
475   case amd64_sys_msync:
476   case amd64_x32_sys_msync:
477     return gdb_sys_msync;
478
479   case amd64_sys_mincore:
480   case amd64_x32_sys_mincore:
481     return gdb_sys_mincore;
482
483   case amd64_sys_madvise:
484   case amd64_x32_sys_madvise:
485     return gdb_sys_madvise;
486
487   case amd64_sys_shmget:
488   case amd64_x32_sys_shmget:
489     return gdb_sys_shmget;
490
491   case amd64_sys_shmat:
492   case amd64_x32_sys_shmat:
493     return gdb_sys_shmat;
494
495   case amd64_sys_shmctl:
496   case amd64_x32_sys_shmctl:
497     return gdb_sys_shmctl;
498
499   case amd64_sys_dup:
500   case amd64_x32_sys_dup:
501     return gdb_sys_dup;
502
503   case amd64_sys_dup2:
504   case amd64_x32_sys_dup2:
505     return gdb_sys_dup2;
506
507   case amd64_sys_pause:
508   case amd64_x32_sys_pause:
509     return gdb_sys_pause;
510
511   case amd64_sys_nanosleep:
512   case amd64_x32_sys_nanosleep:
513     return gdb_sys_nanosleep;
514
515   case amd64_sys_getitimer:
516   case amd64_x32_sys_getitimer:
517     return gdb_sys_getitimer;
518
519   case amd64_sys_alarm:
520   case amd64_x32_sys_alarm:
521     return gdb_sys_alarm;
522
523   case amd64_sys_setitimer:
524   case amd64_x32_sys_setitimer:
525     return gdb_sys_setitimer;
526
527   case amd64_sys_getpid:
528   case amd64_x32_sys_getpid:
529     return gdb_sys_getpid;
530
531   case amd64_sys_sendfile64:
532   case amd64_x32_sys_sendfile64:
533     return gdb_sys_sendfile64;
534
535   case amd64_sys_socket:
536   case amd64_x32_sys_socket:
537     return gdb_sys_socket;
538
539   case amd64_sys_connect:
540   case amd64_x32_sys_connect:
541     return gdb_sys_connect;
542
543   case amd64_sys_accept:
544   case amd64_x32_sys_accept:
545     return gdb_sys_accept;
546
547   case amd64_sys_sendto:
548   case amd64_x32_sys_sendto:
549     return gdb_sys_sendto;
550
551   case amd64_sys_recvfrom:
552   case amd64_x32_sys_recvfrom:
553     return gdb_sys_recvfrom;
554
555   case amd64_sys_sendmsg:
556   case amd64_x32_sys_sendmsg:
557     return gdb_sys_sendmsg;
558
559   case amd64_sys_recvmsg:
560   case amd64_x32_sys_recvmsg:
561     return gdb_sys_recvmsg;
562
563   case amd64_sys_shutdown:
564   case amd64_x32_sys_shutdown:
565     return gdb_sys_shutdown;
566
567   case amd64_sys_bind:
568   case amd64_x32_sys_bind:
569     return gdb_sys_bind;
570
571   case amd64_sys_listen:
572   case amd64_x32_sys_listen:
573     return gdb_sys_listen;
574
575   case amd64_sys_getsockname:
576   case amd64_x32_sys_getsockname:
577     return gdb_sys_getsockname;
578
579   case amd64_sys_getpeername:
580   case amd64_x32_sys_getpeername:
581     return gdb_sys_getpeername;
582
583   case amd64_sys_socketpair:
584   case amd64_x32_sys_socketpair:
585     return gdb_sys_socketpair;
586
587   case amd64_sys_setsockopt:
588   case amd64_x32_sys_setsockopt:
589     return gdb_sys_setsockopt;
590
591   case amd64_sys_getsockopt:
592   case amd64_x32_sys_getsockopt:
593     return gdb_sys_getsockopt;
594
595   case amd64_sys_clone:
596   case amd64_x32_sys_clone:
597     return gdb_sys_clone;
598
599   case amd64_sys_fork:
600   case amd64_x32_sys_fork:
601     return gdb_sys_fork;
602
603   case amd64_sys_vfork:
604   case amd64_x32_sys_vfork:
605     return gdb_sys_vfork;
606
607   case amd64_sys_execve:
608   case amd64_x32_sys_execve:
609     return gdb_sys_execve;
610
611   case amd64_sys_exit:
612   case amd64_x32_sys_exit:
613     return gdb_sys_exit;
614
615   case amd64_sys_wait4:
616   case amd64_x32_sys_wait4:
617     return gdb_sys_wait4;
618
619   case amd64_sys_kill:
620   case amd64_x32_sys_kill:
621     return gdb_sys_kill;
622
623   case amd64_sys_uname:
624   case amd64_x32_sys_uname:
625     return gdb_sys_uname;
626
627   case amd64_sys_semget:
628   case amd64_x32_sys_semget:
629     return gdb_sys_semget;
630
631   case amd64_sys_semop:
632   case amd64_x32_sys_semop:
633     return gdb_sys_semop;
634
635   case amd64_sys_semctl:
636   case amd64_x32_sys_semctl:
637     return gdb_sys_semctl;
638
639   case amd64_sys_shmdt:
640   case amd64_x32_sys_shmdt:
641     return gdb_sys_shmdt;
642
643   case amd64_sys_msgget:
644   case amd64_x32_sys_msgget:
645     return gdb_sys_msgget;
646
647   case amd64_sys_msgsnd:
648   case amd64_x32_sys_msgsnd:
649     return gdb_sys_msgsnd;
650
651   case amd64_sys_msgrcv:
652   case amd64_x32_sys_msgrcv:
653     return gdb_sys_msgrcv;
654
655   case amd64_sys_msgctl:
656   case amd64_x32_sys_msgctl:
657     return gdb_sys_msgctl;
658
659   case amd64_sys_fcntl:
660   case amd64_x32_sys_fcntl:
661     return gdb_sys_fcntl;
662
663   case amd64_sys_flock:
664   case amd64_x32_sys_flock:
665     return gdb_sys_flock;
666
667   case amd64_sys_fsync:
668   case amd64_x32_sys_fsync:
669     return gdb_sys_fsync;
670
671   case amd64_sys_fdatasync:
672   case amd64_x32_sys_fdatasync:
673     return gdb_sys_fdatasync;
674
675   case amd64_sys_truncate:
676   case amd64_x32_sys_truncate:
677     return gdb_sys_truncate;
678
679   case amd64_sys_ftruncate:
680   case amd64_x32_sys_ftruncate:
681     return gdb_sys_ftruncate;
682
683   case amd64_sys_getdents:
684   case amd64_x32_sys_getdents:
685     return gdb_sys_getdents;
686
687   case amd64_sys_getcwd:
688   case amd64_x32_sys_getcwd:
689     return gdb_sys_getcwd;
690
691   case amd64_sys_chdir:
692   case amd64_x32_sys_chdir:
693     return gdb_sys_chdir;
694
695   case amd64_sys_fchdir:
696   case amd64_x32_sys_fchdir:
697     return gdb_sys_fchdir;
698
699   case amd64_sys_rename:
700   case amd64_x32_sys_rename:
701     return gdb_sys_rename;
702
703   case amd64_sys_mkdir:
704   case amd64_x32_sys_mkdir:
705     return gdb_sys_mkdir;
706
707   case amd64_sys_rmdir:
708   case amd64_x32_sys_rmdir:
709     return gdb_sys_rmdir;
710
711   case amd64_sys_creat:
712   case amd64_x32_sys_creat:
713     return gdb_sys_creat;
714
715   case amd64_sys_link:
716   case amd64_x32_sys_link:
717     return gdb_sys_link;
718
719   case amd64_sys_unlink:
720   case amd64_x32_sys_unlink:
721     return gdb_sys_unlink;
722
723   case amd64_sys_symlink:
724   case amd64_x32_sys_symlink:
725     return gdb_sys_symlink;
726
727   case amd64_sys_readlink:
728   case amd64_x32_sys_readlink:
729     return gdb_sys_readlink;
730
731   case amd64_sys_chmod:
732   case amd64_x32_sys_chmod:
733     return gdb_sys_chmod;
734
735   case amd64_sys_fchmod:
736   case amd64_x32_sys_fchmod:
737     return gdb_sys_fchmod;
738
739   case amd64_sys_chown:
740   case amd64_x32_sys_chown:
741     return gdb_sys_chown;
742
743   case amd64_sys_fchown:
744   case amd64_x32_sys_fchown:
745     return gdb_sys_fchown;
746
747   case amd64_sys_lchown:
748   case amd64_x32_sys_lchown:
749     return gdb_sys_lchown;
750
751   case amd64_sys_umask:
752   case amd64_x32_sys_umask:
753     return gdb_sys_umask;
754
755   case amd64_sys_gettimeofday:
756   case amd64_x32_sys_gettimeofday:
757     return gdb_sys_gettimeofday;
758
759   case amd64_sys_getrlimit:
760   case amd64_x32_sys_getrlimit:
761     return gdb_sys_getrlimit;
762
763   case amd64_sys_getrusage:
764   case amd64_x32_sys_getrusage:
765     return gdb_sys_getrusage;
766
767   case amd64_sys_sysinfo:
768   case amd64_x32_sys_sysinfo:
769     return gdb_sys_sysinfo;
770
771   case amd64_sys_times:
772   case amd64_x32_sys_times:
773     return gdb_sys_times;
774
775   case amd64_sys_ptrace:
776   case amd64_x32_sys_ptrace:
777     return gdb_sys_ptrace;
778
779   case amd64_sys_getuid:
780   case amd64_x32_sys_getuid:
781     return gdb_sys_getuid;
782
783   case amd64_sys_syslog:
784   case amd64_x32_sys_syslog:
785     return gdb_sys_syslog;
786
787   case amd64_sys_getgid:
788   case amd64_x32_sys_getgid:
789     return gdb_sys_getgid;
790
791   case amd64_sys_setuid:
792   case amd64_x32_sys_setuid:
793     return gdb_sys_setuid;
794
795   case amd64_sys_setgid:
796   case amd64_x32_sys_setgid:
797     return gdb_sys_setgid;
798
799   case amd64_sys_geteuid:
800   case amd64_x32_sys_geteuid:
801     return gdb_sys_geteuid;
802
803   case amd64_sys_getegid:
804   case amd64_x32_sys_getegid:
805     return gdb_sys_getegid;
806
807   case amd64_sys_setpgid:
808   case amd64_x32_sys_setpgid:
809     return gdb_sys_setpgid;
810
811   case amd64_sys_getppid:
812   case amd64_x32_sys_getppid:
813     return gdb_sys_getppid;
814
815   case amd64_sys_getpgrp:
816   case amd64_x32_sys_getpgrp:
817     return gdb_sys_getpgrp;
818
819   case amd64_sys_setsid:
820   case amd64_x32_sys_setsid:
821     return gdb_sys_setsid;
822
823   case amd64_sys_setreuid:
824   case amd64_x32_sys_setreuid:
825     return gdb_sys_setreuid;
826
827   case amd64_sys_setregid:
828   case amd64_x32_sys_setregid:
829     return gdb_sys_setregid;
830
831   case amd64_sys_getgroups:
832   case amd64_x32_sys_getgroups:
833     return gdb_sys_getgroups;
834
835   case amd64_sys_setgroups:
836   case amd64_x32_sys_setgroups:
837     return gdb_sys_setgroups;
838
839   case amd64_sys_setresuid:
840   case amd64_x32_sys_setresuid:
841     return gdb_sys_setresuid;
842
843   case amd64_sys_getresuid:
844   case amd64_x32_sys_getresuid:
845     return gdb_sys_getresuid;
846
847   case amd64_sys_setresgid:
848   case amd64_x32_sys_setresgid:
849     return gdb_sys_setresgid;
850
851   case amd64_sys_getresgid:
852   case amd64_x32_sys_getresgid:
853     return gdb_sys_getresgid;
854
855   case amd64_sys_getpgid:
856   case amd64_x32_sys_getpgid:
857     return gdb_sys_getpgid;
858
859   case amd64_sys_setfsuid:
860   case amd64_x32_sys_setfsuid:
861     return gdb_sys_setfsuid;
862
863   case amd64_sys_setfsgid:
864   case amd64_x32_sys_setfsgid:
865     return gdb_sys_setfsgid;
866
867   case amd64_sys_getsid:
868   case amd64_x32_sys_getsid:
869     return gdb_sys_getsid;
870
871   case amd64_sys_capget:
872   case amd64_x32_sys_capget:
873     return gdb_sys_capget;
874
875   case amd64_sys_capset:
876   case amd64_x32_sys_capset:
877     return gdb_sys_capset;
878
879   case amd64_sys_rt_sigpending:
880   case amd64_x32_sys_rt_sigpending:
881     return gdb_sys_rt_sigpending;
882
883   case amd64_sys_rt_sigtimedwait:
884   case amd64_x32_sys_rt_sigtimedwait:
885     return gdb_sys_rt_sigtimedwait;
886
887   case amd64_sys_rt_sigqueueinfo:
888   case amd64_x32_sys_rt_sigqueueinfo:
889     return gdb_sys_rt_sigqueueinfo;
890
891   case amd64_sys_rt_sigsuspend:
892   case amd64_x32_sys_rt_sigsuspend:
893     return gdb_sys_rt_sigsuspend;
894
895   case amd64_sys_sigaltstack:
896   case amd64_x32_sys_sigaltstack:
897     return gdb_sys_sigaltstack;
898
899   case amd64_sys_utime:
900   case amd64_x32_sys_utime:
901     return gdb_sys_utime;
902
903   case amd64_sys_mknod:
904   case amd64_x32_sys_mknod:
905     return gdb_sys_mknod;
906
907   case amd64_sys_personality:
908   case amd64_x32_sys_personality:
909     return gdb_sys_personality;
910
911   case amd64_sys_ustat:
912   case amd64_x32_sys_ustat:
913     return gdb_sys_ustat;
914
915   case amd64_sys_statfs:
916   case amd64_x32_sys_statfs:
917     return gdb_sys_statfs;
918
919   case amd64_sys_fstatfs:
920   case amd64_x32_sys_fstatfs:
921     return gdb_sys_fstatfs;
922
923   case amd64_sys_sysfs:
924   case amd64_x32_sys_sysfs:
925     return gdb_sys_sysfs;
926
927   case amd64_sys_getpriority:
928   case amd64_x32_sys_getpriority:
929     return gdb_sys_getpriority;
930
931   case amd64_sys_setpriority:
932   case amd64_x32_sys_setpriority:
933     return gdb_sys_setpriority;
934
935   case amd64_sys_sched_setparam:
936   case amd64_x32_sys_sched_setparam:
937     return gdb_sys_sched_setparam;
938
939   case amd64_sys_sched_getparam:
940   case amd64_x32_sys_sched_getparam:
941     return gdb_sys_sched_getparam;
942
943   case amd64_sys_sched_setscheduler:
944   case amd64_x32_sys_sched_setscheduler:
945     return gdb_sys_sched_setscheduler;
946
947   case amd64_sys_sched_getscheduler:
948   case amd64_x32_sys_sched_getscheduler:
949     return gdb_sys_sched_getscheduler;
950
951   case amd64_sys_sched_get_priority_max:
952   case amd64_x32_sys_sched_get_priority_max:
953     return gdb_sys_sched_get_priority_max;
954
955   case amd64_sys_sched_get_priority_min:
956   case amd64_x32_sys_sched_get_priority_min:
957     return gdb_sys_sched_get_priority_min;
958
959   case amd64_sys_sched_rr_get_interval:
960   case amd64_x32_sys_sched_rr_get_interval:
961     return gdb_sys_sched_rr_get_interval;
962
963   case amd64_sys_mlock:
964   case amd64_x32_sys_mlock:
965     return gdb_sys_mlock;
966
967   case amd64_sys_munlock:
968   case amd64_x32_sys_munlock:
969     return gdb_sys_munlock;
970
971   case amd64_sys_mlockall:
972   case amd64_x32_sys_mlockall:
973     return gdb_sys_mlockall;
974
975   case amd64_sys_munlockall:
976   case amd64_x32_sys_munlockall:
977     return gdb_sys_munlockall;
978
979   case amd64_sys_vhangup:
980   case amd64_x32_sys_vhangup:
981     return gdb_sys_vhangup;
982
983   case amd64_sys_modify_ldt:
984   case amd64_x32_sys_modify_ldt:
985     return gdb_sys_modify_ldt;
986
987   case amd64_sys_pivot_root:
988   case amd64_x32_sys_pivot_root:
989     return gdb_sys_pivot_root;
990
991   case amd64_sys_sysctl:
992   case amd64_x32_sys_sysctl:
993     return gdb_sys_sysctl;
994
995   case amd64_sys_prctl:
996   case amd64_x32_sys_prctl:
997     return gdb_sys_prctl;
998
999   case amd64_sys_arch_prctl:
1000   case amd64_x32_sys_arch_prctl:
1001     return gdb_sys_no_syscall;  /* Note */
1002
1003   case amd64_sys_adjtimex:
1004   case amd64_x32_sys_adjtimex:
1005     return gdb_sys_adjtimex;
1006
1007   case amd64_sys_setrlimit:
1008   case amd64_x32_sys_setrlimit:
1009     return gdb_sys_setrlimit;
1010
1011   case amd64_sys_chroot:
1012   case amd64_x32_sys_chroot:
1013     return gdb_sys_chroot;
1014
1015   case amd64_sys_sync:
1016   case amd64_x32_sys_sync:
1017     return gdb_sys_sync;
1018
1019   case amd64_sys_acct:
1020   case amd64_x32_sys_acct:
1021     return gdb_sys_acct;
1022
1023   case amd64_sys_settimeofday:
1024   case amd64_x32_sys_settimeofday:
1025     return gdb_sys_settimeofday;
1026
1027   case amd64_sys_mount:
1028   case amd64_x32_sys_mount:
1029     return gdb_sys_mount;
1030
1031   case amd64_sys_umount:
1032   case amd64_x32_sys_umount:
1033     return gdb_sys_umount;
1034
1035   case amd64_sys_swapon:
1036   case amd64_x32_sys_swapon:
1037     return gdb_sys_swapon;
1038
1039   case amd64_sys_swapoff:
1040   case amd64_x32_sys_swapoff:
1041     return gdb_sys_swapoff;
1042
1043   case amd64_sys_reboot:
1044   case amd64_x32_sys_reboot:
1045     return gdb_sys_reboot;
1046
1047   case amd64_sys_sethostname:
1048   case amd64_x32_sys_sethostname:
1049     return gdb_sys_sethostname;
1050
1051   case amd64_sys_setdomainname:
1052   case amd64_x32_sys_setdomainname:
1053     return gdb_sys_setdomainname;
1054
1055   case amd64_sys_iopl:
1056   case amd64_x32_sys_iopl:
1057     return gdb_sys_iopl;
1058
1059   case amd64_sys_ioperm:
1060   case amd64_x32_sys_ioperm:
1061     return gdb_sys_ioperm;
1062
1063   case amd64_sys_init_module:
1064   case amd64_x32_sys_init_module:
1065     return gdb_sys_init_module;
1066
1067   case amd64_sys_delete_module:
1068   case amd64_x32_sys_delete_module:
1069     return gdb_sys_delete_module;
1070
1071   case amd64_sys_quotactl:
1072   case amd64_x32_sys_quotactl:
1073     return gdb_sys_quotactl;
1074
1075   case amd64_sys_nfsservctl:
1076     return gdb_sys_nfsservctl;
1077
1078   case amd64_sys_gettid:
1079   case amd64_x32_sys_gettid:
1080     return gdb_sys_gettid;
1081
1082   case amd64_sys_readahead:
1083   case amd64_x32_sys_readahead:
1084     return gdb_sys_readahead;
1085
1086   case amd64_sys_setxattr:
1087   case amd64_x32_sys_setxattr:
1088     return gdb_sys_setxattr;
1089
1090   case amd64_sys_lsetxattr:
1091   case amd64_x32_sys_lsetxattr:
1092     return gdb_sys_lsetxattr;
1093
1094   case amd64_sys_fsetxattr:
1095   case amd64_x32_sys_fsetxattr:
1096     return gdb_sys_fsetxattr;
1097
1098   case amd64_sys_getxattr:
1099   case amd64_x32_sys_getxattr:
1100     return gdb_sys_getxattr;
1101
1102   case amd64_sys_lgetxattr:
1103   case amd64_x32_sys_lgetxattr:
1104     return gdb_sys_lgetxattr;
1105
1106   case amd64_sys_fgetxattr:
1107   case amd64_x32_sys_fgetxattr:
1108     return gdb_sys_fgetxattr;
1109
1110   case amd64_sys_listxattr:
1111   case amd64_x32_sys_listxattr:
1112     return gdb_sys_listxattr;
1113
1114   case amd64_sys_llistxattr:
1115   case amd64_x32_sys_llistxattr:
1116     return gdb_sys_llistxattr;
1117
1118   case amd64_sys_flistxattr:
1119   case amd64_x32_sys_flistxattr:
1120     return gdb_sys_flistxattr;
1121
1122   case amd64_sys_removexattr:
1123   case amd64_x32_sys_removexattr:
1124     return gdb_sys_removexattr;
1125
1126   case amd64_sys_lremovexattr:
1127   case amd64_x32_sys_lremovexattr:
1128     return gdb_sys_lremovexattr;
1129
1130   case amd64_sys_fremovexattr:
1131   case amd64_x32_sys_fremovexattr:
1132     return gdb_sys_fremovexattr;
1133
1134   case amd64_sys_tkill:
1135   case amd64_x32_sys_tkill:
1136     return gdb_sys_tkill;
1137
1138   case amd64_sys_time:
1139   case amd64_x32_sys_time:
1140     return gdb_sys_time;
1141
1142   case amd64_sys_futex:
1143   case amd64_x32_sys_futex:
1144     return gdb_sys_futex;
1145
1146   case amd64_sys_sched_setaffinity:
1147   case amd64_x32_sys_sched_setaffinity:
1148     return gdb_sys_sched_setaffinity;
1149
1150   case amd64_sys_sched_getaffinity:
1151   case amd64_x32_sys_sched_getaffinity:
1152     return gdb_sys_sched_getaffinity;
1153
1154   case amd64_sys_io_setup:
1155   case amd64_x32_sys_io_setup:
1156     return gdb_sys_io_setup;
1157
1158   case amd64_sys_io_destroy:
1159   case amd64_x32_sys_io_destroy:
1160     return gdb_sys_io_destroy;
1161
1162   case amd64_sys_io_getevents:
1163   case amd64_x32_sys_io_getevents:
1164     return gdb_sys_io_getevents;
1165
1166   case amd64_sys_io_submit:
1167   case amd64_x32_sys_io_submit:
1168     return gdb_sys_io_submit;
1169
1170   case amd64_sys_io_cancel:
1171   case amd64_x32_sys_io_cancel:
1172     return gdb_sys_io_cancel;
1173
1174   case amd64_sys_lookup_dcookie:
1175   case amd64_x32_sys_lookup_dcookie:
1176     return gdb_sys_lookup_dcookie;
1177
1178   case amd64_sys_epoll_create:
1179   case amd64_x32_sys_epoll_create:
1180     return gdb_sys_epoll_create;
1181
1182   case amd64_sys_remap_file_pages:
1183   case amd64_x32_sys_remap_file_pages:
1184     return gdb_sys_remap_file_pages;
1185
1186   case amd64_sys_getdents64:
1187   case amd64_x32_sys_getdents64:
1188     return gdb_sys_getdents64;
1189
1190   case amd64_sys_set_tid_address:
1191   case amd64_x32_sys_set_tid_address:
1192     return gdb_sys_set_tid_address;
1193
1194   case amd64_sys_restart_syscall:
1195   case amd64_x32_sys_restart_syscall:
1196     return gdb_sys_restart_syscall;
1197
1198   case amd64_sys_semtimedop:
1199   case amd64_x32_sys_semtimedop:
1200     return gdb_sys_semtimedop;
1201
1202   case amd64_sys_fadvise64:
1203   case amd64_x32_sys_fadvise64:
1204     return gdb_sys_fadvise64;
1205
1206   case amd64_sys_timer_create:
1207   case amd64_x32_sys_timer_create:
1208     return gdb_sys_timer_create;
1209
1210   case amd64_sys_timer_settime:
1211   case amd64_x32_sys_timer_settime:
1212     return gdb_sys_timer_settime;
1213
1214   case amd64_sys_timer_gettime:
1215   case amd64_x32_sys_timer_gettime:
1216     return gdb_sys_timer_gettime;
1217
1218   case amd64_sys_timer_getoverrun:
1219   case amd64_x32_sys_timer_getoverrun:
1220     return gdb_sys_timer_getoverrun;
1221
1222   case amd64_sys_timer_delete:
1223   case amd64_x32_sys_timer_delete:
1224     return gdb_sys_timer_delete;
1225
1226   case amd64_sys_clock_settime:
1227   case amd64_x32_sys_clock_settime:
1228     return gdb_sys_clock_settime;
1229
1230   case amd64_sys_clock_gettime:
1231   case amd64_x32_sys_clock_gettime:
1232     return gdb_sys_clock_gettime;
1233
1234   case amd64_sys_clock_getres:
1235   case amd64_x32_sys_clock_getres:
1236     return gdb_sys_clock_getres;
1237
1238   case amd64_sys_clock_nanosleep:
1239   case amd64_x32_sys_clock_nanosleep:
1240     return gdb_sys_clock_nanosleep;
1241
1242   case amd64_sys_exit_group:
1243   case amd64_x32_sys_exit_group:
1244     return gdb_sys_exit_group;
1245
1246   case amd64_sys_epoll_wait:
1247   case amd64_x32_sys_epoll_wait:
1248     return gdb_sys_epoll_wait;
1249
1250   case amd64_sys_epoll_ctl:
1251   case amd64_x32_sys_epoll_ctl:
1252     return gdb_sys_epoll_ctl;
1253
1254   case amd64_sys_tgkill:
1255   case amd64_x32_sys_tgkill:
1256     return gdb_sys_tgkill;
1257
1258   case amd64_sys_utimes:
1259   case amd64_x32_sys_utimes:
1260     return gdb_sys_utimes;
1261
1262   case amd64_sys_mbind:
1263   case amd64_x32_sys_mbind:
1264     return gdb_sys_mbind;
1265
1266   case amd64_sys_set_mempolicy:
1267   case amd64_x32_sys_set_mempolicy:
1268     return gdb_sys_set_mempolicy;
1269
1270   case amd64_sys_get_mempolicy:
1271   case amd64_x32_sys_get_mempolicy:
1272     return gdb_sys_get_mempolicy;
1273
1274   case amd64_sys_mq_open:
1275   case amd64_x32_sys_mq_open:
1276     return gdb_sys_mq_open;
1277
1278   case amd64_sys_mq_unlink:
1279   case amd64_x32_sys_mq_unlink:
1280     return gdb_sys_mq_unlink;
1281
1282   case amd64_sys_mq_timedsend:
1283   case amd64_x32_sys_mq_timedsend:
1284     return gdb_sys_mq_timedsend;
1285
1286   case amd64_sys_mq_timedreceive:
1287   case amd64_x32_sys_mq_timedreceive:
1288     return gdb_sys_mq_timedreceive;
1289
1290   case amd64_sys_mq_notify:
1291   case amd64_x32_sys_mq_notify:
1292     return gdb_sys_mq_notify;
1293
1294   case amd64_sys_mq_getsetattr:
1295   case amd64_x32_sys_mq_getsetattr:
1296     return gdb_sys_mq_getsetattr;
1297
1298   case amd64_sys_kexec_load:
1299   case amd64_x32_sys_kexec_load:
1300     return gdb_sys_kexec_load;
1301
1302   case amd64_sys_waitid:
1303   case amd64_x32_sys_waitid:
1304     return gdb_sys_waitid;
1305
1306   case amd64_sys_add_key:
1307   case amd64_x32_sys_add_key:
1308     return gdb_sys_add_key;
1309
1310   case amd64_sys_request_key:
1311   case amd64_x32_sys_request_key:
1312     return gdb_sys_request_key;
1313
1314   case amd64_sys_keyctl:
1315   case amd64_x32_sys_keyctl:
1316     return gdb_sys_keyctl;
1317
1318   case amd64_sys_ioprio_set:
1319   case amd64_x32_sys_ioprio_set:
1320     return gdb_sys_ioprio_set;
1321
1322   case amd64_sys_ioprio_get:
1323   case amd64_x32_sys_ioprio_get:
1324     return gdb_sys_ioprio_get;
1325
1326   case amd64_sys_inotify_init:
1327   case amd64_x32_sys_inotify_init:
1328     return gdb_sys_inotify_init;
1329
1330   case amd64_sys_inotify_add_watch:
1331   case amd64_x32_sys_inotify_add_watch:
1332     return gdb_sys_inotify_add_watch;
1333
1334   case amd64_sys_inotify_rm_watch:
1335   case amd64_x32_sys_inotify_rm_watch:
1336     return gdb_sys_inotify_rm_watch;
1337
1338   case amd64_sys_migrate_pages:
1339   case amd64_x32_sys_migrate_pages:
1340     return gdb_sys_migrate_pages;
1341
1342   case amd64_sys_openat:
1343   case amd64_x32_sys_openat:
1344     return gdb_sys_openat;
1345
1346   case amd64_sys_mkdirat:
1347   case amd64_x32_sys_mkdirat:
1348     return gdb_sys_mkdirat;
1349
1350   case amd64_sys_mknodat:
1351   case amd64_x32_sys_mknodat:
1352     return gdb_sys_mknodat;
1353
1354   case amd64_sys_fchownat:
1355   case amd64_x32_sys_fchownat:
1356     return gdb_sys_fchownat;
1357
1358   case amd64_sys_futimesat:
1359   case amd64_x32_sys_futimesat:
1360     return gdb_sys_futimesat;
1361
1362   case amd64_sys_newfstatat:
1363   case amd64_x32_sys_newfstatat:
1364     return gdb_sys_newfstatat;
1365
1366   case amd64_sys_unlinkat:
1367   case amd64_x32_sys_unlinkat:
1368     return gdb_sys_unlinkat;
1369
1370   case amd64_sys_renameat:
1371   case amd64_x32_sys_renameat:
1372     return gdb_sys_renameat;
1373
1374   case amd64_sys_linkat:
1375   case amd64_x32_sys_linkat:
1376     return gdb_sys_linkat;
1377
1378   case amd64_sys_symlinkat:
1379   case amd64_x32_sys_symlinkat:
1380     return gdb_sys_symlinkat;
1381
1382   case amd64_sys_readlinkat:
1383   case amd64_x32_sys_readlinkat:
1384     return gdb_sys_readlinkat;
1385
1386   case amd64_sys_fchmodat:
1387   case amd64_x32_sys_fchmodat:
1388     return gdb_sys_fchmodat;
1389
1390   case amd64_sys_faccessat:
1391   case amd64_x32_sys_faccessat:
1392     return gdb_sys_faccessat;
1393
1394   case amd64_sys_pselect6:
1395   case amd64_x32_sys_pselect6:
1396     return gdb_sys_pselect6;
1397
1398   case amd64_sys_ppoll:
1399   case amd64_x32_sys_ppoll:
1400     return gdb_sys_ppoll;
1401
1402   case amd64_sys_unshare:
1403   case amd64_x32_sys_unshare:
1404     return gdb_sys_unshare;
1405
1406   case amd64_sys_set_robust_list:
1407   case amd64_x32_sys_set_robust_list:
1408     return gdb_sys_set_robust_list;
1409
1410   case amd64_sys_get_robust_list:
1411   case amd64_x32_sys_get_robust_list:
1412     return gdb_sys_get_robust_list;
1413
1414   case amd64_sys_splice:
1415   case amd64_x32_sys_splice:
1416     return gdb_sys_splice;
1417
1418   case amd64_sys_tee:
1419   case amd64_x32_sys_tee:
1420     return gdb_sys_tee;
1421
1422   case amd64_sys_sync_file_range:
1423   case amd64_x32_sys_sync_file_range:
1424     return gdb_sys_sync_file_range;
1425
1426   case amd64_sys_vmsplice:
1427   case amd64_x32_sys_vmsplice:
1428     return gdb_sys_vmsplice;
1429
1430   case amd64_sys_move_pages:
1431   case amd64_x32_sys_move_pages:
1432     return gdb_sys_move_pages;
1433
1434   default:
1435     return gdb_sys_no_syscall;
1436   }
1437
1438   DIAGNOSTIC_POP
1439 }
1440
1441 /* Parse the arguments of current system call instruction and record
1442    the values of the registers and memory that will be changed into
1443    "record_full_arch_list".  This instruction is "syscall".
1444
1445    Return -1 if something wrong.  */
1446
1447 static struct linux_record_tdep amd64_linux_record_tdep;
1448 static struct linux_record_tdep amd64_x32_linux_record_tdep;
1449
1450 #define RECORD_ARCH_GET_FS      0x1003
1451 #define RECORD_ARCH_GET_GS      0x1004
1452
1453 static int
1454 amd64_linux_syscall_record_common (struct regcache *regcache,
1455                                    struct linux_record_tdep *linux_record_tdep_p)
1456 {
1457   int ret;
1458   ULONGEST syscall_native;
1459   enum gdb_syscall syscall_gdb = gdb_sys_no_syscall;
1460
1461   regcache_raw_read_unsigned (regcache, AMD64_RAX_REGNUM, &syscall_native);
1462
1463   switch (syscall_native)
1464     {
1465     case amd64_sys_rt_sigreturn:
1466     case amd64_x32_sys_rt_sigreturn:
1467       if (amd64_all_but_ip_registers_record (regcache))
1468         return -1;
1469       return 0;
1470       break;
1471
1472     case amd64_sys_arch_prctl:
1473     case amd64_x32_sys_arch_prctl:
1474       {
1475         ULONGEST arg3;
1476         regcache_raw_read_unsigned (regcache, linux_record_tdep_p->arg3,
1477                                     &arg3);
1478         if (arg3 == RECORD_ARCH_GET_FS || arg3 == RECORD_ARCH_GET_GS)
1479           {
1480             CORE_ADDR addr;
1481
1482             regcache_raw_read_unsigned (regcache,
1483                                         linux_record_tdep_p->arg2,
1484                                         &addr);
1485             if (record_full_arch_list_add_mem
1486                 (addr, linux_record_tdep_p->size_ulong))
1487               return -1;
1488           }
1489         goto record_regs;
1490       }
1491       break;
1492     }
1493
1494   syscall_gdb
1495     = amd64_canonicalize_syscall ((enum amd64_syscall) syscall_native);
1496
1497   if (syscall_gdb == gdb_sys_no_syscall)
1498     {
1499       fprintf_unfiltered (gdb_stderr,
1500                           _("Process record and replay target doesn't "
1501                             "support syscall number %s\n"), 
1502                           pulongest (syscall_native));
1503       return -1;
1504     }
1505   else
1506     {
1507       ret = record_linux_system_call (syscall_gdb, regcache,
1508                                       linux_record_tdep_p);
1509       if (ret)
1510         return ret;
1511     }
1512
1513  record_regs:
1514   /* Record the return value of the system call.  */
1515   if (record_full_arch_list_add_reg (regcache, AMD64_RCX_REGNUM))
1516     return -1;
1517   if (record_full_arch_list_add_reg (regcache, AMD64_R11_REGNUM))
1518     return -1;
1519
1520   return 0;
1521 }
1522
1523 static int
1524 amd64_linux_syscall_record (struct regcache *regcache)
1525 {
1526   return amd64_linux_syscall_record_common (regcache,
1527                                             &amd64_linux_record_tdep);
1528 }
1529
1530 static int
1531 amd64_x32_linux_syscall_record (struct regcache *regcache)
1532 {
1533   return amd64_linux_syscall_record_common (regcache,
1534                                             &amd64_x32_linux_record_tdep);
1535 }
1536
1537 #define AMD64_LINUX_redzone    128
1538 #define AMD64_LINUX_xstate     512
1539 #define AMD64_LINUX_frame_size 560
1540
1541 static int
1542 amd64_linux_record_signal (struct gdbarch *gdbarch,
1543                            struct regcache *regcache,
1544                            enum gdb_signal signal)
1545 {
1546   ULONGEST rsp;
1547
1548   if (amd64_all_but_ip_registers_record (regcache))
1549     return -1;
1550
1551   if (record_full_arch_list_add_reg (regcache, AMD64_RIP_REGNUM))
1552     return -1;
1553
1554   /* Record the change in the stack.  */
1555   regcache_raw_read_unsigned (regcache, AMD64_RSP_REGNUM, &rsp);
1556   /* redzone
1557      sp -= 128; */
1558   rsp -= AMD64_LINUX_redzone;
1559   /* This is for xstate.
1560      sp -= sizeof (struct _fpstate);  */
1561   rsp -= AMD64_LINUX_xstate;
1562   /* This is for frame_size.
1563      sp -= sizeof (struct rt_sigframe);  */
1564   rsp -= AMD64_LINUX_frame_size;
1565   if (record_full_arch_list_add_mem (rsp, AMD64_LINUX_redzone
1566                                      + AMD64_LINUX_xstate
1567                                      + AMD64_LINUX_frame_size))
1568     return -1;
1569
1570   if (record_full_arch_list_add_end ())
1571     return -1;
1572
1573   return 0;
1574 }
1575
1576 const target_desc *
1577 amd64_linux_read_description (uint64_t xcr0_features_bit, bool is_x32)
1578 {
1579   static target_desc *amd64_linux_tdescs \
1580     [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
1581   static target_desc *x32_linux_tdescs[2/*AVX*/][2/*AVX512*/] = {};
1582
1583   target_desc **tdesc;
1584
1585   if (is_x32)
1586     {
1587       tdesc = &x32_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0 ]
1588         [(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0];
1589     }
1590   else
1591     {
1592       tdesc = &amd64_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0]
1593         [(xcr0_features_bit & X86_XSTATE_MPX) ? 1 : 0]
1594         [(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0]
1595         [(xcr0_features_bit & X86_XSTATE_PKRU) ? 1 : 0];
1596     }
1597
1598   if (*tdesc == NULL)
1599     *tdesc = amd64_create_target_description (xcr0_features_bit, is_x32,
1600                                               true, true);
1601
1602   return *tdesc;
1603 }
1604
1605 /* Get Linux/x86 target description from core dump.  */
1606
1607 static const struct target_desc *
1608 amd64_linux_core_read_description (struct gdbarch *gdbarch,
1609                                   struct target_ops *target,
1610                                   bfd *abfd)
1611 {
1612   /* Linux/x86-64.  */
1613   uint64_t xcr0 = i386_linux_core_read_xcr0 (abfd);
1614
1615   return amd64_linux_read_description (xcr0 & X86_XSTATE_ALL_MASK,
1616                                        gdbarch_ptr_bit (gdbarch) == 32);
1617 }
1618
1619 /* Similar to amd64_supply_fpregset, but use XSAVE extended state.  */
1620
1621 static void
1622 amd64_linux_supply_xstateregset (const struct regset *regset,
1623                                  struct regcache *regcache, int regnum,
1624                                  const void *xstateregs, size_t len)
1625 {
1626   amd64_supply_xsave (regcache, regnum, xstateregs);
1627 }
1628
1629 /* Similar to amd64_collect_fpregset, but use XSAVE extended state.  */
1630
1631 static void
1632 amd64_linux_collect_xstateregset (const struct regset *regset,
1633                                   const struct regcache *regcache,
1634                                   int regnum, void *xstateregs, size_t len)
1635 {
1636   amd64_collect_xsave (regcache, regnum, xstateregs, 1);
1637 }
1638
1639 static const struct regset amd64_linux_xstateregset =
1640   {
1641     NULL,
1642     amd64_linux_supply_xstateregset,
1643     amd64_linux_collect_xstateregset
1644   };
1645
1646 /* Iterate over core file register note sections.  */
1647
1648 static void
1649 amd64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
1650                                           iterate_over_regset_sections_cb *cb,
1651                                           void *cb_data,
1652                                           const struct regcache *regcache)
1653 {
1654   i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (gdbarch);
1655
1656   cb (".reg", 27 * 8, 27 * 8, &i386_gregset, NULL, cb_data);
1657   cb (".reg2", 512, 512, &amd64_fpregset, NULL, cb_data);
1658   cb (".reg-xstate", X86_XSTATE_SIZE (tdep->xcr0), X86_XSTATE_SIZE (tdep->xcr0),
1659       &amd64_linux_xstateregset, "XSAVE extended state", cb_data);
1660 }
1661
1662 /* The instruction sequences used in x86_64 machines for a
1663    disabled is-enabled probe.  */
1664
1665 const gdb_byte amd64_dtrace_disabled_probe_sequence_1[] = {
1666   /* xor %rax, %rax */  0x48, 0x33, 0xc0,
1667   /* nop            */  0x90,
1668   /* nop            */  0x90
1669 };
1670
1671 const gdb_byte amd64_dtrace_disabled_probe_sequence_2[] = {
1672   /* xor %rax, %rax */  0x48, 0x33, 0xc0,
1673   /* ret            */  0xc3,
1674   /* nop            */  0x90
1675 };
1676
1677 /* The instruction sequence used in x86_64 machines for enabling a
1678    DTrace is-enabled probe.  */
1679
1680 const gdb_byte amd64_dtrace_enable_probe_sequence[] = {
1681   /* mov $0x1, %eax */ 0xb8, 0x01, 0x00, 0x00, 0x00
1682 };
1683
1684 /* The instruction sequence used in x86_64 machines for disabling a
1685    DTrace is-enabled probe.  */
1686
1687 const gdb_byte amd64_dtrace_disable_probe_sequence[] = {
1688   /* xor %rax, %rax; nop; nop */ 0x48, 0x33, 0xC0, 0x90, 0x90
1689 };
1690
1691 /* Implementation of `gdbarch_dtrace_probe_is_enabled', as defined in
1692    gdbarch.h.  */
1693
1694 static int
1695 amd64_dtrace_probe_is_enabled (struct gdbarch *gdbarch, CORE_ADDR addr)
1696 {
1697   gdb_byte buf[5];
1698
1699   /* This function returns 1 if the instructions at ADDR do _not_
1700      follow any of the amd64_dtrace_disabled_probe_sequence_*
1701      patterns.
1702
1703      Note that ADDR is offset 3 bytes from the beginning of these
1704      sequences.  */
1705   
1706   read_code (addr - 3, buf, 5);
1707   return (memcmp (buf, amd64_dtrace_disabled_probe_sequence_1, 5) != 0
1708           && memcmp (buf, amd64_dtrace_disabled_probe_sequence_2, 5) != 0);
1709 }
1710
1711 /* Implementation of `gdbarch_dtrace_enable_probe', as defined in
1712    gdbarch.h.  */
1713
1714 static void
1715 amd64_dtrace_enable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
1716 {
1717   /* Note also that ADDR is offset 3 bytes from the beginning of
1718      amd64_dtrace_enable_probe_sequence.  */
1719
1720   write_memory (addr - 3, amd64_dtrace_enable_probe_sequence, 5);
1721 }
1722
1723 /* Implementation of `gdbarch_dtrace_disable_probe', as defined in
1724    gdbarch.h.  */
1725
1726 static void
1727 amd64_dtrace_disable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
1728 {
1729   /* Note also that ADDR is offset 3 bytes from the beginning of
1730      amd64_dtrace_disable_probe_sequence.  */
1731
1732   write_memory (addr - 3, amd64_dtrace_disable_probe_sequence, 5);
1733 }
1734
1735 /* Implementation of `gdbarch_dtrace_parse_probe_argument', as defined
1736    in gdbarch.h.  */
1737
1738 static expr::operation_up
1739 amd64_dtrace_parse_probe_argument (struct gdbarch *gdbarch,
1740                                    int narg)
1741 {
1742   /* DTrace probe arguments can be found on the ABI-defined places for
1743      regular arguments at the current PC.  The probe abstraction
1744      currently supports up to 12 arguments for probes.  */
1745
1746   using namespace expr;
1747
1748   if (narg < 6)
1749     {
1750       static const int arg_reg_map[6] =
1751         {
1752           AMD64_RDI_REGNUM,  /* Arg 1.  */
1753           AMD64_RSI_REGNUM,  /* Arg 2.  */
1754           AMD64_RDX_REGNUM,  /* Arg 3.  */
1755           AMD64_RCX_REGNUM,  /* Arg 4.  */
1756           AMD64_R8_REGNUM,   /* Arg 5.  */
1757           AMD64_R9_REGNUM    /* Arg 6.  */
1758         };
1759       int regno = arg_reg_map[narg];
1760       const char *regname = user_reg_map_regnum_to_name (gdbarch, regno);
1761       return make_operation<register_operation> (regname);
1762     }
1763   else
1764     {
1765       /* Additional arguments are passed on the stack.  */
1766       const char *regname = user_reg_map_regnum_to_name (gdbarch, AMD64_RSP_REGNUM);
1767
1768       /* Displacement.  */
1769       struct type *long_type = builtin_type (gdbarch)->builtin_long;
1770       operation_up disp = make_operation<long_const_operation> (long_type,
1771                                                                 narg - 6);
1772
1773       /* Register: SP.  */
1774       operation_up reg = make_operation<register_operation> (regname);
1775
1776       operation_up add = make_operation<add_operation> (std::move (disp),
1777                                                         std::move (reg));
1778
1779       /* Cast to long. */
1780       operation_up cast = make_operation<unop_cast_operation> (std::move (add),
1781                                                                long_type);
1782
1783       return make_operation<unop_ind_operation> (std::move (cast));
1784     }
1785 }
1786
1787 static void
1788 amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch,
1789                             int num_disp_step_buffers)
1790 {
1791   i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (gdbarch);
1792
1793   linux_init_abi (info, gdbarch, num_disp_step_buffers);
1794
1795   tdep->sigtramp_p = amd64_linux_sigtramp_p;
1796   tdep->sigcontext_addr = amd64_linux_sigcontext_addr;
1797   tdep->sc_reg_offset = amd64_linux_sc_reg_offset;
1798   tdep->sc_num_regs = ARRAY_SIZE (amd64_linux_sc_reg_offset);
1799
1800   tdep->xsave_xcr0_offset = I386_LINUX_XSAVE_XCR0_OFFSET;
1801
1802   /* Add the %orig_rax register used for syscall restarting.  */
1803   set_gdbarch_write_pc (gdbarch, amd64_linux_write_pc);
1804
1805   tdep->register_reggroup_p = amd64_linux_register_reggroup_p;
1806
1807   /* Functions for 'catch syscall'.  */
1808   set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_AMD64);
1809   set_gdbarch_get_syscall_number (gdbarch,
1810                                   amd64_linux_get_syscall_number);
1811
1812   /* Enable TLS support.  */
1813   set_gdbarch_fetch_tls_load_module_address (gdbarch,
1814                                              svr4_fetch_objfile_link_map);
1815
1816   /* GNU/Linux uses SVR4-style shared libraries.  */
1817   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
1818
1819   /* GNU/Linux uses the dynamic linker included in the GNU C Library.  */
1820   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
1821
1822   /* Iterate over core file register note sections.  */
1823   set_gdbarch_iterate_over_regset_sections
1824     (gdbarch, amd64_linux_iterate_over_regset_sections);
1825
1826   set_gdbarch_core_read_description (gdbarch,
1827                                      amd64_linux_core_read_description);
1828
1829   /* Displaced stepping.  */
1830   set_gdbarch_displaced_step_copy_insn (gdbarch,
1831                                         amd64_displaced_step_copy_insn);
1832   set_gdbarch_displaced_step_fixup (gdbarch, amd64_displaced_step_fixup);
1833
1834   set_gdbarch_process_record (gdbarch, i386_process_record);
1835   set_gdbarch_process_record_signal (gdbarch, amd64_linux_record_signal);
1836
1837   set_gdbarch_get_siginfo_type (gdbarch, x86_linux_get_siginfo_type);
1838   set_gdbarch_report_signal_info (gdbarch, i386_linux_report_signal_info);
1839 }
1840
1841 static void
1842 amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
1843 {
1844   i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (gdbarch);
1845   struct tdesc_arch_data *tdesc_data = info.tdesc_data;
1846   const struct tdesc_feature *feature;
1847   int valid_p;
1848
1849   gdb_assert (tdesc_data);
1850
1851   tdep->gregset_reg_offset = amd64_linux_gregset_reg_offset;
1852   tdep->gregset_num_regs = ARRAY_SIZE (amd64_linux_gregset_reg_offset);
1853   tdep->sizeof_gregset = 27 * 8;
1854
1855   amd64_init_abi (info, gdbarch,
1856                   amd64_linux_read_description (X86_XSTATE_SSE_MASK, false));
1857
1858   const target_desc *tdesc = tdep->tdesc;
1859
1860   /* Reserve a number for orig_rax.  */
1861   set_gdbarch_num_regs (gdbarch, AMD64_LINUX_NUM_REGS);
1862
1863   feature = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.linux");
1864   if (feature == NULL)
1865     return;
1866
1867   valid_p = tdesc_numbered_register (feature, tdesc_data,
1868                                      AMD64_LINUX_ORIG_RAX_REGNUM,
1869                                      "orig_rax");
1870   if (!valid_p)
1871     return;
1872
1873   amd64_linux_init_abi_common (info, gdbarch, 2);
1874
1875   /* Initialize the amd64_linux_record_tdep.  */
1876   /* These values are the size of the type that will be used in a system
1877      call.  They are obtained from Linux Kernel source.  */
1878   amd64_linux_record_tdep.size_pointer
1879     = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
1880   amd64_linux_record_tdep.size__old_kernel_stat = 32;
1881   amd64_linux_record_tdep.size_tms = 32;
1882   amd64_linux_record_tdep.size_loff_t = 8;
1883   amd64_linux_record_tdep.size_flock = 32;
1884   amd64_linux_record_tdep.size_oldold_utsname = 45;
1885   amd64_linux_record_tdep.size_ustat = 32;
1886   /* ADM64 doesn't need this size because it doesn't have sys_sigaction
1887      but sys_rt_sigaction.  */
1888   amd64_linux_record_tdep.size_old_sigaction = 32;
1889   /* ADM64 doesn't need this size because it doesn't have sys_sigpending
1890      but sys_rt_sigpending.  */
1891   amd64_linux_record_tdep.size_old_sigset_t = 8;
1892   amd64_linux_record_tdep.size_rlimit = 16;
1893   amd64_linux_record_tdep.size_rusage = 144;
1894   amd64_linux_record_tdep.size_timeval = 16;
1895   amd64_linux_record_tdep.size_timezone = 8;
1896   /* ADM64 doesn't need this size because it doesn't have sys_getgroups16
1897      but sys_getgroups.  */
1898   amd64_linux_record_tdep.size_old_gid_t = 2;
1899   /* ADM64 doesn't need this size because it doesn't have sys_getresuid16
1900      but sys_getresuid.  */
1901   amd64_linux_record_tdep.size_old_uid_t = 2;
1902   amd64_linux_record_tdep.size_fd_set = 128;
1903   /* ADM64 doesn't need this size because it doesn't have sys_readdir. */
1904   amd64_linux_record_tdep.size_old_dirent = 280;
1905   amd64_linux_record_tdep.size_statfs = 120;
1906   amd64_linux_record_tdep.size_statfs64 = 120;
1907   amd64_linux_record_tdep.size_sockaddr = 16;
1908   amd64_linux_record_tdep.size_int
1909     = gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT;
1910   amd64_linux_record_tdep.size_long
1911     = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
1912   amd64_linux_record_tdep.size_ulong
1913     = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
1914   amd64_linux_record_tdep.size_msghdr = 56;
1915   amd64_linux_record_tdep.size_itimerval = 32;
1916   amd64_linux_record_tdep.size_stat = 144;
1917   amd64_linux_record_tdep.size_old_utsname = 325;
1918   amd64_linux_record_tdep.size_sysinfo = 112;
1919   amd64_linux_record_tdep.size_msqid_ds = 120;
1920   amd64_linux_record_tdep.size_shmid_ds = 112;
1921   amd64_linux_record_tdep.size_new_utsname = 390;
1922   amd64_linux_record_tdep.size_timex = 208;
1923   amd64_linux_record_tdep.size_mem_dqinfo = 24;
1924   amd64_linux_record_tdep.size_if_dqblk = 72;
1925   amd64_linux_record_tdep.size_fs_quota_stat = 80;
1926   amd64_linux_record_tdep.size_timespec = 16;
1927   amd64_linux_record_tdep.size_pollfd = 8;
1928   amd64_linux_record_tdep.size_NFS_FHSIZE = 32;
1929   amd64_linux_record_tdep.size_knfsd_fh = 132;
1930   amd64_linux_record_tdep.size_TASK_COMM_LEN = 16;
1931   amd64_linux_record_tdep.size_sigaction = 32;
1932   amd64_linux_record_tdep.size_sigset_t = 8;
1933   amd64_linux_record_tdep.size_siginfo_t = 128;
1934   amd64_linux_record_tdep.size_cap_user_data_t = 8;
1935   amd64_linux_record_tdep.size_stack_t = 24;
1936   amd64_linux_record_tdep.size_off_t = 8;
1937   amd64_linux_record_tdep.size_stat64 = 144;
1938   amd64_linux_record_tdep.size_gid_t = 4;
1939   amd64_linux_record_tdep.size_uid_t = 4;
1940   amd64_linux_record_tdep.size_PAGE_SIZE = 4096;
1941   amd64_linux_record_tdep.size_flock64 = 32;
1942   amd64_linux_record_tdep.size_user_desc = 16;
1943   amd64_linux_record_tdep.size_io_event = 32;
1944   amd64_linux_record_tdep.size_iocb = 64;
1945   amd64_linux_record_tdep.size_epoll_event = 12;
1946   amd64_linux_record_tdep.size_itimerspec = 32;
1947   amd64_linux_record_tdep.size_mq_attr = 64;
1948   amd64_linux_record_tdep.size_termios = 36;
1949   amd64_linux_record_tdep.size_termios2 = 44;
1950   amd64_linux_record_tdep.size_pid_t = 4;
1951   amd64_linux_record_tdep.size_winsize = 8;
1952   amd64_linux_record_tdep.size_serial_struct = 72;
1953   amd64_linux_record_tdep.size_serial_icounter_struct = 80;
1954   amd64_linux_record_tdep.size_hayes_esp_config = 12;
1955   amd64_linux_record_tdep.size_size_t = 8;
1956   amd64_linux_record_tdep.size_iovec = 16;
1957   amd64_linux_record_tdep.size_time_t = 8;
1958
1959   /* These values are the second argument of system call "sys_fcntl"
1960      and "sys_fcntl64".  They are obtained from Linux Kernel source.  */
1961   amd64_linux_record_tdep.fcntl_F_GETLK = 5;
1962   amd64_linux_record_tdep.fcntl_F_GETLK64 = 12;
1963   amd64_linux_record_tdep.fcntl_F_SETLK64 = 13;
1964   amd64_linux_record_tdep.fcntl_F_SETLKW64 = 14;
1965
1966   amd64_linux_record_tdep.arg1 = AMD64_RDI_REGNUM;
1967   amd64_linux_record_tdep.arg2 = AMD64_RSI_REGNUM;
1968   amd64_linux_record_tdep.arg3 = AMD64_RDX_REGNUM;
1969   amd64_linux_record_tdep.arg4 = AMD64_R10_REGNUM;
1970   amd64_linux_record_tdep.arg5 = AMD64_R8_REGNUM;
1971   amd64_linux_record_tdep.arg6 = AMD64_R9_REGNUM;
1972
1973   /* These values are the second argument of system call "sys_ioctl".
1974      They are obtained from Linux Kernel source.  */
1975   amd64_linux_record_tdep.ioctl_TCGETS = 0x5401;
1976   amd64_linux_record_tdep.ioctl_TCSETS = 0x5402;
1977   amd64_linux_record_tdep.ioctl_TCSETSW = 0x5403;
1978   amd64_linux_record_tdep.ioctl_TCSETSF = 0x5404;
1979   amd64_linux_record_tdep.ioctl_TCGETA = 0x5405;
1980   amd64_linux_record_tdep.ioctl_TCSETA = 0x5406;
1981   amd64_linux_record_tdep.ioctl_TCSETAW = 0x5407;
1982   amd64_linux_record_tdep.ioctl_TCSETAF = 0x5408;
1983   amd64_linux_record_tdep.ioctl_TCSBRK = 0x5409;
1984   amd64_linux_record_tdep.ioctl_TCXONC = 0x540A;
1985   amd64_linux_record_tdep.ioctl_TCFLSH = 0x540B;
1986   amd64_linux_record_tdep.ioctl_TIOCEXCL = 0x540C;
1987   amd64_linux_record_tdep.ioctl_TIOCNXCL = 0x540D;
1988   amd64_linux_record_tdep.ioctl_TIOCSCTTY = 0x540E;
1989   amd64_linux_record_tdep.ioctl_TIOCGPGRP = 0x540F;
1990   amd64_linux_record_tdep.ioctl_TIOCSPGRP = 0x5410;
1991   amd64_linux_record_tdep.ioctl_TIOCOUTQ = 0x5411;
1992   amd64_linux_record_tdep.ioctl_TIOCSTI = 0x5412;
1993   amd64_linux_record_tdep.ioctl_TIOCGWINSZ = 0x5413;
1994   amd64_linux_record_tdep.ioctl_TIOCSWINSZ = 0x5414;
1995   amd64_linux_record_tdep.ioctl_TIOCMGET = 0x5415;
1996   amd64_linux_record_tdep.ioctl_TIOCMBIS = 0x5416;
1997   amd64_linux_record_tdep.ioctl_TIOCMBIC = 0x5417;
1998   amd64_linux_record_tdep.ioctl_TIOCMSET = 0x5418;
1999   amd64_linux_record_tdep.ioctl_TIOCGSOFTCAR = 0x5419;
2000   amd64_linux_record_tdep.ioctl_TIOCSSOFTCAR = 0x541A;
2001   amd64_linux_record_tdep.ioctl_FIONREAD = 0x541B;
2002   amd64_linux_record_tdep.ioctl_TIOCINQ
2003     = amd64_linux_record_tdep.ioctl_FIONREAD;
2004   amd64_linux_record_tdep.ioctl_TIOCLINUX = 0x541C;
2005   amd64_linux_record_tdep.ioctl_TIOCCONS = 0x541D;
2006   amd64_linux_record_tdep.ioctl_TIOCGSERIAL = 0x541E;
2007   amd64_linux_record_tdep.ioctl_TIOCSSERIAL = 0x541F;
2008   amd64_linux_record_tdep.ioctl_TIOCPKT = 0x5420;
2009   amd64_linux_record_tdep.ioctl_FIONBIO = 0x5421;
2010   amd64_linux_record_tdep.ioctl_TIOCNOTTY = 0x5422;
2011   amd64_linux_record_tdep.ioctl_TIOCSETD = 0x5423;
2012   amd64_linux_record_tdep.ioctl_TIOCGETD = 0x5424;
2013   amd64_linux_record_tdep.ioctl_TCSBRKP = 0x5425;
2014   amd64_linux_record_tdep.ioctl_TIOCTTYGSTRUCT = 0x5426;
2015   amd64_linux_record_tdep.ioctl_TIOCSBRK = 0x5427;
2016   amd64_linux_record_tdep.ioctl_TIOCCBRK = 0x5428;
2017   amd64_linux_record_tdep.ioctl_TIOCGSID = 0x5429;
2018   amd64_linux_record_tdep.ioctl_TCGETS2 = 0x802c542a;
2019   amd64_linux_record_tdep.ioctl_TCSETS2 = 0x402c542b;
2020   amd64_linux_record_tdep.ioctl_TCSETSW2 = 0x402c542c;
2021   amd64_linux_record_tdep.ioctl_TCSETSF2 = 0x402c542d;
2022   amd64_linux_record_tdep.ioctl_TIOCGPTN = 0x80045430;
2023   amd64_linux_record_tdep.ioctl_TIOCSPTLCK = 0x40045431;
2024   amd64_linux_record_tdep.ioctl_FIONCLEX = 0x5450;
2025   amd64_linux_record_tdep.ioctl_FIOCLEX = 0x5451;
2026   amd64_linux_record_tdep.ioctl_FIOASYNC = 0x5452;
2027   amd64_linux_record_tdep.ioctl_TIOCSERCONFIG = 0x5453;
2028   amd64_linux_record_tdep.ioctl_TIOCSERGWILD = 0x5454;
2029   amd64_linux_record_tdep.ioctl_TIOCSERSWILD = 0x5455;
2030   amd64_linux_record_tdep.ioctl_TIOCGLCKTRMIOS = 0x5456;
2031   amd64_linux_record_tdep.ioctl_TIOCSLCKTRMIOS = 0x5457;
2032   amd64_linux_record_tdep.ioctl_TIOCSERGSTRUCT = 0x5458;
2033   amd64_linux_record_tdep.ioctl_TIOCSERGETLSR = 0x5459;
2034   amd64_linux_record_tdep.ioctl_TIOCSERGETMULTI = 0x545A;
2035   amd64_linux_record_tdep.ioctl_TIOCSERSETMULTI = 0x545B;
2036   amd64_linux_record_tdep.ioctl_TIOCMIWAIT = 0x545C;
2037   amd64_linux_record_tdep.ioctl_TIOCGICOUNT = 0x545D;
2038   amd64_linux_record_tdep.ioctl_TIOCGHAYESESP = 0x545E;
2039   amd64_linux_record_tdep.ioctl_TIOCSHAYESESP = 0x545F;
2040   amd64_linux_record_tdep.ioctl_FIOQSIZE = 0x5460;
2041
2042   tdep->i386_syscall_record = amd64_linux_syscall_record;
2043
2044   /* GNU/Linux uses SVR4-style shared libraries.  */
2045   set_solib_svr4_fetch_link_map_offsets
2046     (gdbarch, linux_lp64_fetch_link_map_offsets);
2047
2048   /* Register DTrace handlers.  */
2049   set_gdbarch_dtrace_parse_probe_argument (gdbarch, amd64_dtrace_parse_probe_argument);
2050   set_gdbarch_dtrace_probe_is_enabled (gdbarch, amd64_dtrace_probe_is_enabled);
2051   set_gdbarch_dtrace_enable_probe (gdbarch, amd64_dtrace_enable_probe);
2052   set_gdbarch_dtrace_disable_probe (gdbarch, amd64_dtrace_disable_probe);
2053 }
2054
2055 static void
2056 amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
2057 {
2058   i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (gdbarch);
2059   struct tdesc_arch_data *tdesc_data = info.tdesc_data;
2060   const struct tdesc_feature *feature;
2061   int valid_p;
2062
2063   gdb_assert (tdesc_data);
2064
2065   tdep->gregset_reg_offset = amd64_linux_gregset_reg_offset;
2066   tdep->gregset_num_regs = ARRAY_SIZE (amd64_linux_gregset_reg_offset);
2067   tdep->sizeof_gregset = 27 * 8;
2068
2069   amd64_x32_init_abi (info, gdbarch,
2070                       amd64_linux_read_description (X86_XSTATE_SSE_MASK,
2071                                                     true));
2072
2073   /* Reserve a number for orig_rax.  */
2074   set_gdbarch_num_regs (gdbarch, AMD64_LINUX_NUM_REGS);
2075
2076   const target_desc *tdesc = tdep->tdesc;
2077
2078   feature = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.linux");
2079   if (feature == NULL)
2080     return;
2081
2082   valid_p = tdesc_numbered_register (feature, tdesc_data,
2083                                      AMD64_LINUX_ORIG_RAX_REGNUM,
2084                                      "orig_rax");
2085   if (!valid_p)
2086     return;
2087
2088   amd64_linux_init_abi_common (info, gdbarch, 0);
2089
2090   /* Initialize the amd64_x32_linux_record_tdep.  */
2091   /* These values are the size of the type that will be used in a system
2092      call.  They are obtained from Linux Kernel source.  */
2093   amd64_x32_linux_record_tdep.size_pointer
2094     = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
2095   amd64_x32_linux_record_tdep.size__old_kernel_stat = 32;
2096   amd64_x32_linux_record_tdep.size_tms = 32;
2097   amd64_x32_linux_record_tdep.size_loff_t = 8;
2098   amd64_x32_linux_record_tdep.size_flock = 32;
2099   amd64_x32_linux_record_tdep.size_oldold_utsname = 45;
2100   amd64_x32_linux_record_tdep.size_ustat = 32;
2101   /* ADM64 doesn't need this size because it doesn't have sys_sigaction
2102      but sys_rt_sigaction.  */
2103   amd64_x32_linux_record_tdep.size_old_sigaction = 16;
2104   /* ADM64 doesn't need this size because it doesn't have sys_sigpending
2105      but sys_rt_sigpending.  */
2106   amd64_x32_linux_record_tdep.size_old_sigset_t = 4;
2107   amd64_x32_linux_record_tdep.size_rlimit = 16;
2108   amd64_x32_linux_record_tdep.size_rusage = 144;
2109   amd64_x32_linux_record_tdep.size_timeval = 16;
2110   amd64_x32_linux_record_tdep.size_timezone = 8;
2111   /* ADM64 doesn't need this size because it doesn't have sys_getgroups16
2112      but sys_getgroups.  */
2113   amd64_x32_linux_record_tdep.size_old_gid_t = 2;
2114   /* ADM64 doesn't need this size because it doesn't have sys_getresuid16
2115      but sys_getresuid.  */
2116   amd64_x32_linux_record_tdep.size_old_uid_t = 2;
2117   amd64_x32_linux_record_tdep.size_fd_set = 128;
2118   /* ADM64 doesn't need this size because it doesn't have sys_readdir. */
2119   amd64_x32_linux_record_tdep.size_old_dirent = 268;
2120   amd64_x32_linux_record_tdep.size_statfs = 120;
2121   amd64_x32_linux_record_tdep.size_statfs64 = 120;
2122   amd64_x32_linux_record_tdep.size_sockaddr = 16;
2123   amd64_x32_linux_record_tdep.size_int
2124     = gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT;
2125   amd64_x32_linux_record_tdep.size_long
2126     = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
2127   amd64_x32_linux_record_tdep.size_ulong
2128     = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
2129   amd64_x32_linux_record_tdep.size_msghdr = 28;
2130   amd64_x32_linux_record_tdep.size_itimerval = 32;
2131   amd64_x32_linux_record_tdep.size_stat = 144;
2132   amd64_x32_linux_record_tdep.size_old_utsname = 325;
2133   amd64_x32_linux_record_tdep.size_sysinfo = 112;
2134   amd64_x32_linux_record_tdep.size_msqid_ds = 120;
2135   amd64_x32_linux_record_tdep.size_shmid_ds = 112;
2136   amd64_x32_linux_record_tdep.size_new_utsname = 390;
2137   amd64_x32_linux_record_tdep.size_timex = 208;
2138   amd64_x32_linux_record_tdep.size_mem_dqinfo = 24;
2139   amd64_x32_linux_record_tdep.size_if_dqblk = 72;
2140   amd64_x32_linux_record_tdep.size_fs_quota_stat = 80;
2141   amd64_x32_linux_record_tdep.size_timespec = 16;
2142   amd64_x32_linux_record_tdep.size_pollfd = 8;
2143   amd64_x32_linux_record_tdep.size_NFS_FHSIZE = 32;
2144   amd64_x32_linux_record_tdep.size_knfsd_fh = 132;
2145   amd64_x32_linux_record_tdep.size_TASK_COMM_LEN = 16;
2146   amd64_x32_linux_record_tdep.size_sigaction = 20;
2147   amd64_x32_linux_record_tdep.size_sigset_t = 8;
2148   amd64_x32_linux_record_tdep.size_siginfo_t = 128;
2149   amd64_x32_linux_record_tdep.size_cap_user_data_t = 8;
2150   amd64_x32_linux_record_tdep.size_stack_t = 12;
2151   amd64_x32_linux_record_tdep.size_off_t = 8;
2152   amd64_x32_linux_record_tdep.size_stat64 = 144;
2153   amd64_x32_linux_record_tdep.size_gid_t = 4;
2154   amd64_x32_linux_record_tdep.size_uid_t = 4;
2155   amd64_x32_linux_record_tdep.size_PAGE_SIZE = 4096;
2156   amd64_x32_linux_record_tdep.size_flock64 = 32;
2157   amd64_x32_linux_record_tdep.size_user_desc = 16;
2158   amd64_x32_linux_record_tdep.size_io_event = 32;
2159   amd64_x32_linux_record_tdep.size_iocb = 64;
2160   amd64_x32_linux_record_tdep.size_epoll_event = 12;
2161   amd64_x32_linux_record_tdep.size_itimerspec = 32;
2162   amd64_x32_linux_record_tdep.size_mq_attr = 64;
2163   amd64_x32_linux_record_tdep.size_termios = 36;
2164   amd64_x32_linux_record_tdep.size_termios2 = 44;
2165   amd64_x32_linux_record_tdep.size_pid_t = 4;
2166   amd64_x32_linux_record_tdep.size_winsize = 8;
2167   amd64_x32_linux_record_tdep.size_serial_struct = 72;
2168   amd64_x32_linux_record_tdep.size_serial_icounter_struct = 80;
2169   amd64_x32_linux_record_tdep.size_hayes_esp_config = 12;
2170   amd64_x32_linux_record_tdep.size_size_t = 4;
2171   amd64_x32_linux_record_tdep.size_iovec = 8;
2172   amd64_x32_linux_record_tdep.size_time_t = 8;
2173
2174   /* These values are the second argument of system call "sys_fcntl"
2175      and "sys_fcntl64".  They are obtained from Linux Kernel source.  */
2176   amd64_x32_linux_record_tdep.fcntl_F_GETLK = 5;
2177   amd64_x32_linux_record_tdep.fcntl_F_GETLK64 = 12;
2178   amd64_x32_linux_record_tdep.fcntl_F_SETLK64 = 13;
2179   amd64_x32_linux_record_tdep.fcntl_F_SETLKW64 = 14;
2180
2181   amd64_x32_linux_record_tdep.arg1 = AMD64_RDI_REGNUM;
2182   amd64_x32_linux_record_tdep.arg2 = AMD64_RSI_REGNUM;
2183   amd64_x32_linux_record_tdep.arg3 = AMD64_RDX_REGNUM;
2184   amd64_x32_linux_record_tdep.arg4 = AMD64_R10_REGNUM;
2185   amd64_x32_linux_record_tdep.arg5 = AMD64_R8_REGNUM;
2186   amd64_x32_linux_record_tdep.arg6 = AMD64_R9_REGNUM;
2187
2188   /* These values are the second argument of system call "sys_ioctl".
2189      They are obtained from Linux Kernel source.  */
2190   amd64_x32_linux_record_tdep.ioctl_TCGETS = 0x5401;
2191   amd64_x32_linux_record_tdep.ioctl_TCSETS = 0x5402;
2192   amd64_x32_linux_record_tdep.ioctl_TCSETSW = 0x5403;
2193   amd64_x32_linux_record_tdep.ioctl_TCSETSF = 0x5404;
2194   amd64_x32_linux_record_tdep.ioctl_TCGETA = 0x5405;
2195   amd64_x32_linux_record_tdep.ioctl_TCSETA = 0x5406;
2196   amd64_x32_linux_record_tdep.ioctl_TCSETAW = 0x5407;
2197   amd64_x32_linux_record_tdep.ioctl_TCSETAF = 0x5408;
2198   amd64_x32_linux_record_tdep.ioctl_TCSBRK = 0x5409;
2199   amd64_x32_linux_record_tdep.ioctl_TCXONC = 0x540A;
2200   amd64_x32_linux_record_tdep.ioctl_TCFLSH = 0x540B;
2201   amd64_x32_linux_record_tdep.ioctl_TIOCEXCL = 0x540C;
2202   amd64_x32_linux_record_tdep.ioctl_TIOCNXCL = 0x540D;
2203   amd64_x32_linux_record_tdep.ioctl_TIOCSCTTY = 0x540E;
2204   amd64_x32_linux_record_tdep.ioctl_TIOCGPGRP = 0x540F;
2205   amd64_x32_linux_record_tdep.ioctl_TIOCSPGRP = 0x5410;
2206   amd64_x32_linux_record_tdep.ioctl_TIOCOUTQ = 0x5411;
2207   amd64_x32_linux_record_tdep.ioctl_TIOCSTI = 0x5412;
2208   amd64_x32_linux_record_tdep.ioctl_TIOCGWINSZ = 0x5413;
2209   amd64_x32_linux_record_tdep.ioctl_TIOCSWINSZ = 0x5414;
2210   amd64_x32_linux_record_tdep.ioctl_TIOCMGET = 0x5415;
2211   amd64_x32_linux_record_tdep.ioctl_TIOCMBIS = 0x5416;
2212   amd64_x32_linux_record_tdep.ioctl_TIOCMBIC = 0x5417;
2213   amd64_x32_linux_record_tdep.ioctl_TIOCMSET = 0x5418;
2214   amd64_x32_linux_record_tdep.ioctl_TIOCGSOFTCAR = 0x5419;
2215   amd64_x32_linux_record_tdep.ioctl_TIOCSSOFTCAR = 0x541A;
2216   amd64_x32_linux_record_tdep.ioctl_FIONREAD = 0x541B;
2217   amd64_x32_linux_record_tdep.ioctl_TIOCINQ = amd64_x32_linux_record_tdep.ioctl_FIONREAD;
2218   amd64_x32_linux_record_tdep.ioctl_TIOCLINUX = 0x541C;
2219   amd64_x32_linux_record_tdep.ioctl_TIOCCONS = 0x541D;
2220   amd64_x32_linux_record_tdep.ioctl_TIOCGSERIAL = 0x541E;
2221   amd64_x32_linux_record_tdep.ioctl_TIOCSSERIAL = 0x541F;
2222   amd64_x32_linux_record_tdep.ioctl_TIOCPKT = 0x5420;
2223   amd64_x32_linux_record_tdep.ioctl_FIONBIO = 0x5421;
2224   amd64_x32_linux_record_tdep.ioctl_TIOCNOTTY = 0x5422;
2225   amd64_x32_linux_record_tdep.ioctl_TIOCSETD = 0x5423;
2226   amd64_x32_linux_record_tdep.ioctl_TIOCGETD = 0x5424;
2227   amd64_x32_linux_record_tdep.ioctl_TCSBRKP = 0x5425;
2228   amd64_x32_linux_record_tdep.ioctl_TIOCTTYGSTRUCT = 0x5426;
2229   amd64_x32_linux_record_tdep.ioctl_TIOCSBRK = 0x5427;
2230   amd64_x32_linux_record_tdep.ioctl_TIOCCBRK = 0x5428;
2231   amd64_x32_linux_record_tdep.ioctl_TIOCGSID = 0x5429;
2232   amd64_x32_linux_record_tdep.ioctl_TCGETS2 = 0x802c542a;
2233   amd64_x32_linux_record_tdep.ioctl_TCSETS2 = 0x402c542b;
2234   amd64_x32_linux_record_tdep.ioctl_TCSETSW2 = 0x402c542c;
2235   amd64_x32_linux_record_tdep.ioctl_TCSETSF2 = 0x402c542d;
2236   amd64_x32_linux_record_tdep.ioctl_TIOCGPTN = 0x80045430;
2237   amd64_x32_linux_record_tdep.ioctl_TIOCSPTLCK = 0x40045431;
2238   amd64_x32_linux_record_tdep.ioctl_FIONCLEX = 0x5450;
2239   amd64_x32_linux_record_tdep.ioctl_FIOCLEX = 0x5451;
2240   amd64_x32_linux_record_tdep.ioctl_FIOASYNC = 0x5452;
2241   amd64_x32_linux_record_tdep.ioctl_TIOCSERCONFIG = 0x5453;
2242   amd64_x32_linux_record_tdep.ioctl_TIOCSERGWILD = 0x5454;
2243   amd64_x32_linux_record_tdep.ioctl_TIOCSERSWILD = 0x5455;
2244   amd64_x32_linux_record_tdep.ioctl_TIOCGLCKTRMIOS = 0x5456;
2245   amd64_x32_linux_record_tdep.ioctl_TIOCSLCKTRMIOS = 0x5457;
2246   amd64_x32_linux_record_tdep.ioctl_TIOCSERGSTRUCT = 0x5458;
2247   amd64_x32_linux_record_tdep.ioctl_TIOCSERGETLSR = 0x5459;
2248   amd64_x32_linux_record_tdep.ioctl_TIOCSERGETMULTI = 0x545A;
2249   amd64_x32_linux_record_tdep.ioctl_TIOCSERSETMULTI = 0x545B;
2250   amd64_x32_linux_record_tdep.ioctl_TIOCMIWAIT = 0x545C;
2251   amd64_x32_linux_record_tdep.ioctl_TIOCGICOUNT = 0x545D;
2252   amd64_x32_linux_record_tdep.ioctl_TIOCGHAYESESP = 0x545E;
2253   amd64_x32_linux_record_tdep.ioctl_TIOCSHAYESESP = 0x545F;
2254   amd64_x32_linux_record_tdep.ioctl_FIOQSIZE = 0x5460;
2255
2256   tdep->i386_syscall_record = amd64_x32_linux_syscall_record;
2257
2258   /* GNU/Linux uses SVR4-style shared libraries.  */
2259   set_solib_svr4_fetch_link_map_offsets
2260     (gdbarch, linux_ilp32_fetch_link_map_offsets);
2261 }
2262
2263 void _initialize_amd64_linux_tdep ();
2264 void
2265 _initialize_amd64_linux_tdep ()
2266 {
2267   gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64,
2268                           GDB_OSABI_LINUX, amd64_linux_init_abi);
2269   gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x64_32,
2270                           GDB_OSABI_LINUX, amd64_x32_linux_init_abi);
2271 }
This page took 0.154161 seconds and 4 git commands to generate.