@@ -2172,118 +2172,15 @@ static const char *RegNumToRegName(int reg) {
21722172 return " ebp" ;
21732173 case REG_ESP:
21742174 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" ;
22392175# endif
2176+ # endif
22402177 default :
22412178 return NULL ;
22422179 }
22432180 return NULL ;
22442181}
22452182
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
22872184UNUSED
22882185static void DumpSingleReg (ucontext_t *ctx, int RegNum) {
22892186 const char *RegName = RegNumToRegName (RegNum);
@@ -2292,12 +2189,6 @@ static void DumpSingleReg(ucontext_t *ctx, int RegNum) {
22922189 RegName, ctx->uc_mcontext .gregs [RegNum]);
22932190# elif defined(__i386__)
22942191 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));
23012192# else
23022193 (void )RegName;
23032194# endif
@@ -2345,35 +2236,6 @@ void SignalContext::DumpAllRegisters(void *context) {
23452236 DumpSingleReg (ucontext, REG_EBP);
23462237 DumpSingleReg (ucontext, REG_ESP);
23472238 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- }
23772239# else
23782240 (void )ucontext;
23792241# endif
0 commit comments