 1da177e4c3
			
		
	
	
	1da177e4c3
	
	
	
		
			
			Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| 	.file	"div_small.S"
 | |
| /*---------------------------------------------------------------------------+
 | |
|  |  div_small.S                                                              |
 | |
|  |                                                                           |
 | |
|  | Divide a 64 bit integer by a 32 bit integer & return remainder.           |
 | |
|  |                                                                           |
 | |
|  | Copyright (C) 1992,1995                                                   |
 | |
|  |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
 | |
|  |                       Australia.  E-mail billm@jacobi.maths.monash.edu.au |
 | |
|  |                                                                           |
 | |
|  |                                                                           |
 | |
|  +---------------------------------------------------------------------------*/
 | |
| 
 | |
| /*---------------------------------------------------------------------------+
 | |
|  |    unsigned long FPU_div_small(unsigned long long *x, unsigned long y)    |
 | |
|  +---------------------------------------------------------------------------*/
 | |
| 
 | |
| #include "fpu_emu.h"
 | |
| 
 | |
| .text
 | |
| ENTRY(FPU_div_small)
 | |
| 	pushl	%ebp
 | |
| 	movl	%esp,%ebp
 | |
| 
 | |
| 	pushl	%esi
 | |
| 
 | |
| 	movl	PARAM1,%esi	/* pointer to num */
 | |
| 	movl	PARAM2,%ecx	/* The denominator */
 | |
| 
 | |
| 	movl	4(%esi),%eax	/* Get the current num msw */
 | |
| 	xorl	%edx,%edx
 | |
| 	divl	%ecx
 | |
| 
 | |
| 	movl	%eax,4(%esi)
 | |
| 
 | |
| 	movl	(%esi),%eax	/* Get the num lsw */
 | |
| 	divl	%ecx
 | |
| 
 | |
| 	movl	%eax,(%esi)
 | |
| 
 | |
| 	movl	%edx,%eax	/* Return the remainder in eax */
 | |
| 
 | |
| 	popl	%esi
 | |
| 
 | |
| 	leave
 | |
| 	ret
 | |
| 
 |