msvcp90: Added complex<{float, double, long double}> constructors implementation.

This commit is contained in:
Piotr Caban 2013-01-16 14:27:04 +01:00 committed by Alexandre Julliard
parent a8469a458f
commit a51d65da77
3 changed files with 159 additions and 42 deletions

View file

@ -894,3 +894,107 @@ double __cdecl std_Ctraits_double_tan( double x ) { return tan( x ); }
/* ?tan@?$_Ctraits@O@std@@SAOO@Z -> public: static long double __cdecl std::_Ctraits<long double>::tan(long double) */
LDOUBLE __cdecl std_Ctraits_long_double_tan( LDOUBLE x ) { return tan( x ); }
/* ??0?$_Complex_base@MU_C_float_complex@@@std@@QAE@ABM0@Z */
/* ??0?$_Complex_base@MU_C_float_complex@@@std@@QEAA@AEBM0@Z */
/* ??0?$complex@M@std@@QAE@ABM0@Z */
/* ??0?$complex@M@std@@QEAA@AEBM0@Z */
DEFINE_THISCALL_WRAPPER(complex_float_ctor, 12)
complex_float* __thiscall complex_float_ctor(complex_float *this, const float *real, const float *imag)
{
this->real = *real;
this->imag = *imag;
return this;
}
/* ??0?$complex@M@std@@QAE@ABU_C_float_complex@@@Z */
/* ??0?$complex@M@std@@QEAA@AEBU_C_float_complex@@@Z */
DEFINE_THISCALL_WRAPPER(complex_float_ctor_float, 8)
complex_float* __thiscall complex_float_ctor_float(complex_float *this, const complex_float *c)
{
this->real = c->real;
this->imag = c->imag;
return this;
}
/* ??0?$complex@M@std@@QAE@ABU_C_double_complex@@@Z */
/* ??0?$complex@M@std@@QEAA@AEBU_C_double_complex@@@Z */
/* ??0?$complex@M@std@@QAE@ABU_C_ldouble_complex@@@Z */
/* ??0?$complex@M@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
/* ??0?$complex@M@std@@QAE@ABV?$complex@N@1@@Z */
/* ??0?$complex@M@std@@QEAA@AEBV?$complex@N@1@@Z */
/* ??0?$complex@M@std@@QAE@ABV?$complex@O@1@@Z */
/* ??0?$complex@M@std@@QEAA@AEBV?$complex@O@1@@Z */
DEFINE_THISCALL_WRAPPER(complex_float_ctor_double, 8)
complex_float* __thiscall complex_float_ctor_double(complex_float *this, const complex_double *c)
{
this->real = c->real;
this->imag = c->imag;
return this;
}
/* ??_F?$complex@M@std@@QAEXXZ */
/* ??_F?$complex@M@std@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(complex_float_ctor_def, 4)
complex_float* __thiscall complex_float_ctor_def(complex_float *this)
{
this->real = this->imag = 0;
return this;
}
/* ??0?$_Complex_base@NU_C_double_complex@@@std@@QAE@ABN0@Z */
/* ??0?$_Complex_base@NU_C_double_complex@@@std@@QEAA@AEBN0@Z */
/* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QAE@ABO0@Z */
/* ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAA@AEBO0@Z */
/* ??0?$complex@N@std@@QAE@ABN0@Z */
/* ??0?$complex@N@std@@QEAA@AEBN0@Z */
/* ??0?$complex@O@std@@QAE@ABO0@Z */
/* ??0?$complex@O@std@@QEAA@AEBO0@Z */
DEFINE_THISCALL_WRAPPER(complex_double_ctor, 12)
complex_double* __thiscall complex_double_ctor(complex_double *this, const double *real, const double *imag)
{
this->real = *real;
this->imag = *imag;
return this;
}
/* ??0?$complex@N@std@@QAE@ABU_C_double_complex@@@Z */
/* ??0?$complex@N@std@@QEAA@AEBU_C_double_complex@@@Z */
/* ??0?$complex@N@std@@QAE@ABU_C_ldouble_complex@@@Z */
/* ??0?$complex@N@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
/* ??0?$complex@N@std@@QAE@ABV?$complex@O@1@@Z */
/* ??0?$complex@N@std@@QEAA@AEBV?$complex@O@1@@Z */
/* ??0?$complex@O@std@@QAE@ABU_C_ldouble_complex@@@Z */
/* ??0?$complex@O@std@@QEAA@AEBU_C_ldouble_complex@@@Z */
/* ??0?$complex@O@std@@QAE@ABV?$complex@N@1@@Z */
/* ??0?$complex@O@std@@QEAA@AEBV?$complex@N@1@@Z */
DEFINE_THISCALL_WRAPPER(complex_double_ctor_double, 8)
complex_double* __thiscall complex_double_ctor_double(complex_double *this, const complex_double *c)
{
this->real = c->real;
this->imag = c->imag;
return this;
}
/* ??0?$complex@N@std@@QAE@ABV?$complex@M@1@@Z */
/* ??0?$complex@N@std@@QEAA@AEBV?$complex@M@1@@Z */
/* ??0?$complex@O@std@@QAE@ABV?$complex@M@1@@Z */
/* ??0?$complex@O@std@@QEAA@AEBV?$complex@M@1@@Z */
DEFINE_THISCALL_WRAPPER(complex_double_ctor_float, 8)
complex_double* __thiscall complex_double_ctor_float(complex_double *this, const complex_float *c)
{
this->real = c->real;
this->imag = c->imag;
return this;
}
/* ??_F?$complex@N@std@@QAEXXZ */
/* ??_F?$complex@N@std@@QEAAXXZ */
/* ??_F?$complex@O@std@@QAEXXZ */
/* ??_F?$complex@O@std@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(complex_double_ctor_def, 4)
complex_double* __thiscall complex_double_ctor_def(complex_double *this)
{
this->real = this->imag = 0;
return this;
}

View file

@ -467,3 +467,16 @@ void init_exception(void*);
void init_locale(void*);
void init_io(void*);
void free_io(void);
/* class complex<float> */
typedef struct {
float real;
float imag;
} complex_float;
/* class complex<double> */
/* class complex<long double> */
typedef struct {
double real;
double imag;
} complex_double;

