mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 459294 - TM: move soft float builtins next to SoftFloatFilter. r=andreas.
This commit is contained in:
parent
6c4c7256a5
commit
232767cb27
@ -91,17 +91,3 @@ BUILTIN2(STRING, TypeOfBoolean, CONTEXT, INT32,
|
||||
BUILTIN2(DOUBLE, BooleanToNumber, CONTEXT, INT32, 1, 1)
|
||||
BUILTIN2(STRING, ObjectToString, CONTEXT, OBJECT, 0, 0)
|
||||
BUILTIN1(OBJECT, Arguments, CONTEXT, 0, 0)
|
||||
|
||||
// soft float
|
||||
BUILTIN1(DOUBLE, fneg, DOUBLE, 1, 1)
|
||||
BUILTIN1(DOUBLE, i2f, INT32, 1, 1)
|
||||
BUILTIN1(DOUBLE, u2f, UINT32, 1, 1)
|
||||
BUILTIN2(INT32, fcmpeq, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(INT32, fcmplt, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(INT32, fcmple, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(INT32, fcmpgt, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(INT32, fcmpge, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(DOUBLE, fmul, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(DOUBLE, fadd, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(DOUBLE, fdiv, DOUBLE, DOUBLE, 1, 1)
|
||||
BUILTIN2(DOUBLE, fsub, DOUBLE, DOUBLE, 1, 1)
|
||||
|
@ -454,79 +454,6 @@ js_Arguments(JSContext* cx)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* soft float */
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fneg(jsdouble x)
|
||||
{
|
||||
return -x;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_i2f(int32 i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_u2f(jsuint u)
|
||||
{
|
||||
return u;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpeq(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x==y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmplt(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x < y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmple(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x <= y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpgt(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x > y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpge(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x >= y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fmul(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x * y;
|
||||
}
|
||||
jsdouble FASTCALL
|
||||
js_fadd(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x + y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fdiv(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x / y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fsub(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x - y;
|
||||
}
|
||||
|
||||
#define BUILTIN1 JS_DEFINE_CALLINFO_1
|
||||
#define BUILTIN2 JS_DEFINE_CALLINFO_2
|
||||
#define BUILTIN3 JS_DEFINE_CALLINFO_3
|
||||
|
@ -373,6 +373,11 @@ Oracle::clear()
|
||||
_dontDemote.reset();
|
||||
}
|
||||
|
||||
#if defined(NJ_SOFTFLOAT)
|
||||
JS_DECLARE_CALLINFO(i2f)
|
||||
JS_DECLARE_CALLINFO(u2f)
|
||||
#endif
|
||||
|
||||
static bool isi2f(LInsp i)
|
||||
{
|
||||
if (i->isop(LIR_i2f))
|
||||
@ -468,6 +473,92 @@ static bool overflowSafe(LIns* i)
|
||||
}
|
||||
|
||||
#if defined(NJ_SOFTFLOAT)
|
||||
/* soft float */
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fneg(jsdouble x)
|
||||
{
|
||||
return -x;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_i2f(int32 i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_u2f(jsuint u)
|
||||
{
|
||||
return u;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpeq(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x==y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmplt(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x < y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmple(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x <= y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpgt(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x > y;
|
||||
}
|
||||
|
||||
int32 FASTCALL
|
||||
js_fcmpge(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x >= y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fmul(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x * y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fadd(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x + y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fdiv(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x / y;
|
||||
}
|
||||
|
||||
jsdouble FASTCALL
|
||||
js_fsub(jsdouble x, jsdouble y)
|
||||
{
|
||||
return x - y;
|
||||
}
|
||||
|
||||
JS_DEFINE_CALLINFO_1(DOUBLE, fneg, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_1(DOUBLE, i2f, INT32, 1, 1)
|
||||
JS_DEFINE_CALLINFO_1(DOUBLE, u2f, UINT32, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(INT32, fcmpeq, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(INT32, fcmplt, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(INT32, fcmple, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(INT32, fcmpgt, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(INT32, fcmpge, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(DOUBLE, fmul, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(DOUBLE, fadd, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(DOUBLE, fdiv, DOUBLE, DOUBLE, 1, 1)
|
||||
JS_DEFINE_CALLINFO_2(DOUBLE, fsub, DOUBLE, DOUBLE, 1, 1)
|
||||
|
||||
class SoftFloatFilter: public LirWriter
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user