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

TOMOYO Linux Cross Reference
Linux/arch/m68k/math-emu/fp_move.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/math-emu/fp_move.S (Architecture mips) and /arch/sparc/math-emu/fp_move.S (Architecture sparc)


  1 /*                                                
  2  * fp_move.S                                      
  3  *                                                
  4  * Copyright Roman Zippel, 1997.  All rights r    
  5  *                                                
  6  * Redistribution and use in source and binary    
  7  * modification, are permitted provided that t    
  8  * are met:                                       
  9  * 1. Redistributions of source code must reta    
 10  *    notice, and the entire permission notice    
 11  *    including the disclaimer of warranties.     
 12  * 2. Redistributions in binary form must repr    
 13  *    notice, this list of conditions and the     
 14  *    documentation and/or other materials pro    
 15  * 3. The name of the author may not be used t    
 16  *    products derived from this software with    
 17  *    written permission.                         
 18  *                                                
 19  * ALTERNATIVELY, this product may be distribu    
 20  * the GNU General Public License, in which ca    
 21  * required INSTEAD OF the above restrictions.    
 22  * necessary due to a potential bad interactio    
 23  * the restrictions contained in a BSD-style c    
 24  *                                                
 25  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY    
 26  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO,     
 27  * OF MERCHANTABILITY AND FITNESS FOR A PARTIC    
 28  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR B    
 29  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, O    
 30  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT    
 31  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR    
 32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILI    
 33  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIG    
 34  * ARISING IN ANY WAY OUT OF THE USE OF THIS S    
 35  * OF THE POSSIBILITY OF SUCH DAMAGE.             
 36  */                                               
 37                                                   
 38 #include "fp_emu.h"                               
 39 #include "fp_decode.h"                            
 40                                                   
 41 do_no_pc_mode=1                                   
 42                                                   
 43         .globl  fp_fmove_fp2mem                   
 44                                                   
 45 fp_fmove_fp2mem:                                  
 46         clr.b   (2+FPD_FPSR,FPDATA)               
 47         fp_decode_dest_format                     
 48         move.w  %d0,%d1                 | stor    
 49         swap    %d1                     | one     
 50         move.w  %d0,%d1                           
 51 #ifdef FPU_EMU_DEBUG                              
 52         lea     0f,%a0                            
 53         clr.l   %d0                               
 54         move.b  (%a0,%d1.w),%d0                   
 55         printf  PDECODE,"fmove.%c ",1,%d0         
 56         fp_decode_src_reg                         
 57         printf  PDECODE,"fp%d,",1,%d0             
 58                                                   
 59         .data                                     
 60 0:      .byte   'l','s','x','p','w','d','b','p    
 61         .previous                                 
 62 #endif                                            
 63                                                   
 64         | encode addressing mode for dest         
 65         fp_decode_addr_mode                       
 66                                                   
 67         .long   fp_data, fp_ill                   
 68         .long   fp_indirect, fp_postinc           
 69         .long   fp_predecr, fp_disp16             
 70         .long   fp_extmode0, fp_extmode1          
 71                                                   
 72         | addressing mode: data register direc    
 73 fp_data:                                          
 74         fp_mode_data_direct                       
 75         move.w  %d0,%d1                           
 76         fp_decode_src_reg                         
 77         fp_get_fp_reg                             
 78         lea     (FPD_TEMPFP1,FPDATA),%a1          
 79         move.l  (%a0)+,(%a1)+                     
 80         move.l  (%a0)+,(%a1)+                     
 81         move.l  (%a0),(%a1)                       
 82         lea     (-8,%a1),%a0                      
 83         swap    %d1                               
 84         move.l  %d1,%d2                           
 85         printf  PDECODE,"\n"                      
 86         jmp     ([0f:w,%pc,%d1.w*4])              
 87                                                   
 88         .align  4                                 
 89 0:                                                
 90         .long   fp_data_long, fp_data_single      
 91         .long   fp_ill, fp_ill                    
 92         .long   fp_data_word, fp_ill              
 93         .long   fp_data_byte, fp_ill              
 94                                                   
 95 fp_data_byte:                                     
 96         jsr     fp_normalize_ext                  
 97         jsr     fp_conv_ext2byte                  
 98         move.l  %d0,%d1                           
 99         swap    %d2                               