View file

@ -494,12 +494,12 @@
@ stub -arch=win64 ??$tanh@N@std@@YA?AV?$complex@N@0@AEBV10@@Z
@ stub -arch=win32 ??$tanh@O@std@@YA?AV?$complex@O@0@ABV10@@Z
@ stub -arch=win64 ??$tanh@O@std@@YA?AV?$complex@O@0@AEBV10@@Z
@ stub -arch=win32 ??0?$_Complex_base@MU_C_float_complex@@@std@@QAE@ABM0@Z
@ stub -arch=win64 ??0?$_Complex_base@MU_C_float_complex@@@std@@QEAA@AEBM0@Z
@ stub -arch=win32 ??0?$_Complex_base@NU_C_double_complex@@@std@@QAE@ABN0@Z
@ stub -arch=win64 ??0?$_Complex_base@NU_C_double_complex@@@std@@QEAA@AEBN0@Z
@ stub -arch=win32 ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QAE@ABO0@Z
@ stub -arch=win64 ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAA@AEBO0@Z
@ thiscall -arch=win32 ??0?$_Complex_base@MU_C_float_complex@@@std@@QAE@ABM0@Z(ptr ptr ptr) complex_float_ctor
@ cdecl -arch=win64 ??0?$_Complex_base@MU_C_float_complex@@@std@@QEAA@AEBM0@Z(ptr ptr ptr) complex_float_ctor
@ thiscall -arch=win32 ??0?$_Complex_base@NU_C_double_complex@@@std@@QAE@ABN0@Z(ptr ptr ptr) complex_double_ctor
@ cdecl -arch=win64 ??0?$_Complex_base@NU_C_double_complex@@@std@@QEAA@AEBN0@Z(ptr ptr ptr) complex_double_ctor
@ thiscall -arch=win32 ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QAE@ABO0@Z(ptr ptr ptr) complex_double_ctor
@ cdecl -arch=win64 ??0?$_Complex_base@OU_C_ldouble_complex@@@std@@QEAA@AEBO0@Z(ptr ptr ptr) complex_double_ctor
@ stub -arch=win32 ??0?$_Mpunct@D@std@@IAE@PBDI_N1@Z
@ stub -arch=win64 ??0?$_Mpunct@D@std@@IEAA@PEBD_K_N2@Z
@ stub -arch=win32 ??0?$_Mpunct@D@std@@QAE@ABV_Locinfo@1@I_N1@Z
@ -866,36 +866,36 @@
@ cdecl -arch=win64 ??0?$collate@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z(ptr ptr long) collate_wchar_ctor_locinfo
@ thiscall -arch=win32 ??0?$collate@_W@std@@QAE@I@Z(ptr long) collate_wchar_ctor_refs
@ cdecl -arch=win64 ??0?$collate@_W@std@@QEAA@_K@Z(ptr long) collate_wchar_ctor_refs
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABM0@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBM0@Z
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_double_complex@@@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_double_complex@@@Z
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_float_complex@@@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_float_complex@@@Z
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_ldouble_complex@@@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_ldouble_complex@@@Z
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABV?$complex@N@1@@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBV?$complex@N@1@@Z
@ stub -arch=win32 ??0?$complex@M@std@@QAE@ABV?$complex@O@1@@Z
@ stub -arch=win64 ??0?$complex@M@std@@QEAA@AEBV?$complex@O@1@@Z
@ stub -arch=win32 ??0?$complex@N@std@@QAE@ABN0@Z
@ stub -arch=win64 ??0?$complex@N@std@@QEAA@AEBN0@Z
@ stub -arch=win32 ??0?$complex@N@std@@QAE@ABU_C_double_complex@@@Z
@ stub -arch=win64 ??0?$complex@N@std@@QEAA@AEBU_C_double_complex@@@Z
@ stub -arch=win32 ??0?$complex@N@std@@QAE@ABU_C_ldouble_complex@@@Z
@ stub -arch=win64 ??0?$complex@N@std@@QEAA@AEBU_C_ldouble_complex@@@Z
@ stub -arch=win32 ??0?$complex@N@std@@QAE@ABV?$complex@M@1@@Z
@ stub -arch=win64 ??0?$complex@N@std@@QEAA@AEBV?$complex@M@1@@Z
@ stub -arch=win32 ??0?$complex@N@std@@QAE@ABV?$complex@O@1@@Z
@ stub -arch=win64 ??0?$complex@N@std@@QEAA@AEBV?$complex@O@1@@Z
@ stub -arch=win32 ??0?$complex@O@std@@QAE@ABO0@Z
@ stub -arch=win64 ??0?$complex@O@std@@QEAA@AEBO0@Z
@ stub -arch=win32 ??0?$complex@O@std@@QAE@ABU_C_ldouble_complex@@@Z
@ stub -arch=win64 ??0?$complex@O@std@@QEAA@AEBU_C_ldouble_complex@@@Z
@ stub -arch=win32 ??0?$complex@O@std@@QAE@ABV?$complex@M@1@@Z
@ stub -arch=win64 ??0?$complex@O@std@@QEAA@AEBV?$complex@M@1@@Z
@ stub -arch=win32 ??0?$complex@O@std@@QAE@ABV?$complex@N@1@@Z
@ stub -arch=win64 ??0?$complex@O@std@@QEAA@AEBV?$complex@N@1@@Z
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABM0@Z(ptr ptr ptr) complex_float_ctor
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBM0@Z(ptr ptr ptr) complex_float_ctor
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_double_complex@@@Z(ptr ptr) complex_float_ctor_double
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_double_complex@@@Z(ptr ptr) complex_float_ctor_double
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_float_complex@@@Z(ptr ptr) complex_float_ctor_float
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_float_complex@@@Z(ptr ptr) complex_float_ctor_float
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABU_C_ldouble_complex@@@Z(ptr ptr) complex_float_ctor_double
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBU_C_ldouble_complex@@@Z(ptr ptr) complex_float_ctor_double
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABV?$complex@N@1@@Z(ptr ptr) complex_float_ctor_double
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBV?$complex@N@1@@Z(ptr ptr) complex_float_ctor_double
@ thiscall -arch=win32 ??0?$complex@M@std@@QAE@ABV?$complex@O@1@@Z(ptr ptr) complex_float_ctor_double
@ cdecl -arch=win64 ??0?$complex@M@std@@QEAA@AEBV?$complex@O@1@@Z(ptr ptr) complex_float_ctor_double
@ thiscall -arch=win32 ??0?$complex@N@std@@QAE@ABN0@Z(ptr ptr ptr) complex_double_ctor
@ cdecl -arch=win64 ??0?$complex@N@std@@QEAA@AEBN0@Z(ptr ptr ptr) complex_double_ctor
@ thiscall -arch=win32 ??0?$complex@N@std@@QAE@ABU_C_double_complex@@@Z(ptr ptr) complex_double_ctor_double
@ cdecl -arch=win64 ??0?$complex@N@std@@QEAA@AEBU_C_double_complex@@@Z(ptr ptr) complex_double_ctor_double
@ thiscall -arch=win32 ??0?$complex@N@std@@QAE@ABU_C_ldouble_complex@@@Z(ptr ptr) complex_double_ctor_double
@ cdecl -arch=win64 ??0?$complex@N@std@@QEAA@AEBU_C_ldouble_complex@@@Z(ptr ptr) complex_double_ctor_double
@ thiscall -arch=win32 ??0?$complex@N@std@@QAE@ABV?$complex@M@1@@Z(ptr ptr) complex_double_ctor_float
@ cdecl -arch=win64 ??0?$complex@N@std@@QEAA@AEBV?$complex@M@1@@Z(ptr ptr) complex_double_ctor_float
@ thiscall -arch=win32 ??0?$complex@N@std@@QAE@ABV?$complex@O@1@@Z(ptr ptr) complex_double_ctor_double
@ cdecl -arch=win64 ??0?$complex@N@std@@QEAA@AEBV?$complex@O@1@@Z(ptr ptr) complex_double_ctor_double
@ thiscall -arch=win32 ??0?$complex@O@std@@QAE@ABO0@Z(ptr ptr ptr) complex_double_ctor
@ cdecl -arch=win64 ??0?$complex@O@std@@QEAA@AEBO0@Z(ptr ptr ptr) complex_double_ctor
@ thiscall -arch=win32 ??0?$complex@O@std@@QAE@ABU_C_ldouble_complex@@@Z(ptr ptr) complex_double_ctor_double
@ cdecl -arch=win64 ??0?$complex@O@std@@QEAA@AEBU_C_ldouble_complex@@@Z(ptr ptr) complex_double_ctor_double
@ thiscall -arch=win32 ??0?$complex@O@std@@QAE@ABV?$complex@M@1@@Z(ptr ptr) complex_double_ctor_float
@ cdecl -arch=win64 ??0?$complex@O@std@@QEAA@AEBV?$complex@M@1@@Z(ptr ptr) complex_double_ctor_float
@ thiscall -arch=win32 ??0?$complex@O@std@@QAE@ABV?$complex@N@1@@Z(ptr ptr) complex_double_ctor_double
@ cdecl -arch=win64 ??0?$complex@O@std@@QEAA@AEBV?$complex@N@1@@Z(ptr ptr) complex_double_ctor_double
@ thiscall -arch=win32 ??0?$ctype@D@std@@QAE@ABV_Locinfo@1@I@Z(ptr ptr long) ctype_char_ctor_locinfo
@ cdecl -arch=win64 ??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z(ptr ptr long) ctype_char_ctor_locinfo
@ thiscall -arch=win32 ??0?$ctype@D@std@@QAE@PBF_NI@Z(ptr ptr long long) ctype_char_ctor_table
@ -2003,12 +2003,12 @@
@ cdecl -arch=win64 ??_F?$collate@G@std@@QEAAXXZ(ptr) collate_short_ctor
@ thiscall -arch=win32 ??_F?$collate@_W@std@@QAEXXZ(ptr) collate_wchar_ctor
@ cdecl -arch=win64 ??_F?$collate@_W@std@@QEAAXXZ(ptr) collate_wchar_ctor
@ stub -arch=win32 ??_F?$complex@M@std@@QAEXXZ
@ stub -arch=win64 ??_F?$complex@M@std@@QEAAXXZ
@ stub -arch=win32 ??_F?$complex@N@std@@QAEXXZ
@ stub -arch=win64 ??_F?$complex@N@std@@QEAAXXZ
@ stub -arch=win32 ??_F?$complex@O@std@@QAEXXZ
@ stub -arch=win64 ??_F?$complex@O@std@@QEAAXXZ
@ thiscall -arch=win32 ??_F?$complex@M@std@@QAEXXZ(ptr) complex_float_ctor_def
@ cdecl -arch=win64 ??_F?$complex@M@std@@QEAAXXZ(ptr) complex_float_ctor_def
@ thiscall -arch=win32 ??_F?$complex@N@std@@QAEXXZ(ptr) complex_double_ctor_def
@ cdecl -arch=win64 ??_F?$complex@N@std@@QEAAXXZ(ptr) complex_double_ctor_def
@ thiscall -arch=win32 ??_F?$complex@O@std@@QAEXXZ(ptr) complex_double_ctor_def
@ cdecl -arch=win64 ??_F?$complex@O@std@@QEAAXXZ(ptr) complex_double_ctor_def
@ thiscall -arch=win32 ??_F?$ctype@D@std@@QAEXXZ(ptr) ctype_char_ctor
@ cdecl -arch=win64 ??_F?$ctype@D@std@@QEAAXXZ(ptr) ctype_char_ctor
@ thiscall -arch=win32 ??_F?$ctype@G@std@@QAEXXZ(ptr) ctype_short_ctor