Cross Reference: MathReminderU64x64.S
xref
: /
vbox
/
src
/
VBox
/
Devices
/
EFI
/
Firmware
/
CryptoPkg
/
Library
/
BaseCryptLib
/
SysCall
/
Ia32
/
MathReminderU64x64.S
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
MathReminderU64x64.S revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
756
N/A
#------------------------------------------------------------------------------
756
N/A
#
756
N/A
#
Copyright
(c)
2009
-
2010
,
Intel
Corporation
.
All
rights
reserved
.<
BR
>
756
N/A
#
This
program
and
the
accompanying
materials
756
N/A
#
are
licensed
and
made
available
under
the
terms
and
conditions
of
the
BSD
License
756
N/A
#
which
accompanies
this
distribution
.
The
full
text
of
the
license
may
be
found
at
756
N/A
#
http
:
//
opensource.org
/
licenses
/
bsd-license.php
.
756
N/A
#
6983
N/A
#
THE
PROGRAM
IS
DISTRIBUTED
UNDER
THE
BSD
LICENSE
ON
AN
"AS IS"
BASIS
,
6983
N/A
#
WITHOUT
WARRANTIES
OR
REPRESENTATIONS
OF
ANY
KIND
,
EITHER
EXPRESS
OR
IMPLIED
.
756
N/A
#
756
N/A
#
Module
Name
:
756
N/A
#
756
N/A
#
MathReminderU64x64
.S
6983
N/A
#
6983
N/A
#
Abstract
:
6983
N/A
#
6983
N/A
#
64
-
bit
Math
Worker
Function
.
756
N/A
#
Divides
a
64
-
bit
unsigned
value
by
another
64
-
bit
unsigned
value
and
returns
756
N/A
#
the
64
-
bit
unsigned
remainder
756
N/A
#
756
N/A
#------------------------------------------------------------------------------
756
N/A
3231
N/A
.
686
:
5412
N/A
.
code
:
756
N/A
756
N/A
ASM_GLOBAL
ASM_PFX
(
__umoddi3
),
ASM_PFX
(
DivU64x64Remainder
)
5412
N/A
2086
N/A
#------------------------------------------------------------------------------
756
N/A
#
756
N/A
#
void
__cdecl
__umoddi3
(
void
)
756
N/A
#
756
N/A
#------------------------------------------------------------------------------
5413
N/A
ASM_PFX
(
__umoddi3
):
756
N/A
#
Original
local
stack
when
calling
__umoddi3
756
N/A
# -----------------
756
N/A
# | |
756
N/A
# |---------------|
756
N/A
# | |
756
N/A
# |--
Divisor
--|
756
N/A
# | |
756
N/A
# |---------------|
756
N/A
# | |
756
N/A
# |--
Dividend
--|
756
N/A
# | |
1400
N/A
# |---------------|
1400
N/A
# |
ReturnAddr
** |
868
N/A
#
ESP
---->|---------------|
2086
N/A
#
756
N/A
756
N/A
#
756
N/A
#
Set
up
the
local
stack
for
Reminder
pointer
756
N/A
#
756
N/A
sub
$
8
, %
esp
756
N/A
push
%
esp
756
N/A
756
N/A
#
756
N/A
#
Set
up
the
local
stack
for
Divisor
parameter
756
N/A
#
756
N/A
movl
28
(%
esp
), %
eax
756
N/A
push
%
eax
1400
N/A
movl
28
(%
esp
), %
eax
1400
N/A
push
%
eax
1400
N/A
1400
N/A
#
1400
N/A
#
Set
up
the
local
stack
for
Dividend
parameter
756
N/A
#
756
N/A
movl
28
(%
esp
), %
eax
756
N/A
push
%
eax
756
N/A
movl
28
(%
esp
), %
eax
756
N/A
push
%
eax
756
N/A
756
N/A
#
756
N/A
#
Call
native
DivU64x64Remainder
of
BaseLib
756
N/A
#
756
N/A
jmp
ASM_PFX
(
DivU64x64Remainder
)
756
N/A
756
N/A
#
756
N/A
#
Put
the
Reminder
in
EDX
:
EAX
as
return
value
5412
N/A
#
756
N/A
movl
20
(%
esp
), %
eax
756
N/A
movl
24
(%
esp
), %
edx
756
N/A
5413
N/A
#
756
N/A
#
Adjust
stack
756
N/A
#
756
N/A
add
$
28
, %
esp
756
N/A
756
N/A
ret
$
16
756
N/A