100         move.w  %d2,%d0                           
101         jsr     fp_get_data_reg                   
102         move.b  %d1,%d0                           
103         move.w  %d2,%d1                           
104         jsr     fp_put_data_reg                   
105         jra     fp_final                          
106                                                   
107 fp_data_word:                                     
108         jsr     fp_normalize_ext                  
109         jsr     fp_conv_ext2short                 
110         move.l  %d0,%d1                           
111         swap    %d2                               
112         move.w  %d2,%d0                           
113         jsr     fp_get_data_reg                   
114         move.w  %d1,%d0                           
115         move.l  %d2,%d1                           
116         jsr     fp_put_data_reg                   
117         jra     fp_final                          
118                                                   
119 fp_data_long:                                     
120         jsr     fp_normalize_ext                  
121         jsr     fp_conv_ext2long                  
122         swap    %d2                               
123         move.w  %d2,%d1                           
124         jsr     fp_put_data_reg                   
125         jra     fp_final                          
126                                                   
127 fp_data_single:                                   
128         jsr     fp_normalize_ext                  
129         jsr     fp_conv_ext2single                
130         swap    %d2                               
131         move.w  %d2,%d1                           
132         jsr     fp_put_data_reg                   
133         jra     fp_final                          
134                                                   
135         | addressing mode: address register in    
136 fp_indirect:                                      
137         fp_mode_addr_indirect                     
138         jra     fp_putdest                        
139                                                   
140         | addressing mode: address register in    
141 fp_postinc:                                       
142         fp_mode_addr_indirect_postinc             
143         jra     fp_putdest                        
144                                                   
145         | addressing mode: address register in    
146 fp_predecr:                                       
147         fp_mode_addr_indirect_predec              
148         jra     fp_putdest                        
149                                                   
150         | addressing mode: address register in    
151 fp_disp16:                                        
152         fp_mode_addr_indirect_disp16              
153         jra     fp_putdest                        
154                                                   
155 fp_extmode0:                                      
156         fp_mode_addr_indirect_extmode0            
157         jra     fp_putdest                        
158                                                   
159 fp_extmode1:                                      
160         fp_decode_addr_reg                        
161         jmp     ([0f:w,%pc,%d0*4])                
162                                                   
163         .align  4                                 
164 0:                                                
165         .long   fp_abs_short, fp_abs_long         
166         .long   fp_ill, fp_ill                    
167         .long   fp_ill, fp_ill                    
168         .long   fp_ill, fp_ill                    
169                                                   
170 fp_abs_short:                                     
171         fp_mode_abs_short                         
172         jra     fp_putdest                        
173                                                   
174 fp_abs_long:                                      
175         fp_mode_abs_long                          
176         jra     fp_putdest                        
177                                                   
178 fp_putdest:                                       
179         move.l  %a0,%a1                           
180         fp_decode_src_reg                         
181         move.l  %d1,%d2                 | save    
182         fp_get_fp_reg                             
183         printf  PDECODE,"\n"                      
184         addq.l  #8,%a0                            
185         move.l  (%a0),-(%sp)                      
186         move.l  -(%a0),-(%sp)                     
187         move.l  -(%a0),-(%sp)                     
188         move.l  %sp,%a0                           
189         jsr     fp_normalize_ext                  
190                                                   
191         swap    %d2                               
192         jmp     ([0f:w,%pc,%d2.w*4])              
193                                                   
194         .align  4                                 
195 0:                                                
196         .long   fp_format_long, fp_format_sing    
197         .long   fp_format_extended, fp_format_    
198         .long   fp_format_word, fp_format_doub    
199         .long   fp_format_byte, fp_format_pack    
200                                                   
201 fp_format_long:                                   
202         jsr     fp_conv_ext2long                  
203         putuser.l %d0,(%a1),fp_err_ua1,%a1        
204         jra     fp_finish_move                    
205                                                   
206 fp_format_single:                                 
207         jsr     fp_conv_ext2single                
208         putuser.l %d0,(%a1),fp_err_ua1,%a1        
209         jra     fp_finish_move                    
210                                                   
211 fp_format_extended:                               
212         move.l  (%a0)+,%d0                        
213         lsl.w   #1,%d0                            
214         lsl.l   #7,%d0                            
215         lsl.l   #8,%d0                            
216         putuser.l %d0,(%a1)+,fp_err_ua1,%a1       
217         move.l  (%a0)+,%d0                        
218         putuser.l %d0,(%a1)+,fp_err_ua1,%a1       
219         move.l  (%a0),%d0                         
220         putuser.l %d0,(%a1),fp_err_ua1,%a1        
221         jra     fp_finish_move                    
222                                                   
223 fp_format_packed:                                 
224         /* not supported yet */                   
225         lea     (12,%sp),%sp                      
226         jra     fp_ill                            
227                                                   
228 fp_format_word:                                   
229         jsr     fp_conv_ext2short                 
230         putuser.w %d0,(%a1),fp_err_ua1,%a1        
231         jra     fp_finish_move                    
232                                                   
233 fp_format_double:                                 
234         jsr     fp_conv_ext2double                
235         jra     fp_finish_move                    
236                                                   
237 fp_format_byte:                                   
238         jsr     fp_conv_ext2byte                  
239         putuser.b %d0,(%a1),fp_err_ua1,%a1        
240 |       jra     fp_finish_move                    
241                                                   
242 fp_finish_move:                                   
243         lea     (12,%sp),%sp                      
244         jra     fp_final                          
                                                      

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