This is the mail archive of the
libstdc++@sources.redhat.com
mailing list for the libstdc++ project.
Re: long long performance
Benjamin,
I've attached the source and assembly code. You'll probably need to
adjust the LOOP_MAX constant for your system.
I compiled with the following:
c++ -o test testIntVsFloat.cpp
As i mentioned previously, i'm running on a P3/600 redhat 6.2 using
egcs-20000612.tgz. The performance for the "long long" multiply and the
static_cast<long long> is terrible.
You'll need to manually subtract the baseline from each timing if you
want the most accurate result (its obvious where the problems are
without doing this though). Also to improve accuracy, you may want to
subtract out the "equal" time from the mulitply and static_cast
operations. Again, not really necessary to see the problem.
Let me know if you need anything else.
-Rob
Benjamin Kosnik wrote:
>
> can you please post your testsuite, and generated assembly (use -S) to
> this list please?
>
> I haven't really benchmarked this stuff.
>
> thanks,
> benjamin
--
Rob Willis
rob@e-critical.com
#include <iostream>
#include <sys/time.h>
class TimeStamp
{
public:
TimeStamp( unsigned long sec = 0, unsigned long usec = 0 )
: _sec(sec), _usec(usec) {}
static const TimeStamp getCurrentTime();
TimeStamp & operator-= (const TimeStamp & rts );
friend TimeStamp operator-(const TimeStamp & ltv, const TimeStamp & rts);
friend std::ostream & operator<< ( std::ostream & os, const TimeStamp & ts );
private:
unsigned long _sec;
unsigned long _usec;
};
const TimeStamp TimeStamp::getCurrentTime()
{
struct timeval tv;
gettimeofday( &tv, NULL );
return TimeStamp( tv.tv_sec, tv.tv_usec );
}
TimeStamp & TimeStamp::operator-= (const TimeStamp & rts )
{
_sec -= rts._sec;
if ( _usec >= rts._usec )
{
_usec -= rts._usec;
}
else
{
_sec--;
_usec = 1000000 - ( rts._usec - _usec );
}
return *this;
}
TimeStamp operator-(const TimeStamp & lts, const TimeStamp & rts)
{
TimeStamp tmp( lts );
tmp -= rts;
return tmp;
}
std::ostream & operator<< ( std::ostream & os, const TimeStamp & ts )
{
os << ts._sec;
os << " / ";
os << ts._usec;
os << " ";
return os;
}
#define LOOP_MAX 10000000
int main()
{
std::cout << "=========== long long perf test ====" << std::endl;
{
TimeStamp start = TimeStamp::getCurrentTime();
for( int i = 0; i < LOOP_MAX; ++i )
{
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "baseline: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long long value = 0;
long long test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long long eq: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
double value = 0;
double test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "double eq: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long value = 0;
long test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
value = test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long eq: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long long value = 0;
long long test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long long mult: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
double value = 0;
double test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "double mult: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long value = 0;
long test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
value = test*test;
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long mult: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long long value = 0;
double test = 5236.0;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
value = static_cast<long long>(test);
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long long cast: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
long value = 0;
double test = 5236.0;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
value = static_cast<long >(test);
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "long cast: " << diff << std::endl;
}
{
TimeStamp start = TimeStamp::getCurrentTime();
double value = 0;
long long test = 5236;
for( int i = 0; i < LOOP_MAX; ++i )
{
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
value = static_cast<double>(test);
}
TimeStamp stop = TimeStamp::getCurrentTime();
TimeStamp diff = stop-start;
std::cout << "double cast: " << diff << std::endl;
}
std::cout << "=========== test done ====" << std::endl;
}
.file "testIntVsFloat.cpp"
.version "01.01"
gcc2_compiled.:
.text
.align 16
.globl getCurrentTime__9TimeStamp
.type getCurrentTime__9TimeStamp,@function
getCurrentTime__9TimeStamp:
.LFB1:
pushl %ebp
.LCFI0:
movl %esp, %ebp
.LCFI1:
subl $8, %esp
.LCFI2:
subl $8, %esp
pushl $0
leal -8(%ebp), %eax
pushl %eax
.LCFI3:
call gettimeofday
addl $16, %esp
subl $4, %esp
pushl -4(%ebp)
pushl -8(%ebp)
pushl 8(%ebp)
call __9TimeStampUlUl
addl $16, %esp
movl 8(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret $4
.LFE1:
.Lfe1:
.size getCurrentTime__9TimeStamp,.Lfe1-getCurrentTime__9TimeStamp
.align 16
.globl __ami__9TimeStampRC9TimeStamp
.type __ami__9TimeStampRC9TimeStamp,@function
__ami__9TimeStampRC9TimeStamp:
.LFB2:
pushl %ebp
.LCFI4:
movl %esp, %ebp
.LCFI5:
movl 12(%ebp), %eax
movl (%eax), %eax
movl 8(%ebp), %edx
subl %eax, (%edx)
movl 12(%ebp), %edx
movl 8(%ebp), %ecx
movl 4(%ecx), %eax
cmpl 4(%edx), %eax
jb .L5
movl 12(%ebp), %eax
movl 4(%eax), %eax
movl 8(%ebp), %edx
subl %eax, 4(%edx)
jmp .L6
.p2align 4,,7
.L5:
movl 8(%ebp), %ecx
decl (%ecx)
movl 12(%ebp), %eax
movl 8(%ebp), %ecx
movl 4(%ecx), %edx
movl 4(%eax), %eax
subl %edx, %eax
movl %eax, %edx
movl $1000000, %eax
subl %edx, %eax
movl 8(%ebp), %edx
movl %eax, 4(%edx)
.L6:
movl 8(%ebp), %eax
popl %ebp
ret
.LFE2:
.Lfe2:
.size __ami__9TimeStampRC9TimeStamp,.Lfe2-__ami__9TimeStampRC9TimeStamp
.align 16
.globl __mi__FRC9TimeStampT0
.type __mi__FRC9TimeStampT0,@function
__mi__FRC9TimeStampT0:
.LFB3:
pushl %ebp
.LCFI6:
movl %esp, %ebp
.LCFI7:
subl $8, %esp
.LCFI8:
movl 12(%ebp), %eax
movl 4(%eax), %edx
movl (%eax), %eax
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
leal -8(%ebp), %eax
subl $8, %esp
pushl 16(%ebp)
leal -8(%ebp), %eax
pushl %eax
.LCFI9:
call __ami__9TimeStampRC9TimeStamp
addl $16, %esp
movl -8(%ebp), %eax
movl -4(%ebp), %edx
movl 8(%ebp), %ecx
movl %eax, (%ecx)
movl %edx, 4(%ecx)
movl 8(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret $4
.LFE3:
.Lfe3:
.size __mi__FRC9TimeStampT0,.Lfe3-__mi__FRC9TimeStampT0
.section .rodata
.LC0:
.string " / "
.LC1:
.string " "
.text
.align 16
.globl __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
.type __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp,@function
__ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp:
.LFB4:
pushl %ebp
.LCFI10:
movl %esp, %ebp
.LCFI11:
subl $8, %esp
.LCFI12:
subl $8, %esp
movl 12(%ebp), %eax
pushl (%eax)
pushl 8(%ebp)
.LCFI13:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcUl
addl $16, %esp
subl $8, %esp
pushl $.LC0
pushl 8(%ebp)
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $16, %esp
subl $8, %esp
movl 12(%ebp), %eax
pushl 4(%eax)
pushl 8(%ebp)
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcUl
addl $16, %esp
subl $8, %esp
pushl $.LC1
pushl 8(%ebp)
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $16, %esp
movl 8(%ebp), %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret
.LFE4:
.Lfe4:
.size __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp,.Lfe4-__ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
.section .rodata
.align 32
.LC2:
.string "=========== long long perf test ===="
.LC3:
.string "baseline: "
.LC4:
.string "long long eq: "
.LC5:
.string "double eq: "
.LC6:
.string "long eq: "
.LC7:
.string "long long mult: "
.LC8:
.string "double mult: "
.LC9:
.string "long mult: "
.LC10:
.string "long long cast: "
.LC11:
.string "long cast: "
.LC12:
.string "double cast: "
.LC13:
.string "=========== test done ===="
.text
.align 16
.globl main
.type main,@function
main:
.LFB5:
pushl %ebp
.LCFI14:
movl %esp, %ebp
.LCFI15:
subl $344, %esp
.LCFI16:
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
pushl $.LC2
pushl $_3std.cout
.LCFI17:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -96(%ebp)
pushl -96(%ebp)
.LCFI18:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -8(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -8(%ebp), %eax
movl -4(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl $0, -12(%ebp)
.p2align 4
.L13:
cmpl $9999999, -12(%ebp)
jle .L15
jmp .L14
.p2align 4,,7
.L15:
leal -12(%ebp), %eax
incl (%eax)
jmp .L13
.p2align 4,,7
.L14:
leal -24(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -24(%ebp)
movl %edx, -20(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -8(%ebp), %eax
pushl %eax
leal -24(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC3
pushl $_3std.cout
.LCFI19:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -100(%ebp)
pushl -100(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -104(%ebp)
pushl -104(%ebp)
.LCFI20:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -32(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
movl $0, -8(%ebp)
movl $0, -4(%ebp)
movl $5236, -24(%ebp)
movl $0, -20(%ebp)
movl $0, -12(%ebp)
.p2align 4
.L17:
cmpl $9999999, -12(%ebp)
jle .L20
jmp .L18
.p2align 4,,7
.L20:
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
leal -12(%ebp), %eax
incl (%eax)
jmp .L17
.p2align 4,,7
.L18:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -48(%ebp), %edx
subl $4, %esp
leal -32(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -48(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC4
pushl $_3std.cout
.LCFI21:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -108(%ebp)
pushl -108(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -112(%ebp)
pushl -112(%ebp)
.LCFI22:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -56(%ebp)
movl $0, -52(%ebp)
movl $0, -64(%ebp)
movl $1085568000, -60(%ebp)
movl $0, -12(%ebp)
.p2align 4
.L21:
cmpl $9999999, -12(%ebp)
jle .L24
jmp .L22
.p2align 4,,7
.L24:
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, -56(%ebp)
movl %edx, -52(%ebp)
leal -12(%ebp), %eax
incl (%eax)
jmp .L21
.p2align 4,,7
.L22:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC5
pushl $_3std.cout
.LCFI23:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -116(%ebp)
pushl -116(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -120(%ebp)
pushl -120(%ebp)
.LCFI24:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -12(%ebp)
movl $5236, -68(%ebp)
movl $0, -72(%ebp)
.p2align 4
.L25:
cmpl $9999999, -72(%ebp)
jle .L28
jmp .L26
.p2align 4,,7
.L28:
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
movl -68(%ebp), %eax
movl %eax, -12(%ebp)
leal -72(%ebp), %eax
incl (%eax)
jmp .L25
.p2align 4,,7
.L26:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC6
pushl $_3std.cout
.LCFI25:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -124(%ebp)
pushl -124(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -128(%ebp)
pushl -128(%ebp)
.LCFI26:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -40(%ebp)
movl $0, -36(%ebp)
movl $5236, -32(%ebp)
movl $0, -28(%ebp)
movl $0, -72(%ebp)
.p2align 4
.L29:
cmpl $9999999, -72(%ebp)
jle .L32
jmp .L30
.p2align 4,,7
.L32:
movl -32(%ebp), %eax
movl %eax, -140(%ebp)
movl -140(%ebp), %eax
mull -32(%ebp)
movl %eax, -136(%ebp)
movl %edx, -132(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -132(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -132(%ebp)
movl -136(%ebp), %eax
movl -132(%ebp), %edx
movl %eax, -136(%ebp)
movl %edx, -132(%ebp)
movl -136(%ebp), %eax
movl -132(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -156(%ebp)
movl -156(%ebp), %eax
mull -32(%ebp)
movl %eax, -152(%ebp)
movl %edx, -148(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -148(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -148(%ebp)
movl -152(%ebp), %eax
movl -148(%ebp), %edx
movl %eax, -152(%ebp)
movl %edx, -148(%ebp)
movl -152(%ebp), %eax
movl -148(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -172(%ebp)
movl -172(%ebp), %eax
mull -32(%ebp)
movl %eax, -168(%ebp)
movl %edx, -164(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -164(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -164(%ebp)
movl -168(%ebp), %eax
movl -164(%ebp), %edx
movl %eax, -168(%ebp)
movl %edx, -164(%ebp)
movl -168(%ebp), %eax
movl -164(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -188(%ebp)
movl -188(%ebp), %eax
mull -32(%ebp)
movl %eax, -184(%ebp)
movl %edx, -180(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -180(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -180(%ebp)
movl -184(%ebp), %eax
movl -180(%ebp), %edx
movl %eax, -184(%ebp)
movl %edx, -180(%ebp)
movl -184(%ebp), %eax
movl -180(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -204(%ebp)
movl -204(%ebp), %eax
mull -32(%ebp)
movl %eax, -200(%ebp)
movl %edx, -196(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -196(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -196(%ebp)
movl -200(%ebp), %eax
movl -196(%ebp), %edx
movl %eax, -200(%ebp)
movl %edx, -196(%ebp)
movl -200(%ebp), %eax
movl -196(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -220(%ebp)
movl -220(%ebp), %eax
mull -32(%ebp)
movl %eax, -216(%ebp)
movl %edx, -212(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -212(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -212(%ebp)
movl -216(%ebp), %eax
movl -212(%ebp), %edx
movl %eax, -216(%ebp)
movl %edx, -212(%ebp)
movl -216(%ebp), %eax
movl -212(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -236(%ebp)
movl -236(%ebp), %eax
mull -32(%ebp)
movl %eax, -232(%ebp)
movl %edx, -228(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -228(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -228(%ebp)
movl -232(%ebp), %eax
movl -228(%ebp), %edx
movl %eax, -232(%ebp)
movl %edx, -228(%ebp)
movl -232(%ebp), %eax
movl -228(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -252(%ebp)
movl -252(%ebp), %eax
mull -32(%ebp)
movl %eax, -248(%ebp)
movl %edx, -244(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -244(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -244(%ebp)
movl -248(%ebp), %eax
movl -244(%ebp), %edx
movl %eax, -248(%ebp)
movl %edx, -244(%ebp)
movl -248(%ebp), %eax
movl -244(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -268(%ebp)
movl -268(%ebp), %eax
mull -32(%ebp)
movl %eax, -264(%ebp)
movl %edx, -260(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -260(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -260(%ebp)
movl -264(%ebp), %eax
movl -260(%ebp), %edx
movl %eax, -264(%ebp)
movl %edx, -260(%ebp)
movl -264(%ebp), %eax
movl -260(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl -32(%ebp), %edx
movl %edx, -284(%ebp)
movl -284(%ebp), %eax
mull -32(%ebp)
movl %eax, -280(%ebp)
movl %edx, -276(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -276(%ebp)
movl -32(%ebp), %eax
imull -28(%ebp), %eax
addl %eax, -276(%ebp)
movl -280(%ebp), %eax
movl -276(%ebp), %edx
movl %eax, -280(%ebp)
movl %edx, -276(%ebp)
movl -280(%ebp), %eax
movl -276(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -72(%ebp), %eax
incl (%eax)
jmp .L29
.p2align 4,,7
.L30:
leal -8(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -8(%ebp), %eax
movl -4(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
leal -24(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -8(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -24(%ebp), %eax
movl -20(%ebp), %edx
movl %eax, -24(%ebp)
movl %edx, -20(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -24(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC7
pushl $_3std.cout
.LCFI27:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -288(%ebp)
pushl -288(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -292(%ebp)
pushl -292(%ebp)
.LCFI28:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -64(%ebp)
movl $0, -60(%ebp)
movl $0, -56(%ebp)
movl $1085568000, -52(%ebp)
movl $0, -72(%ebp)
.p2align 4
.L33:
cmpl $9999999, -72(%ebp)
jle .L36
jmp .L34
.p2align 4,,7
.L36:
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
fldl -56(%ebp)
fmull -56(%ebp)
fstpl -64(%ebp)
leal -72(%ebp), %eax
incl (%eax)
jmp .L33
.p2align 4,,7
.L34:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC8
pushl $_3std.cout
.LCFI29:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -296(%ebp)
pushl -296(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -300(%ebp)
pushl -300(%ebp)
.LCFI30:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -72(%ebp)
movl $5236, -68(%ebp)
movl $0, -12(%ebp)
.p2align 4
.L37:
cmpl $9999999, -12(%ebp)
jle .L40
jmp .L38
.p2align 4,,7
.L40:
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
movl -68(%ebp), %eax
imull -68(%ebp), %eax
movl %eax, -72(%ebp)
leal -12(%ebp), %eax
incl (%eax)
jmp .L37
.p2align 4,,7
.L38:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC9
pushl $_3std.cout
.LCFI31:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -304(%ebp)
pushl -304(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -308(%ebp)
pushl -308(%ebp)
.LCFI32:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -40(%ebp)
movl $0, -36(%ebp)
movl $0, -64(%ebp)
movl $1085568000, -60(%ebp)
movl $0, -72(%ebp)
.p2align 4
.L41:
cmpl $9999999, -72(%ebp)
jle .L44
jmp .L42
.p2align 4,,7
.L44:
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpll -40(%ebp)
fldcw -76(%ebp)
leal -72(%ebp), %eax
incl (%eax)
jmp .L41
.p2align 4,,7
.L42:
leal -32(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
leal -8(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -32(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -8(%ebp), %eax
movl -4(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -8(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC10
pushl $_3std.cout
.LCFI33:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -312(%ebp)
pushl -312(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -316(%ebp)
pushl -316(%ebp)
.LCFI34:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -72(%ebp)
movl $0, -64(%ebp)
movl $1085568000, -60(%ebp)
movl $0, -68(%ebp)
.p2align 4
.L45:
cmpl $9999999, -68(%ebp)
jle .L48
jmp .L46
.p2align 4,,7
.L48:
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %eax
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %eax, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
fldl -64(%ebp)
fnstcw -76(%ebp)
movl -76(%ebp), %edx
movb $12, -75(%ebp)
fldcw -76(%ebp)
movl %edx, -76(%ebp)
fistpl -72(%ebp)
fldcw -76(%ebp)
leal -68(%ebp), %eax
incl (%eax)
jmp .L45
.p2align 4,,7
.L46:
leal -40(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
leal -32(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -40(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC11
pushl $_3std.cout
.LCFI35:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -320(%ebp)
pushl -320(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -324(%ebp)
pushl -324(%ebp)
.LCFI36:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
leal -48(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -48(%ebp), %eax
movl -44(%ebp), %edx
movl %eax, -48(%ebp)
movl %edx, -44(%ebp)
movl $0, -64(%ebp)
movl $0, -60(%ebp)
movl $5236, -40(%ebp)
movl $0, -36(%ebp)
movl $0, -72(%ebp)
.p2align 4
.L49:
cmpl $9999999, -72(%ebp)
jle .L52
jmp .L50
.p2align 4,,7
.L52:
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
fildll -40(%ebp)
fstpl -64(%ebp)
leal -72(%ebp), %eax
incl (%eax)
jmp .L49
.p2align 4,,7
.L50:
leal -32(%ebp), %eax
subl $12, %esp
pushl %eax
call getCurrentTime__9TimeStamp
addl $12, %esp
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, -32(%ebp)
movl %edx, -28(%ebp)
leal -8(%ebp), %edx
subl $4, %esp
leal -48(%ebp), %eax
pushl %eax
leal -32(%ebp), %eax
pushl %eax
pushl %edx
call __mi__FRC9TimeStampT0
addl $12, %esp
movl -8(%ebp), %eax
movl -4(%ebp), %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
leal -8(%ebp), %eax
pushl %eax
subl $12, %esp
pushl $.LC12
pushl $_3std.cout
.LCFI37:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -328(%ebp)
pushl -328(%ebp)
call __ls__FRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcRC9TimeStamp
addl $20, %esp
movl %eax, -332(%ebp)
pushl -332(%ebp)
.LCFI38:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
subl $8, %esp
pushl $endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
subl $12, %esp
pushl $.LC13
pushl $_3std.cout
.LCFI39:
call __ls__H1ZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZcZX01PCc_RQ23stdt13basic_ostream2ZcZX01
addl $20, %esp
movl %eax, -336(%ebp)
pushl -336(%ebp)
.LCFI40:
call __ls__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1ZcPFRQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc_RQ23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
movl $0, %eax
movl %ebp, %esp
popl %ebp
ret
.LFE5:
.Lfe5:
.size main,.Lfe5-main
.section .gnu.linkonce.t.endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,"ax",@progbits
.align 16
.weak endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
.type endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,@function
endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11:
.LFB6:
pushl %ebp
.LCFI41:
movl %esp, %ebp
.LCFI42:
subl $24, %esp
.LCFI43:
subl $12, %esp
subl $12, %esp
pushl $10
movl 8(%ebp), %eax
pushl (%eax)
.LCFI44:
call widen__CQ23stdt9basic_ios2ZcZQ23stdt11char_traits1Zcc
addl $8, %esp
movb %al, -5(%ebp)
movsbl -5(%ebp),%eax
pushl %eax
pushl 8(%ebp)
.LCFI45:
call put__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zcc
addl $20, %esp
movl %eax, -12(%ebp)
pushl -12(%ebp)
.LCFI46:
call flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
addl $16, %esp
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret
.LFE6:
.Lfe6:
.size endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,.Lfe6-endl__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
.section .gnu.linkonce.t.flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,"ax",@progbits
.align 16
.weak flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
.type flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,@function
flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11:
.LFB7:
pushl %ebp
.LCFI47:
movl %esp, %ebp
.LCFI48:
subl $8, %esp
.LCFI49:
subl $12, %esp
pushl 8(%ebp)
.LCFI50:
call flush__Q23stdt13basic_ostream2ZcZQ23stdt11char_traits1Zc
addl $16, %esp
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret
.LFE7:
.Lfe7:
.size flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11,.Lfe7-flush__H2ZcZQ23stdt11char_traits1Zc_3stdRQ23stdt13basic_ostream2ZX01ZX11_RQ23stdt13basic_ostream2ZX01ZX11
.local _3std.__ioinit
.comm _3std.__ioinit,24,4
.text
.align 16
.type __static_initialization_and_destruction_0,@function
__static_initialization_and_destruction_0:
.LFB8:
pushl %ebp
.LCFI51:
movl %esp, %ebp
.LCFI52:
subl $8, %esp
.LCFI53:
cmpl $65535, 12(%ebp)
jne .L59
cmpl $1, 8(%ebp)
jne .L59
subl $12, %esp
pushl $_3std.__ioinit
.LCFI54:
call __Q33std8ios_base4Init
addl $16, %esp
movl %eax, -4(%ebp)
.L59:
cmpl $65535, 12(%ebp)
jne .L61
cmpl $0, 8(%ebp)
jne .L61
subl $8, %esp
pushl $2
pushl $_3std.__ioinit
call _._Q33std8ios_base4Init
addl $16, %esp
.L61:
movl %ebp, %esp
popl %ebp
ret
.LFE8:
.Lfe8:
.size __static_initialization_and_destruction_0,.Lfe8-__static_initialization_and_destruction_0
.section .gnu.linkonce.t.__9TimeStampUlUl,"ax",@progbits
.align 16
.weak __9TimeStampUlUl
.type __9TimeStampUlUl,@function
__9TimeStampUlUl:
.LFB9:
pushl %ebp
.LCFI55:
movl %esp, %ebp
.LCFI56:
movl 12(%ebp), %eax
movl 16(%ebp), %edx
movl 8(%ebp), %ecx
movl %eax, (%ecx)
movl 8(%ebp), %eax
movl %edx, 4(%eax)
movl 8(%ebp), %eax
popl %ebp
ret
.LFE9:
.Lfe9:
.size __9TimeStampUlUl,.Lfe9-__9TimeStampUlUl
.section .rodata
.align 4
.type _3std.__stl_threshold,@object
.size _3std.__stl_threshold,4
_3std.__stl_threshold:
.long 16
.align 4
.type _3std.__stl_chunk_size,@object
.size _3std.__stl_chunk_size,4
_3std.__stl_chunk_size:
.long 7
.text
.align 16
.type _GLOBAL_.I.getCurrentTime__9TimeStamp,@function
_GLOBAL_.I.getCurrentTime__9TimeStamp:
.LFB10:
pushl %ebp
.LCFI57:
movl %esp, %ebp
.LCFI58:
subl $8, %esp
.LCFI59:
subl $8, %esp
pushl $65535
pushl $1
.LCFI60:
call __static_initialization_and_destruction_0
addl $16, %esp
movl %ebp, %esp
popl %ebp
ret
.LFE10:
.Lfe10:
.size _GLOBAL_.I.getCurrentTime__9TimeStamp,.Lfe10-_GLOBAL_.I.getCurrentTime__9TimeStamp
.section .ctors,"aw"
.long _GLOBAL_.I.getCurrentTime__9TimeStamp
.text
.align 16
.type _GLOBAL_.D.getCurrentTime__9TimeStamp,@function
_GLOBAL_.D.getCurrentTime__9TimeStamp:
.LFB11:
pushl %ebp
.LCFI61:
movl %esp, %ebp
.LCFI62:
subl $8, %esp
.LCFI63:
subl $8, %esp
pushl $65535
pushl $0
.LCFI64:
call __static_initialization_and_destruction_0
addl $16, %esp
movl %ebp, %esp
popl %ebp
ret
.LFE11:
.Lfe11:
.size _GLOBAL_.D.getCurrentTime__9TimeStamp,.Lfe11-_GLOBAL_.D.getCurrentTime__9TimeStamp
.section .dtors,"aw"
.long _GLOBAL_.D.getCurrentTime__9TimeStamp
.section .eh_frame,"aw",@progbits
__FRAME_BEGIN__:
.4byte .LLCIE1
.LSCIE1:
.4byte 0x0
.byte 0x1
.byte 0x0
.byte 0x1
.byte 0x7c
.byte 0x8
.byte 0xc
.byte 0x4
.byte 0x4
.byte 0x88
.byte 0x1
.align 4
.LECIE1:
.set .LLCIE1,.LECIE1-.LSCIE1
.4byte .LLFDE1
.LSFDE1:
.4byte .LSFDE1-__FRAME_BEGIN__
.4byte .LFB1
.4byte .LFE1-.LFB1
.byte 0x4
.4byte .LCFI0-.LFB1
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI1-.LCFI0
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI3-.LCFI1
.byte 0x2e
.byte 0x10
.align 4
.LEFDE1:
.set .LLFDE1,.LEFDE1-.LSFDE1
.4byte .LLFDE7
.LSFDE7:
.4byte .LSFDE7-__FRAME_BEGIN__
.4byte .LFB4
.4byte .LFE4-.LFB4
.byte 0x4
.4byte .LCFI10-.LFB4
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI11-.LCFI10
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI13-.LCFI11
.byte 0x2e
.byte 0x10
.align 4
.LEFDE7:
.set .LLFDE7,.LEFDE7-.LSFDE7
.4byte .LLFDE9
.LSFDE9:
.4byte .LSFDE9-__FRAME_BEGIN__
.4byte .LFB5
.4byte .LFE5-.LFB5
.byte 0x4
.4byte .LCFI14-.LFB5
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI15-.LCFI14
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI17-.LCFI15
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI18-.LCFI17
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI19-.LCFI18
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI20-.LCFI19
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI21-.LCFI20
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI22-.LCFI21
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI23-.LCFI22
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI24-.LCFI23
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI25-.LCFI24
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI26-.LCFI25
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI27-.LCFI26
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI28-.LCFI27
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI29-.LCFI28
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI30-.LCFI29
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI31-.LCFI30
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI32-.LCFI31
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI33-.LCFI32
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI34-.LCFI33
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI35-.LCFI34
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI36-.LCFI35
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI37-.LCFI36
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI38-.LCFI37
.byte 0x2e
.byte 0x10
.byte 0x4
.4byte .LCFI39-.LCFI38
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI40-.LCFI39
.byte 0x2e
.byte 0x10
.align 4
.LEFDE9:
.set .LLFDE9,.LEFDE9-.LSFDE9
.4byte .LLFDE11
.LSFDE11:
.4byte .LSFDE11-__FRAME_BEGIN__
.4byte .LFB6
.4byte .LFE6-.LFB6
.byte 0x4
.4byte .LCFI41-.LFB6
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI42-.LCFI41
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI44-.LCFI42
.byte 0x2e
.byte 0x8
.byte 0x4
.4byte .LCFI45-.LCFI44
.byte 0x2e
.byte 0x14
.byte 0x4
.4byte .LCFI46-.LCFI45
.byte 0x2e
.byte 0x10
.align 4
.LEFDE11:
.set .LLFDE11,.LEFDE11-.LSFDE11
.4byte .LLFDE13
.LSFDE13:
.4byte .LSFDE13-__FRAME_BEGIN__
.4byte .LFB7
.4byte .LFE7-.LFB7
.byte 0x4
.4byte .LCFI47-.LFB7
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI48-.LCFI47
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI50-.LCFI48
.byte 0x2e
.byte 0x10
.align 4
.LEFDE13:
.set .LLFDE13,.LEFDE13-.LSFDE13
.4byte .LLFDE15
.LSFDE15:
.4byte .LSFDE15-__FRAME_BEGIN__
.4byte .LFB8
.4byte .LFE8-.LFB8
.byte 0x4
.4byte .LCFI51-.LFB8
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI52-.LCFI51
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI54-.LCFI52
.byte 0x2e
.byte 0x10
.align 4
.LEFDE15:
.set .LLFDE15,.LEFDE15-.LSFDE15
.4byte .LLFDE19
.LSFDE19:
.4byte .LSFDE19-__FRAME_BEGIN__
.4byte .LFB10
.4byte .LFE10-.LFB10
.byte 0x4
.4byte .LCFI57-.LFB10
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI58-.LCFI57
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI60-.LCFI58
.byte 0x2e
.byte 0x10
.align 4
.LEFDE19:
.set .LLFDE19,.LEFDE19-.LSFDE19
.4byte .LLFDE21
.LSFDE21:
.4byte .LSFDE21-__FRAME_BEGIN__
.4byte .LFB11
.4byte .LFE11-.LFB11
.byte 0x4
.4byte .LCFI61-.LFB11
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
.4byte .LCFI62-.LCFI61
.byte 0xd
.byte 0x5
.byte 0x4
.4byte .LCFI64-.LCFI62
.byte 0x2e
.byte 0x10
.align 4
.LEFDE21:
.set .LLFDE21,.LEFDE21-.LSFDE21
.ident "GCC: (GNU) 2.96 20000612 (experimental)"