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

TOMOYO Linux Cross Reference
Linux/arch/m68k/fpsp040/x_fline.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/m68k/fpsp040/x_fline.S (Version linux-6.12-rc7) and /arch/i386/fpsp040/x_fline.S (Version linux-2.6.0)


  1 |                                                 
  2 |       x_fline.sa 3.3 1/10/91                    
  3 |                                                 
  4 |       fpsp_fline --- FPSP handler for fline     
  5 |                                                 
  6 |       First determine if the exception is on    
  7 |       floating point instructions.  If so, l    
  8 |       Next, determine if the instruction is     
  9 |       <ea> field.  If so, handle here and re    
 10 |       must be a real F-line exception.          
 11 |                                                 
 12                                                   
 13 |               Copyright (C) Motorola, Inc. 1    
 14 |                       All Rights Reserved       
 15 |                                                 
 16 |       For details on the license for this fi    
 17 |       file, README, in this same directory.     
 18                                                   
 19 X_FLINE:        |idnt    2,1 | Motorola 040 Fl    
 20                                                   
 21         |section        8                         
 22                                                   
 23 #include "fpsp.h"                                 
 24                                                   
 25         |xref   real_fline                        
 26         |xref   fpsp_unimp                        
 27         |xref   uni_2                             
 28         |xref   mem_read                          
 29         |xref   fpsp_fmt_error                    
 30                                                   
 31         .global fpsp_fline                        
 32 fpsp_fline:                                       
 33 |                                                 
 34 |       check for unimplemented vector first.     
 35 |       the equate is valid only after a 'link    
 36 |       long onto the stack.                      
 37 |                                                 
 38         cmpw    #UNIMP_VEC,EXC_VEC-4(%a7)         
 39         beql    fpsp_unimp                        
 40                                                   
 41 |                                                 
 42 |       fmovecr with non-zero <ea> handling he    
 43 |                                                 
 44         subl    #4,%a7          |4 accounts fo    
 45 |                               ;between six w    
 46 |                               ;four word fra    
 47         link    %a6,#-LOCAL_SIZE                  
 48         fsave   -(%a7)                            
 49         moveml  %d0-%d1/%a0-%a1,USER_DA(%a6)      
 50         moveal  EXC_PC+4(%a6),%a0       |get a    
 51         leal    L_SCR1(%a6),%a1 |use L_SCR1 as    
 52         movel   #4,%d0                            
 53         addl    #4,%a6          |to offset the    
 54 |                               ;a6 can point     
 55 |                               ;before branch    
 56         bsrl    mem_read                          
 57         subl    #4,%a6                            
 58         movel   L_SCR1(%a6),%d0 |d0 contains t    
 59         bfextu  %d0{#4:#3},%d1  |extract copro    
 60         cmpib   #1,%d1          |check if cpid    
 61         bne     not_mvcr        |exit if not      
 62         bfextu  %d0{#16:#6},%d1                   
 63         cmpib   #0x17,%d1               |check    
 64         bne     not_mvcr                          
 65 |                               ;if an FMOVECR    
 66 |                               ;and go to FPS    
 67 fix_stack:                                        
 68         cmpib   #VER_40,(%a7)   |test for orig    
 69         bnes    ck_rev                            
 70         subl    #UNIMP_40_SIZE-4,%a7 |emulate     
 71         moveb   #VER_40,(%a7)                     
 72         moveb   #UNIMP_40_SIZE-4,1(%a7)           
 73         clrw    2(%a7)                            
 74         bras    fix_con                           
 75 ck_rev:                                           
 76         cmpib   #VER_41,(%a7)   |test for rev     
 77         bnel    fpsp_fmt_error  |if not $40 or    
 78         subl    #UNIMP_41_SIZE-4,%a7 |emulate     
 79         moveb   #VER_41,(%a7)                     
 80         moveb   #UNIMP_41_SIZE-4,1(%a7)           
 81         clrw    2(%a7)                            
 82 fix_con:                                          
 83         movew   EXC_SR+4(%a6),EXC_SR(%a6) |mov    
 84         movel   EXC_PC+4(%a6),EXC_PC(%a6) |mov    
 85         fmovel  EXC_PC(%a6),%FPIAR |point FPIA    
 86         movel   #4,%d1                            
 87         addl    %d1,EXC_PC(%a6) |increment sta    
 88         movew   #0x202c,EXC_VEC(%a6) |reformat    
 89         clrl    EXC_EA(%a6)     |clear the EXC    
 90         movew   %d0,CMDREG1B(%a6) |move the lo    
 91         clrl    E_BYTE(%a6)                       
 92         bsetb   #UFLAG,T_BYTE(%a6)                
 93         moveml  USER_DA(%a6),%d0-%d1/%a0-%a1 |    
 94         bral    uni_2                             
 95                                                   
 96 not_mvcr:                                         
 97         moveml  USER_DA(%a6),%d0-%d1/%a0-%a1 |    
 98         frestore (%a7)+                           
 99         unlk    %a6                               
100         addl    #4,%a7                            
101         bral    real_fline                        
102                                                   
103         |end                                      
                                                      

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