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

TOMOYO Linux Cross Reference
Linux/arch/riscv/kernel/mcount.S

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/riscv/kernel/mcount.S (Version linux-6.12-rc7) and /arch/sparc64/kernel/mcount.S (Version linux-6.11.7)


  1 /* SPDX-License-Identifier: GPL-2.0 */            
  2 /* Copyright (C) 2017 Andes Technology Corpora    
  3                                                   
  4 #include <linux/init.h>                           
  5 #include <linux/linkage.h>                        
  6 #include <linux/cfi_types.h>                      
  7 #include <linux/export.h>                         
  8 #include <asm/asm.h>                              
  9 #include <asm/csr.h>                              
 10 #include <asm/unistd.h>                           
 11 #include <asm/thread_info.h>                      
 12 #include <asm/asm-offsets.h>                      
 13 #include <asm/ftrace.h>                           
 14                                                   
 15         .text                                     
 16                                                   
 17         .macro SAVE_ABI_STATE                     
 18         addi    sp, sp, -16                       
 19         REG_S   s0, 0*SZREG(sp)                   
 20         REG_S   ra, 1*SZREG(sp)                   
 21         addi    s0, sp, 16                        
 22         .endm                                     
 23                                                   
 24         /*                                        
 25          * The call to ftrace_return_to_handle    
 26          * register if a0 was not saved.          
 27          */                                       
 28         .macro SAVE_RET_ABI_STATE                 
 29         addi    sp, sp, -4*SZREG                  
 30         REG_S   s0, 2*SZREG(sp)                   
 31         REG_S   ra, 3*SZREG(sp)                   
 32         REG_S   a0, 1*SZREG(sp)                   
 33         REG_S   a1, 0*SZREG(sp)                   
 34         addi    s0, sp, 4*SZREG                   
 35         .endm                                     
 36                                                   
 37         .macro RESTORE_ABI_STATE                  
 38         REG_L   ra, 1*SZREG(sp)                   
 39         REG_L   s0, 0*SZREG(sp)                   
 40         addi    sp, sp, 16                        
 41         .endm                                     
 42                                                   
 43         .macro RESTORE_RET_ABI_STATE              
 44         REG_L   ra, 3*SZREG(sp)                   
 45         REG_L   s0, 2*SZREG(sp)                   
 46         REG_L   a0, 1*SZREG(sp)                   
 47         REG_L   a1, 0*SZREG(sp)                   
 48         addi    sp, sp, 4*SZREG                   
 49         .endm                                     
 50                                                   
 51 SYM_TYPED_FUNC_START(ftrace_stub)                 
 52 #ifdef CONFIG_DYNAMIC_FTRACE                      
 53        .global _mcount                            
 54        .set    _mcount, ftrace_stub               
 55 #endif                                            
 56         ret                                       
 57 SYM_FUNC_END(ftrace_stub)                         
 58                                                   
 59 #ifdef CONFIG_FUNCTION_GRAPH_TRACER               
 60 SYM_TYPED_FUNC_START(ftrace_stub_graph)           
 61         ret                                       
 62 SYM_FUNC_END(ftrace_stub_graph)                   
 63                                                   
 64 SYM_FUNC_START(return_to_handler)                 
 65 /*                                                
 66  * On implementing the frame point test, the i    
 67  * s0 (frame pointer, if enabled) on entry and    
 68  * However, the psABI of variable-length-argum    
 69  *                                                
 70  * So alternatively we check the *old* frame p    
 71  * value stored in -16(s0) on entry, and the s    
 72  */                                               
 73         SAVE_RET_ABI_STATE                        
 74         mv      a0, sp                            
 75         call    ftrace_return_to_handler          
 76         mv      a2, a0                            
 77         RESTORE_RET_ABI_STATE                     
 78         jalr    a2                                
 79 SYM_FUNC_END(return_to_handler)                   
 80 #endif                                            
 81                                                   
 82 #ifndef CONFIG_DYNAMIC_FTRACE                     
 83 SYM_FUNC_START(_mcount)                           
 84         la      t4, ftrace_stub                   
 85 #ifdef CONFIG_FUNCTION_GRAPH_TRACER               
 86         la      t0, ftrace_graph_return           
 87         REG_L   t1, 0(t0)                         
 88         bne     t1, t4, .Ldo_ftrace_graph_call    
 89                                                   
 90         la      t3, ftrace_graph_entry            
 91         REG_L   t2, 0(t3)                         
 92         la      t6, ftrace_graph_entry_stub       
 93         bne     t2, t6, .Ldo_ftrace_graph_call    
 94 #endif                                            
 95         la      t3, ftrace_trace_function         
 96         REG_L   t5, 0(t3)                         
 97         bne     t5, t4, .Ldo_trace                
 98         ret                                       
 99                                                   
100 #ifdef CONFIG_FUNCTION_GRAPH_TRACER               
101 /*                                                
102  * A pseudo representation for the function gr    
103  * prepare_to_return(&ra_to_caller_of_caller,     
104  */                                               
105 .Ldo_ftrace_graph_caller:                         
106         addi    a0, s0, -SZREG                    
107         mv      a1, ra                            
108 #ifdef HAVE_FUNCTION_GRAPH_FP_TEST                
109         REG_L   a2, -2*SZREG(s0)                  
110 #endif                                            
111         SAVE_ABI_STATE                            
112         call    prepare_ftrace_return             
113         RESTORE_ABI_STATE                         
114         ret                                       
115 #endif                                            
116                                                   
117 /*                                                
118  * A pseudo representation for the function tr    
119  * (*ftrace_trace_function)(ra_to_caller, ra_t    
120  */                                               
121 .Ldo_trace:                                       
122         REG_L   a1, -SZREG(s0)                    
123         mv      a0, ra                            
124                                                   
125         SAVE_ABI_STATE                            
126         jalr    t5                                
127         RESTORE_ABI_STATE                         
128         ret                                       
129 SYM_FUNC_END(_mcount)                             
130 #endif                                            
131 EXPORT_SYMBOL(_mcount)                            
                                                      

~ [ 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