OLD | NEW |
1 /* Copyright (c) 2006, Google Inc. | 1 /* Copyright (c) 2006, Google Inc. |
2 * All rights reserved. | 2 * All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 uint32_t mq; /* Multiply/Quotient (PPC 601, POWER only) */ | 133 uint32_t mq; /* Multiply/Quotient (PPC 601, POWER only) */ |
134 uint32_t vrsave; /* Vector save */ | 134 uint32_t vrsave; /* Vector save */ |
135 | 135 |
136 /* float_save and vector_save aren't present in ppc_thread_state, but | 136 /* float_save and vector_save aren't present in ppc_thread_state, but |
137 * are represented in separate structures that still define a thread's | 137 * are represented in separate structures that still define a thread's |
138 * context. */ | 138 * context. */ |
139 MDFloatingSaveAreaPPC float_save; | 139 MDFloatingSaveAreaPPC float_save; |
140 MDVectorSaveAreaPPC vector_save; | 140 MDVectorSaveAreaPPC vector_save; |
141 } MDRawContextPPC; /* Based on ppc_thread_state */ | 141 } MDRawContextPPC; /* Based on ppc_thread_state */ |
142 | 142 |
| 143 /* Indices into gpr for registers with a dedicated or conventional purpose. */ |
| 144 enum MDPPCRegisterNumbers { |
| 145 MD_CONTEXT_PPC_REG_SP = 1 |
| 146 }; |
| 147 |
143 #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) | 148 #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
144 #pragma pack(0) | 149 #pragma pack(0) |
145 #else | 150 #else |
146 #pragma pack(pop) | 151 #pragma pack(pop) |
147 #endif | 152 #endif |
148 | 153 |
149 /* For (MDRawContextPPC).context_flags. These values indicate the type of | 154 /* For (MDRawContextPPC).context_flags. These values indicate the type of |
150 * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its | 155 * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its |
151 * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other | 156 * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other |
152 * CPUs. */ | 157 * CPUs. */ |
153 #define MD_CONTEXT_PPC 0x20000000 | 158 #define MD_CONTEXT_PPC 0x20000000 |
154 #define MD_CONTEXT_PPC_BASE (MD_CONTEXT_PPC | 0x00000001) | 159 #define MD_CONTEXT_PPC_BASE (MD_CONTEXT_PPC | 0x00000001) |
155 #define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008) | 160 #define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008) |
156 #define MD_CONTEXT_PPC_VECTOR (MD_CONTEXT_PPC | 0x00000020) | 161 #define MD_CONTEXT_PPC_VECTOR (MD_CONTEXT_PPC | 0x00000020) |
157 | 162 |
158 #define MD_CONTEXT_PPC_FULL MD_CONTEXT_PPC_BASE | 163 #define MD_CONTEXT_PPC_FULL MD_CONTEXT_PPC_BASE |
159 #define MD_CONTEXT_PPC_ALL (MD_CONTEXT_PPC_FULL | \ | 164 #define MD_CONTEXT_PPC_ALL (MD_CONTEXT_PPC_FULL | \ |
160 MD_CONTEXT_PPC_FLOATING_POINT | \ | 165 MD_CONTEXT_PPC_FLOATING_POINT | \ |
161 MD_CONTEXT_PPC_VECTOR) | 166 MD_CONTEXT_PPC_VECTOR) |
162 | 167 |
163 #endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */ | 168 #endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */ |
OLD | NEW |