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

Side by Side Diff: gcc/unwind-dw2.c

Issue 23629051: ARM EH: Extend DWARF_FRAME_REGISTERS count to 48 and map reg# 256 -> 16. (Closed) Base URL: http://git.chromium.org/native_client/pnacl-gcc.git@pnacl
Patch Set: typos Created 7 years, 3 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 | « no previous file | gcc/unwind-pnacl.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 /* DWARF2 exception handling and frame unwind runtime interface routines. 1 /* DWARF2 exception handling and frame unwind runtime interface routines.
2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
3 2008, 2009, 2010 Free Software Foundation, Inc. 3 2008, 2009, 2010 Free Software Foundation, Inc.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify it 7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by 8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option) 9 the Free Software Foundation; either version 3, or (at your option)
10 any later version. 10 any later version.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #else 44 #else
45 #undef STACK_GROWS_DOWNWARD 45 #undef STACK_GROWS_DOWNWARD
46 #define STACK_GROWS_DOWNWARD 1 46 #define STACK_GROWS_DOWNWARD 1
47 #endif 47 #endif
48 48
49 /* Dwarf frame registers used for pre gcc 3.0 compiled glibc. */ 49 /* Dwarf frame registers used for pre gcc 3.0 compiled glibc. */
50 #ifndef PRE_GCC3_DWARF_FRAME_REGISTERS 50 #ifndef PRE_GCC3_DWARF_FRAME_REGISTERS
51 #define PRE_GCC3_DWARF_FRAME_REGISTERS DWARF_FRAME_REGISTERS 51 #define PRE_GCC3_DWARF_FRAME_REGISTERS DWARF_FRAME_REGISTERS
52 #endif 52 #endif
53 53
54 /* @LOCALMOD-BEGIN */
55 #if defined(__arm__)
56 /*
57 * Override DWARF_REG_TO_UNWIND_COLUMN to map high ARM register numbers
58 * into lower and obsolete register numbers. See unwind-pnacl.h.
59 */
60 int DWARF_REG_TO_UNWIND_COLUMN(int REGNO) {
61 if (REGNO >= 0 && REGNO < 16)
62 return REGNO;
63 if (REGNO >= 256 && REGNO < 287)
64 return (REGNO - 256 + 16);
65 /*
66 * Otherwise, assume REGNO is already mapped down from 256-287 -> 16-48.
67 * The normal 16-48 ARM dwarf registers are obsolete
68 * so this is sort of okay.
69 */
70 if (REGNO < DWARF_FRAME_REGISTERS)
71 return REGNO;
72 abort();
73 }
74
75 #else
54 #ifndef DWARF_REG_TO_UNWIND_COLUMN 76 #ifndef DWARF_REG_TO_UNWIND_COLUMN
55 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO) 77 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
56 #endif 78 #endif
79 #endif // __arm__
80 /* @LOCALMOD-END
81
57 82
58 /* This is the register and unwind state for a particular frame. This 83 /* This is the register and unwind state for a particular frame. This
59 provides the information necessary to unwind up past a frame and return 84 provides the information necessary to unwind up past a frame and return
60 to its caller. */ 85 to its caller. */
61 struct _Unwind_Context 86 struct _Unwind_Context
62 { 87 {
63 void *reg[DWARF_FRAME_REGISTERS+1]; 88 void *reg[DWARF_FRAME_REGISTERS+1];
64 void *cfa; 89 void *cfa;
65 void *ra; 90 void *ra;
66 void *lsda; 91 void *lsda;
(...skipping 1574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 alias (_Unwind_Resume_or_Rethrow); 1666 alias (_Unwind_Resume_or_Rethrow);
1642 alias (_Unwind_SetGR); 1667 alias (_Unwind_SetGR);
1643 // @LOCALMOD-BEGIN 1668 // @LOCALMOD-BEGIN
1644 alias (_Unwind_PNaClSetResult0); 1669 alias (_Unwind_PNaClSetResult0);
1645 alias (_Unwind_PNaClSetResult1); 1670 alias (_Unwind_PNaClSetResult1);
1646 // @LOCALMOD-END 1671 // @LOCALMOD-END
1647 alias (_Unwind_SetIP); 1672 alias (_Unwind_SetIP);
1648 #endif 1673 #endif
1649 1674
1650 #endif /* !USING_SJLJ_EXCEPTIONS */ 1675 #endif /* !USING_SJLJ_EXCEPTIONS */
OLDNEW
« no previous file with comments | « no previous file | gcc/unwind-pnacl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698