~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/util/dwarf-regs.c

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/perf/util/dwarf-regs.c (Version linux-6.11-rc3) and /tools/perf/util/dwarf-regs.c (Version policy-sample)


  1 // SPDX-License-Identifier: GPL-2.0                 1 
  2 /*                                                
  3  * dwarf-regs.c : Mapping of DWARF debug regis    
  4  *                                                
  5  * Written by: Masami Hiramatsu <mhiramat@kern    
  6  */                                               
  7                                                   
  8 #include <stdlib.h>                               
  9 #include <string.h>                               
 10 #include <debug.h>                                
 11 #include <dwarf-regs.h>                           
 12 #include <elf.h>                                  
 13 #include <errno.h>                                
 14 #include <linux/kernel.h>                         
 15                                                   
 16 #ifndef EM_AARCH64                                
 17 #define EM_AARCH64      183  /* ARM 64 bit */     
 18 #endif                                            
 19                                                   
 20 #ifndef EM_LOONGARCH                              
 21 #define EM_LOONGARCH    258 /* LoongArch */       
 22 #endif                                            
 23                                                   
 24 /* Define const char * {arch}_register_tbl[] *    
 25 #define DEFINE_DWARF_REGSTR_TABLE                 
 26 #include "../arch/x86/include/dwarf-regs-table    
 27 #include "../arch/arm/include/dwarf-regs-table    
 28 #include "../arch/arm64/include/dwarf-regs-tab    
 29 #include "../arch/sh/include/dwarf-regs-table.    
 30 #include "../arch/powerpc/include/dwarf-regs-t    
 31 #include "../arch/s390/include/dwarf-regs-tabl    
 32 #include "../arch/sparc/include/dwarf-regs-tab    
 33 #include "../arch/xtensa/include/dwarf-regs-ta    
 34 #include "../arch/mips/include/dwarf-regs-tabl    
 35 #include "../arch/loongarch/include/dwarf-regs    
 36                                                   
 37 #define __get_dwarf_regstr(tbl, n) (((n) < ARR    
 38                                                   
 39 /* Return architecture dependent register stri    
 40 const char *get_dwarf_regstr(unsigned int n, u    
 41 {                                                 
 42         switch (machine) {                        
 43         case EM_NONE:   /* Generic arch - use     
 44                 return get_arch_regstr(n);        
 45         case EM_386:                              
 46                 return __get_dwarf_regstr(x86_    
 47         case EM_X86_64:                           
 48                 return __get_dwarf_regstr(x86_    
 49         case EM_ARM:                              
 50                 return __get_dwarf_regstr(arm_    
 51         case EM_AARCH64:                          
 52                 return __get_dwarf_regstr(aarc    
 53         case EM_SH:                               
 54                 return __get_dwarf_regstr(sh_r    
 55         case EM_S390:                             
 56                 return __get_dwarf_regstr(s390    
 57         case EM_PPC:                              
 58         case EM_PPC64:                            
 59                 return __get_dwarf_regstr(powe    
 60         case EM_SPARC:                            
 61         case EM_SPARCV9:                          
 62                 return __get_dwarf_regstr(spar    
 63         case EM_XTENSA:                           
 64                 return __get_dwarf_regstr(xten    
 65         case EM_MIPS:                             
 66                 return __get_dwarf_regstr(mips    
 67         case EM_LOONGARCH:                        
 68                 return __get_dwarf_regstr(loon    
 69         default:                                  
 70                 pr_err("ELF MACHINE %x is not     
 71         }                                         
 72         return NULL;                              
 73 }                                                 
 74                                                   
 75 __weak int get_arch_regnum(const char *name __    
 76 {                                                 
 77         return -ENOTSUP;                          
 78 }                                                 
 79                                                   
 80 /* Return DWARF register number from architect    
 81 int get_dwarf_regnum(const char *name, unsigne    
 82 {                                                 
 83         char *regname = strdup(name);             
 84         int reg = -1;                             
 85         char *p;                                  
 86                                                   
 87         if (regname == NULL)                      
 88                 return -EINVAL;                   
 89                                                   
 90         /* For convenience, remove trailing ch    
 91         p = strpbrk(regname, " ,)");              
 92         if (p)                                    
 93                 *p = '\0';                        
 94                                                   
 95         switch (machine) {                        
 96         case EM_NONE:   /* Generic arch - use     
 97                 reg = get_arch_regnum(regname)    
 98                 break;                            
 99         default:                                  
100                 pr_err("ELF MACHINE %x is not     
101         }                                         
102         free(regname);                            
103         return reg;                               
104 }                                                 
105                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php