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

TOMOYO Linux Cross Reference
Linux/arch/mips/kvm/fpu.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/mips/kvm/fpu.S (Version linux-6.12-rc7) and /arch/i386/kvm/fpu.S (Version linux-3.10.108)


  1 /*                                                
  2  * This file is subject to the terms and condi    
  3  * License.  See the file "COPYING" in the mai    
  4  * for more details.                              
  5  *                                                
  6  * FPU context handling code for KVM.             
  7  *                                                
  8  * Copyright (C) 2015 Imagination Technologies    
  9  */                                               
 10                                                   
 11 #include <asm/asm.h>                              
 12 #include <asm/asm-offsets.h>                      
 13 #include <asm/fpregdef.h>                         
 14 #include <asm/mipsregs.h>                         
 15 #include <asm/regdef.h>                           
 16                                                   
 17 /* preprocessor replaces the fp in ".set fp=64    
 18 #undef fp                                         
 19                                                   
 20         .set    noreorder                         
 21         .set    noat                              
 22                                                   
 23 LEAF(__kvm_save_fpu)                              
 24         .set    push                              
 25         .set    hardfloat                         
 26         .set    fp=64                             
 27         mfc0    t0, CP0_STATUS                    
 28         sll     t0, t0, 5                         
 29         bgez    t0, 1f                            
 30          nop                                      
 31         sdc1    $f1,  VCPU_FPR1(a0)               
 32         sdc1    $f3,  VCPU_FPR3(a0)               
 33         sdc1    $f5,  VCPU_FPR5(a0)               
 34         sdc1    $f7,  VCPU_FPR7(a0)               
 35         sdc1    $f9,  VCPU_FPR9(a0)               
 36         sdc1    $f11, VCPU_FPR11(a0)              
 37         sdc1    $f13, VCPU_FPR13(a0)              
 38         sdc1    $f15, VCPU_FPR15(a0)              
 39         sdc1    $f17, VCPU_FPR17(a0)              
 40         sdc1    $f19, VCPU_FPR19(a0)              
 41         sdc1    $f21, VCPU_FPR21(a0)              
 42         sdc1    $f23, VCPU_FPR23(a0)              
 43         sdc1    $f25, VCPU_FPR25(a0)              
 44         sdc1    $f27, VCPU_FPR27(a0)              
 45         sdc1    $f29, VCPU_FPR29(a0)              
 46         sdc1    $f31, VCPU_FPR31(a0)              
 47 1:      sdc1    $f0,  VCPU_FPR0(a0)               
 48         sdc1    $f2,  VCPU_FPR2(a0)               
 49         sdc1    $f4,  VCPU_FPR4(a0)               
 50         sdc1    $f6,  VCPU_FPR6(a0)               
 51         sdc1    $f8,  VCPU_FPR8(a0)               
 52         sdc1    $f10, VCPU_FPR10(a0)              
 53         sdc1    $f12, VCPU_FPR12(a0)              
 54         sdc1    $f14, VCPU_FPR14(a0)              
 55         sdc1    $f16, VCPU_FPR16(a0)              
 56         sdc1    $f18, VCPU_FPR18(a0)              
 57         sdc1    $f20, VCPU_FPR20(a0)              
 58         sdc1    $f22, VCPU_FPR22(a0)              
 59         sdc1    $f24, VCPU_FPR24(a0)              
 60         sdc1    $f26, VCPU_FPR26(a0)              
 61         sdc1    $f28, VCPU_FPR28(a0)              
 62         jr      ra                                
 63          sdc1   $f30, VCPU_FPR30(a0)              
 64         .set    pop                               
 65         END(__kvm_save_fpu)                       
 66                                                   
 67 LEAF(__kvm_restore_fpu)                           
 68         .set    push                              
 69         .set    hardfloat                         
 70         .set    fp=64                             
 71         mfc0    t0, CP0_STATUS                    
 72         sll     t0, t0, 5                         
 73         bgez    t0, 1f                            
 74          nop                                      
 75         ldc1    $f1,  VCPU_FPR1(a0)               
 76         ldc1    $f3,  VCPU_FPR3(a0)               
 77         ldc1    $f5,  VCPU_FPR5(a0)               
 78         ldc1    $f7,  VCPU_FPR7(a0)               
 79         ldc1    $f9,  VCPU_FPR9(a0)               
 80         ldc1    $f11, VCPU_FPR11(a0)              
 81         ldc1    $f13, VCPU_FPR13(a0)              
 82         ldc1    $f15, VCPU_FPR15(a0)              
 83         ldc1    $f17, VCPU_FPR17(a0)              
 84         ldc1    $f19, VCPU_FPR19(a0)              
 85         ldc1    $f21, VCPU_FPR21(a0)              
 86         ldc1    $f23, VCPU_FPR23(a0)              
 87         ldc1    $f25, VCPU_FPR25(a0)              
 88         ldc1    $f27, VCPU_FPR27(a0)              
 89         ldc1    $f29, VCPU_FPR29(a0)              
 90         ldc1    $f31, VCPU_FPR31(a0)              
 91 1:      ldc1    $f0,  VCPU_FPR0(a0)               
 92         ldc1    $f2,  VCPU_FPR2(a0)               
 93         ldc1    $f4,  VCPU_FPR4(a0)               
 94         ldc1    $f6,  VCPU_FPR6(a0)               
 95         ldc1    $f8,  VCPU_FPR8(a0)               
 96         ldc1    $f10, VCPU_FPR10(a0)              
 97         ldc1    $f12, VCPU_FPR12(a0)              
 98         ldc1    $f14, VCPU_FPR14(a0)              
 99         ldc1    $f16, VCPU_FPR16(a0)              
100         ldc1    $f18, VCPU_FPR18(a0)              
101         ldc1    $f20, VCPU_FPR20(a0)              
102         ldc1    $f22, VCPU_FPR22(a0)              
103         ldc1    $f24, VCPU_FPR24(a0)              
104         ldc1    $f26, VCPU_FPR26(a0)              
105         ldc1    $f28, VCPU_FPR28(a0)              
106         jr      ra                                
107          ldc1   $f30, VCPU_FPR30(a0)              
108         .set    pop                               
109         END(__kvm_restore_fpu)                    
110                                                   
111 LEAF(__kvm_restore_fcsr)                          
112         .set    push                              
113         .set    hardfloat                         
114         lw      t0, VCPU_FCR31(a0)                
115         /*                                        
116          * The ctc1 must stay at this offset i    
117          * See kvm_mips_csr_die_notify() which    
118          * which triggers an FP Exception, whi    
119          * ignored since the set cause bits mu    
120          */                                       
121         ctc1    t0, fcr31                         
122         jr      ra                                
123          nop                                      
124         .set    pop                               
125         END(__kvm_restore_fcsr)                   
                                                      

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