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

TOMOYO Linux Cross Reference
Linux/arch/arm/include/asm/vfpmacros.h

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/arm/include/asm/vfpmacros.h (Architecture m68k) and /arch/sparc/include/asm-sparc/vfpmacros.h (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * arch/arm/include/asm/vfpmacros.h               
  4  *                                                
  5  * Assembler-only file containing VFP macros a    
  6  */                                               
  7 #include <asm/hwcap.h>                            
  8                                                   
  9 #include <asm/vfp.h>                              
 10                                                   
 11 #ifdef CONFIG_AS_VFP_VMRS_FPINST                  
 12         .macro  VFPFMRX, rd, sysreg, cond         
 13         vmrs\cond       \rd, \sysreg              
 14         .endm                                     
 15                                                   
 16         .macro  VFPFMXR, sysreg, rd, cond         
 17         vmsr\cond       \sysreg, \rd              
 18         .endm                                     
 19 #else                                             
 20         @ Macros to allow building with old to    
 21         .macro  VFPFMRX, rd, sysreg, cond         
 22         MRC\cond        p10, 7, \rd, \sysreg,     
 23         .endm                                     
 24                                                   
 25         .macro  VFPFMXR, sysreg, rd, cond         
 26         MCR\cond        p10, 7, \rd, \sysreg,     
 27         .endm                                     
 28 #endif                                            
 29                                                   
 30         @ read all the working registers back     
 31         .macro  VFPFLDMIA, base, tmp              
 32         .fpu    vfpv2                             
 33 #if __LINUX_ARM_ARCH__ < 6                        
 34         fldmiax \base!, {d0-d15}                  
 35 #else                                             
 36         vldmia  \base!, {d0-d15}                  
 37 #endif                                            
 38 #ifdef CONFIG_VFPv3                               
 39         .fpu    vfpv3                             
 40 #if __LINUX_ARM_ARCH__ <= 6                       
 41         ldr     \tmp, =elf_hwcap                  
 42         ldr     \tmp, [\tmp, #0]                  
 43         tst     \tmp, #HWCAP_VFPD32               
 44         vldmiane \base!, {d16-d31}                
 45         addeq   \base, \base, #32*4               
 46 #else                                             
 47         VFPFMRX \tmp, MVFR0                       
 48         and     \tmp, \tmp, #MVFR0_A_SIMD_MASK    
 49         cmp     \tmp, #2                          
 50         vldmiaeq \base!, {d16-d31}                
 51         addne   \base, \base, #32*4               
 52 #endif                                            
 53 #endif                                            
 54         .endm                                     
 55                                                   
 56         @ write all the working registers out     
 57         .macro  VFPFSTMIA, base, tmp              
 58 #if __LINUX_ARM_ARCH__ < 6                        
 59         fstmiax \base!, {d0-d15}                  
 60 #else                                             
 61         vstmia  \base!, {d0-d15}                  
 62 #endif                                            
 63 #ifdef CONFIG_VFPv3                               
 64         .fpu    vfpv3                             
 65 #if __LINUX_ARM_ARCH__ <= 6                       
 66         ldr     \tmp, =elf_hwcap                  
 67         ldr     \tmp, [\tmp, #0]                  
 68         tst     \tmp, #HWCAP_VFPD32               
 69         vstmiane \base!, {d16-d31}                
 70         addeq   \base, \base, #32*4               
 71 #else                                             
 72         VFPFMRX \tmp, MVFR0                       
 73         and     \tmp, \tmp, #MVFR0_A_SIMD_MASK    
 74         cmp     \tmp, #2                          
 75         vstmiaeq \base!, {d16-d31}                
 76         addne   \base, \base, #32*4               
 77 #endif                                            
 78 #endif                                            
 79         .endm                                     
 80                                                   

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