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

TOMOYO Linux Cross Reference
Linux/arch/x86/math-emu/shr_Xsig.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/x86/math-emu/shr_Xsig.S (Architecture alpha) and /arch/sparc/math-emu/shr_Xsig.S (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0 */            
  2         .file   "shr_Xsig.S"                      
  3 /*--------------------------------------------    
  4  |  shr_Xsig.S                                    
  5  |                                                
  6  | 12 byte right shift function                   
  7  |                                                
  8  | Copyright (C) 1992,1994,1995                   
  9  |                       W. Metzenthen, 22 Par    
 10  |                       Australia.  E-mail bi    
 11  |                                                
 12  | Call from C as:                                
 13  |   void shr_Xsig(Xsig *arg, unsigned nr)        
 14  |                                                
 15  |   Extended shift right function.               
 16  |   Fastest for small shifts.                    
 17  |   Shifts the 12 byte quantity pointed to by    
 18  |   right by the number of bits specified by     
 19  |                                                
 20  +--------------------------------------------    
 21                                                   
 22 #include "fpu_emu.h"                              
 23                                                   
 24 .text                                             
 25 SYM_FUNC_START(shr_Xsig)                          
 26         push    %ebp                              
 27         movl    %esp,%ebp                         
 28         pushl   %esi                              
 29         movl    PARAM2,%ecx                       
 30         movl    PARAM1,%esi                       
 31         cmpl    $32,%ecx        /* shrd only w    
 32         jnc     L_more_than_31                    
 33                                                   
 34 /* less than 32 bits */                           
 35         pushl   %ebx                              
 36         movl    (%esi),%eax     /* lsl */         
 37         movl    4(%esi),%ebx    /* midl */        
 38         movl    8(%esi),%edx    /* msl */         
 39         shrd    %cl,%ebx,%eax                     
 40         shrd    %cl,%edx,%ebx                     
 41         shr     %cl,%edx                          
 42         movl    %eax,(%esi)                       
 43         movl    %ebx,4(%esi)                      
 44         movl    %edx,8(%esi)                      
 45         popl    %ebx                              
 46         popl    %esi                              
 47         leave                                     
 48         RET                                       
 49                                                   
 50 L_more_than_31:                                   
 51         cmpl    $64,%ecx                          
 52         jnc     L_more_than_63                    
 53                                                   
 54         subb    $32,%cl                           
 55         movl    4(%esi),%eax    /* midl */        
 56         movl    8(%esi),%edx    /* msl */         
 57         shrd    %cl,%edx,%eax                     
 58         shr     %cl,%edx                          
 59         movl    %eax,(%esi)                       
 60         movl    %edx,4(%esi)                      
 61         movl    $0,8(%esi)                        
 62         popl    %esi                              
 63         leave                                     
 64         RET                                       
 65                                                   
 66 L_more_than_63:                                   
 67         cmpl    $96,%ecx                          
 68         jnc     L_more_than_95                    
 69                                                   
 70         subb    $64,%cl                           
 71         movl    8(%esi),%eax    /* msl */         
 72         shr     %cl,%eax                          
 73         xorl    %edx,%edx                         
 74         movl    %eax,(%esi)                       
 75         movl    %edx,4(%esi)                      
 76         movl    %edx,8(%esi)                      
 77         popl    %esi                              
 78         leave                                     
 79         RET                                       
 80                                                   
 81 L_more_than_95:                                   
 82         xorl    %eax,%eax                         
 83         movl    %eax,(%esi)                       
 84         movl    %eax,4(%esi)                      
 85         movl    %eax,8(%esi)                      
 86         popl    %esi                              
 87         leave                                     
 88         RET                                       
 89 SYM_FUNC_END(shr_Xsig)                            
                                                      

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