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

Side by Side Diff: gdb/arm-wince-tdep.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/arm-tdep.c ('k') | gdb/auto-load.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Target-dependent code for Windows CE running on ARM processors, 1 /* Target-dependent code for Windows CE running on ARM processors,
2 for GDB. 2 for GDB.
3 3
4 Copyright (C) 2007-2012 Free Software Foundation, Inc. 4 Copyright (C) 2007-2012 Free Software Foundation, Inc.
5 5
6 This file is part of GDB. 6 This file is part of GDB.
7 7
8 This program is free software; you can redistribute it and/or modify 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 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 10 the Free Software Foundation; either version 3 of the License, or
(...skipping 26 matching lines...) Expand all
37 #define ARM_WINCE_JB_ELEMENT_SIZE INT_REGISTER_SIZE 37 #define ARM_WINCE_JB_ELEMENT_SIZE INT_REGISTER_SIZE
38 #define ARM_WINCE_JB_PC 10 38 #define ARM_WINCE_JB_PC 10
39 39
40 static CORE_ADDR 40 static CORE_ADDR
41 arm_pe_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc) 41 arm_pe_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
42 { 42 {
43 struct gdbarch *gdbarch = get_frame_arch (frame); 43 struct gdbarch *gdbarch = get_frame_arch (frame);
44 enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 44 enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
45 ULONGEST indirect; 45 ULONGEST indirect;
46 struct minimal_symbol *indsym; 46 struct minimal_symbol *indsym;
47 char *symname; 47 const char *symname;
48 CORE_ADDR next_pc; 48 CORE_ADDR next_pc;
49 49
50 /* The format of an ARM DLL trampoline is: 50 /* The format of an ARM DLL trampoline is:
51 ldr ip, [pc] 51 ldr ip, [pc]
52 ldr pc, [ip] 52 ldr pc, [ip]
53 .dw __imp_<func> */ 53 .dw __imp_<func> */
54 54
55 if (pc == 0 55 if (pc == 0
56 || read_memory_unsigned_integer (pc + 0, 4, byte_order) != 0xe59fc000 56 || read_memory_unsigned_integer (pc + 0, 4, byte_order) != 0xe59fc000
57 || read_memory_unsigned_integer (pc + 4, 4, byte_order) != 0xe59cf000) 57 || read_memory_unsigned_integer (pc + 4, 4, byte_order) != 0xe59cf000)
(...skipping 19 matching lines...) Expand all
77 return arm_skip_stub (frame, pc); 77 return arm_skip_stub (frame, pc);
78 } 78 }
79 79
80 /* GCC emits a call to __gccmain in the prologue of main. 80 /* GCC emits a call to __gccmain in the prologue of main.
81 81
82 The function below examines the code pointed at by PC and checks to 82 The function below examines the code pointed at by PC and checks to
83 see if it corresponds to a call to __gccmain. If so, it returns 83 see if it corresponds to a call to __gccmain. If so, it returns
84 the address of the instruction following that call. Otherwise, it 84 the address of the instruction following that call. Otherwise, it
85 simply returns PC. */ 85 simply returns PC. */
86 86
87 CORE_ADDR 87 static CORE_ADDR
88 arm_wince_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) 88 arm_wince_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
89 { 89 {
90 enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 90 enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
91 ULONGEST this_instr; 91 ULONGEST this_instr;
92 92
93 this_instr = read_memory_unsigned_integer (pc, 4, byte_order); 93 this_instr = read_memory_unsigned_integer (pc, 4, byte_order);
94 94
95 /* bl offset <__gccmain> */ 95 /* bl offset <__gccmain> */
96 if ((this_instr & 0xfff00000) == 0xeb000000) 96 if ((this_instr & 0xfff00000) == 0xeb000000)
97 { 97 {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 161
162 void 162 void
163 _initialize_arm_wince_tdep (void) 163 _initialize_arm_wince_tdep (void)
164 { 164 {
165 gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_coff_flavour, 165 gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_coff_flavour,
166 arm_wince_osabi_sniffer); 166 arm_wince_osabi_sniffer);
167 167
168 gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_WINCE, 168 gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_WINCE,
169 arm_wince_init_abi); 169 arm_wince_init_abi);
170 } 170 }
OLDNEW
« no previous file with comments | « gdb/arm-tdep.c ('k') | gdb/auto-load.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698