cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

div_small.S (1621B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2	.file	"div_small.S"
      3/*---------------------------------------------------------------------------+
      4 |  div_small.S                                                              |
      5 |                                                                           |
      6 | Divide a 64 bit integer by a 32 bit integer & return remainder.           |
      7 |                                                                           |
      8 | Copyright (C) 1992,1995                                                   |
      9 |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
     10 |                       Australia.  E-mail billm@jacobi.maths.monash.edu.au |
     11 |                                                                           |
     12 |                                                                           |
     13 +---------------------------------------------------------------------------*/
     14
     15/*---------------------------------------------------------------------------+
     16 |    unsigned long FPU_div_small(unsigned long long *x, unsigned long y)    |
     17 +---------------------------------------------------------------------------*/
     18
     19#include "fpu_emu.h"
     20
     21.text
     22SYM_FUNC_START(FPU_div_small)
     23	pushl	%ebp
     24	movl	%esp,%ebp
     25
     26	pushl	%esi
     27
     28	movl	PARAM1,%esi	/* pointer to num */
     29	movl	PARAM2,%ecx	/* The denominator */
     30
     31	movl	4(%esi),%eax	/* Get the current num msw */
     32	xorl	%edx,%edx
     33	divl	%ecx
     34
     35	movl	%eax,4(%esi)
     36
     37	movl	(%esi),%eax	/* Get the num lsw */
     38	divl	%ecx
     39
     40	movl	%eax,(%esi)
     41
     42	movl	%edx,%eax	/* Return the remainder in eax */
     43
     44	popl	%esi
     45
     46	leave
     47	RET
     48SYM_FUNC_END(FPU_div_small)