@@ -2172,118 +2172,15 @@ static const char *RegNumToRegName(int reg) {
2172
2172
return " ebp" ;
2173
2173
case REG_ESP:
2174
2174
return " esp" ;
2175
- # elif defined(__arm__)
2176
- # define REG_STR (reg ) #reg
2177
- # define MAKE_CASE (N ) \
2178
- case REG_R##N: \
2179
- return REG_STR (r##N)
2180
- MAKE_CASE (0 );
2181
- MAKE_CASE (1 );
2182
- MAKE_CASE (2 );
2183
- MAKE_CASE (3 );
2184
- MAKE_CASE (4 );
2185
- MAKE_CASE (5 );
2186
- MAKE_CASE (6 );
2187
- MAKE_CASE (7 );
2188
- MAKE_CASE (8 );
2189
- MAKE_CASE (9 );
2190
- MAKE_CASE (10 );
2191
- MAKE_CASE (11 );
2192
- MAKE_CASE (12 );
2193
- case REG_R13:
2194
- return " sp" ;
2195
- case REG_R14:
2196
- return " lr" ;
2197
- case REG_R15:
2198
- return " pc" ;
2199
- # elif defined(__aarch64__)
2200
- # define REG_STR (reg ) #reg
2201
- # define MAKE_CASE (N ) \
2202
- case N: \
2203
- return REG_STR (x##N)
2204
- MAKE_CASE (0 );
2205
- MAKE_CASE (1 );
2206
- MAKE_CASE (2 );
2207
- MAKE_CASE (3 );
2208
- MAKE_CASE (4 );
2209
- MAKE_CASE (5 );
2210
- MAKE_CASE (6 );
2211
- MAKE_CASE (7 );
2212
- MAKE_CASE (8 );
2213
- MAKE_CASE (9 );
2214
- MAKE_CASE (10 );
2215
- MAKE_CASE (11 );
2216
- MAKE_CASE (12 );
2217
- MAKE_CASE (13 );
2218
- MAKE_CASE (14 );
2219
- MAKE_CASE (15 );
2220
- MAKE_CASE (16 );
2221
- MAKE_CASE (17 );
2222
- MAKE_CASE (18 );
2223
- MAKE_CASE (19 );
2224
- MAKE_CASE (20 );
2225
- MAKE_CASE (21 );
2226
- MAKE_CASE (22 );
2227
- MAKE_CASE (23 );
2228
- MAKE_CASE (24 );
2229
- MAKE_CASE (25 );
2230
- MAKE_CASE (26 );
2231
- MAKE_CASE (27 );
2232
- MAKE_CASE (28 );
2233
- case 29 :
2234
- return " fp" ;
2235
- case 30 :
2236
- return " lr" ;
2237
- case 31 :
2238
- return " sp" ;
2239
2175
# endif
2176
+ # endif
2240
2177
default :
2241
2178
return NULL ;
2242
2179
}
2243
2180
return NULL ;
2244
2181
}
2245
2182
2246
- # if SANITIZER_LINUX && (defined(__arm__) || defined(__aarch64__))
2247
- static uptr GetArmRegister (ucontext_t *ctx, int RegNum) {
2248
- switch (RegNum) {
2249
- # if defined(__arm__)
2250
- # define MAKE_CASE (N ) \
2251
- case REG_R##N: \
2252
- return ctx->uc_mcontext .arm_r ##N
2253
- MAKE_CASE (0 );
2254
- MAKE_CASE (1 );
2255
- MAKE_CASE (2 );
2256
- MAKE_CASE (3 );
2257
- MAKE_CASE (4 );
2258
- MAKE_CASE (5 );
2259
- MAKE_CASE (6 );
2260
- MAKE_CASE (7 );
2261
- MAKE_CASE (8 );
2262
- MAKE_CASE (9 );
2263
- MAKE_CASE (10 );
2264
- case REG_R11:
2265
- return ctx->uc_mcontext .arm_fp ;
2266
- case REG_R12:
2267
- return ctx->uc_mcontext .arm_ip ;
2268
- case REG_R13:
2269
- return ctx->uc_mcontext .arm_sp ;
2270
- case REG_R14:
2271
- return ctx->uc_mcontext .arm_lr ;
2272
- case REG_R15:
2273
- return ctx->uc_mcontext .arm_pc ;
2274
- # elif defined(__aarch64__)
2275
- case 0 ... 30 :
2276
- return ctx->uc_mcontext .regs [RegNum];
2277
- case 31 :
2278
- return ctx->uc_mcontext .sp ;
2279
- # endif
2280
- default :
2281
- return 0 ;
2282
- }
2283
- return 0 ;
2284
- }
2285
- # endif // SANITIZER_LINUX && (defined(__arm__) || defined(__aarch64__))
2286
-
2183
+ # if SANITIZER_LINUX
2287
2184
UNUSED
2288
2185
static void DumpSingleReg (ucontext_t *ctx, int RegNum) {
2289
2186
const char *RegName = RegNumToRegName (RegNum);
@@ -2292,12 +2189,6 @@ static void DumpSingleReg(ucontext_t *ctx, int RegNum) {
2292
2189
RegName, ctx->uc_mcontext .gregs [RegNum]);
2293
2190
# elif defined(__i386__)
2294
2191
Printf (" %s = 0x%08x " , RegName, ctx->uc_mcontext .gregs [RegNum]);
2295
- # elif defined(__arm__)
2296
- Printf (" %s%s = 0x%08zx " , internal_strlen (RegName) == 2 ? " " : " " , RegName,
2297
- GetArmRegister (ctx, RegNum));
2298
- # elif defined(__aarch64__)
2299
- Printf (" %s%s = 0x%016zx " , internal_strlen (RegName) == 2 ? " " : " " , RegName,
2300
- GetArmRegister (ctx, RegNum));
2301
2192
# else
2302
2193
(void )RegName;
2303
2194
# endif
@@ -2345,35 +2236,6 @@ void SignalContext::DumpAllRegisters(void *context) {
2345
2236
DumpSingleReg (ucontext, REG_EBP);
2346
2237
DumpSingleReg (ucontext, REG_ESP);
2347
2238
Printf (" \n " );
2348
- # elif defined(__arm__)
2349
- Report (" Register values:\n " );
2350
- DumpSingleReg (ucontext, REG_R0);
2351
- DumpSingleReg (ucontext, REG_R1);
2352
- DumpSingleReg (ucontext, REG_R2);
2353
- DumpSingleReg (ucontext, REG_R3);
2354
- Printf (" \n " );
2355
- DumpSingleReg (ucontext, REG_R4);
2356
- DumpSingleReg (ucontext, REG_R5);
2357
- DumpSingleReg (ucontext, REG_R6);
2358
- DumpSingleReg (ucontext, REG_R7);
2359
- Printf (" \n " );
2360
- DumpSingleReg (ucontext, REG_R8);
2361
- DumpSingleReg (ucontext, REG_R9);
2362
- DumpSingleReg (ucontext, REG_R10);
2363
- DumpSingleReg (ucontext, REG_R11);
2364
- Printf (" \n " );
2365
- DumpSingleReg (ucontext, REG_R12);
2366
- DumpSingleReg (ucontext, REG_R13);
2367
- DumpSingleReg (ucontext, REG_R14);
2368
- DumpSingleReg (ucontext, REG_R15);
2369
- Printf (" \n " );
2370
- # elif defined(__aarch64__)
2371
- Report (" Register values:\n " );
2372
- for (int i = 0 ; i <= 31 ; ++i) {
2373
- DumpSingleReg (ucontext, i);
2374
- if (i % 4 == 3 )
2375
- Printf (" \n " );
2376
- }
2377
2239
# else
2378
2240
(void )ucontext;
2379
2241
# endif
0 commit comments