Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(816)

Side by Side Diff: gdb/amd64-nat.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/amd64-linux-tdep.c ('k') | gdb/amd64-sol2-tdep.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Native-dependent code for AMD64. 1 /* Native-dependent code for AMD64.
2 2
3 Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. 3 Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc.
4 4
5 This file is part of GDB. 5 This file is part of GDB.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 general-purpose register set. */ 52 general-purpose register set. */
53 53
54 static int 54 static int
55 amd64_native_gregset_reg_offset (struct gdbarch *gdbarch, int regnum) 55 amd64_native_gregset_reg_offset (struct gdbarch *gdbarch, int regnum)
56 { 56 {
57 int *reg_offset = amd64_native_gregset64_reg_offset; 57 int *reg_offset = amd64_native_gregset64_reg_offset;
58 int num_regs = amd64_native_gregset64_num_regs; 58 int num_regs = amd64_native_gregset64_num_regs;
59 59
60 gdb_assert (regnum >= 0); 60 gdb_assert (regnum >= 0);
61 61
62 if (gdbarch_ptr_bit (gdbarch) == 32) 62 if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
63 { 63 {
64 reg_offset = amd64_native_gregset32_reg_offset; 64 reg_offset = amd64_native_gregset32_reg_offset;
65 num_regs = amd64_native_gregset32_num_regs; 65 num_regs = amd64_native_gregset32_num_regs;
66 } 66 }
67 67
68 if (num_regs > gdbarch_num_regs (gdbarch)) 68 if (num_regs > gdbarch_num_regs (gdbarch))
69 num_regs = gdbarch_num_regs (gdbarch); 69 num_regs = gdbarch_num_regs (gdbarch);
70 70
71 if (regnum < num_regs && regnum < gdbarch_num_regs (gdbarch)) 71 if (regnum < num_regs && regnum < gdbarch_num_regs (gdbarch))
72 return reg_offset[regnum]; 72 return reg_offset[regnum];
(...skipping 16 matching lines...) Expand all
89 89
90 void 90 void
91 amd64_supply_native_gregset (struct regcache *regcache, 91 amd64_supply_native_gregset (struct regcache *regcache,
92 const void *gregs, int regnum) 92 const void *gregs, int regnum)
93 { 93 {
94 const char *regs = gregs; 94 const char *regs = gregs;
95 struct gdbarch *gdbarch = get_regcache_arch (regcache); 95 struct gdbarch *gdbarch = get_regcache_arch (regcache);
96 int num_regs = amd64_native_gregset64_num_regs; 96 int num_regs = amd64_native_gregset64_num_regs;
97 int i; 97 int i;
98 98
99 if (gdbarch_ptr_bit (gdbarch) == 32) 99 if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
100 num_regs = amd64_native_gregset32_num_regs; 100 num_regs = amd64_native_gregset32_num_regs;
101 101
102 if (num_regs > gdbarch_num_regs (gdbarch)) 102 if (num_regs > gdbarch_num_regs (gdbarch))
103 num_regs = gdbarch_num_regs (gdbarch); 103 num_regs = gdbarch_num_regs (gdbarch);
104 104
105 for (i = 0; i < num_regs; i++) 105 for (i = 0; i < num_regs; i++)
106 { 106 {
107 if (regnum == -1 || regnum == i) 107 if (regnum == -1 || regnum == i)
108 { 108 {
109 int offset = amd64_native_gregset_reg_offset (gdbarch, i); 109 int offset = amd64_native_gregset_reg_offset (gdbarch, i);
(...skipping 10 matching lines...) Expand all
120 120
121 void 121 void
122 amd64_collect_native_gregset (const struct regcache *regcache, 122 amd64_collect_native_gregset (const struct regcache *regcache,
123 void *gregs, int regnum) 123 void *gregs, int regnum)
124 { 124 {
125 char *regs = gregs; 125 char *regs = gregs;
126 struct gdbarch *gdbarch = get_regcache_arch (regcache); 126 struct gdbarch *gdbarch = get_regcache_arch (regcache);
127 int num_regs = amd64_native_gregset64_num_regs; 127 int num_regs = amd64_native_gregset64_num_regs;
128 int i; 128 int i;
129 129
130 if (gdbarch_ptr_bit (gdbarch) == 32) 130 if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
131 { 131 {
132 num_regs = amd64_native_gregset32_num_regs; 132 num_regs = amd64_native_gregset32_num_regs;
133 133
134 /* Make sure %eax, %ebx, %ecx, %edx, %esi, %edi, %ebp, %esp and 134 /* Make sure %eax, %ebx, %ecx, %edx, %esi, %edi, %ebp, %esp and
135 %eip get zero-extended to 64 bits. */ 135 %eip get zero-extended to 64 bits. */
136 for (i = 0; i <= I386_EIP_REGNUM; i++) 136 for (i = 0; i <= I386_EIP_REGNUM; i++)
137 { 137 {
138 if (regnum == -1 || regnum == i) 138 if (regnum == -1 || regnum == i)
139 memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8); 139 memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
140 } 140 }
(...skipping 12 matching lines...) Expand all
153 { 153 {
154 if (regnum == -1 || regnum == i) 154 if (regnum == -1 || regnum == i)
155 { 155 {
156 int offset = amd64_native_gregset_reg_offset (gdbarch, i); 156 int offset = amd64_native_gregset_reg_offset (gdbarch, i);
157 157
158 if (offset != -1) 158 if (offset != -1)
159 regcache_raw_collect (regcache, i, regs + offset); 159 regcache_raw_collect (regcache, i, regs + offset);
160 } 160 }
161 } 161 }
162 } 162 }
OLDNEW
« no previous file with comments | « gdb/amd64-linux-tdep.c ('k') | gdb/amd64-sol2-tdep.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698