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

TOMOYO Linux Cross Reference
Linux/arch/arc/lib/memcpy-archs-unaligned.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/arc/lib/memcpy-archs-unaligned.S (Version linux-6.12-rc7) and /arch/m68k/lib/memcpy-archs-unaligned.S (Version linux-3.10.108)


  1 /* SPDX-License-Identifier: GPL-2.0+ */           
  2 /*                                                
  3  * ARCv2 memcpy implementation optimized for u    
  4  *                                                
  5  * Copyright (C) 2019 Synopsys                    
  6  * Author: Eugeniy Paltsev <Eugeniy.Paltsev@syn    
  7  */                                               
  8                                                   
  9 #include <linux/linkage.h>                        
 10                                                   
 11 #ifdef CONFIG_ARC_HAS_LL64                        
 12 # define LOADX(DST,RX)          ldd.ab  DST, [    
 13 # define STOREX(SRC,RX)         std.ab  SRC, [    
 14 # define ZOLSHFT                5                 
 15 # define ZOLAND                 0x1F              
 16 #else                                             
 17 # define LOADX(DST,RX)          ld.ab   DST, [    
 18 # define STOREX(SRC,RX)         st.ab   SRC, [    
 19 # define ZOLSHFT                4                 
 20 # define ZOLAND                 0xF               
 21 #endif                                            
 22                                                   
 23 ENTRY_CFI(memcpy)                                 
 24         mov     r3, r0          ; don;t clobbe    
 25                                                   
 26         lsr.f   lp_count, r2, ZOLSHFT             
 27         lpnz    @.Lcopy32_64bytes                 
 28         ;; LOOP START                             
 29         LOADX   (r6, r1)                          
 30         LOADX   (r8, r1)                          
 31         LOADX   (r10, r1)                         
 32         LOADX   (r4, r1)                          
 33         STOREX  (r6, r3)                          
 34         STOREX  (r8, r3)                          
 35         STOREX  (r10, r3)                         
 36         STOREX  (r4, r3)                          
 37 .Lcopy32_64bytes:                                 
 38                                                   
 39         and.f   lp_count, r2, ZOLAND ;Last rem    
 40         lpnz    @.Lcopyremainingbytes             
 41         ;; LOOP START                             
 42         ldb.ab  r5, [r1, 1]                       
 43         stb.ab  r5, [r3, 1]                       
 44 .Lcopyremainingbytes:                             
 45                                                   
 46         j       [blink]                           
 47 END_CFI(memcpy)                                   
                                                      

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