| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 */ |
| OLD | NEW |