added native double round(double) function

This commit is contained in:
Alexander 2019-06-03 21:59:48 +07:00 committed by drfrag
parent 075269c031
commit 3e3097fe71
6 changed files with 10 additions and 0 deletions

View file

@ -361,6 +361,7 @@ xx(Tan)
xx(CosH)
xx(SinH)
xx(TanH)
xx(Round)
xx(ATan2)
xx(VectorAngle)
xx(New)

View file

@ -88,6 +88,8 @@ static const FLOP FxFlops[] =
{ NAME_CosH, FLOP_COSH, [](double v) { return g_cosh(v); } },
{ NAME_SinH, FLOP_SINH, [](double v) { return g_sinh(v); } },
{ NAME_TanH, FLOP_TANH, [](double v) { return g_tanh(v); } },
{ NAME_Round, FLOP_ROUND, [](double v) { return round(v); } },
};

View file

@ -181,6 +181,8 @@ static const char *const FlopNames[] =
"cosh",
"sinh",
"tanh",
"round",
};
static int print_reg(FILE *out, int col, int arg, int mode, int immshift, const VMScriptFunction *func);

View file

@ -985,6 +985,7 @@ void JitCompiler::EmitFLOP()
case FLOP_COSH: func = g_cosh; break;
case FLOP_SINH: func = g_sinh; break;
case FLOP_TANH: func = g_tanh; break;
case FLOP_ROUND: func = round; break;
}
auto result = newResultXmmSd();

View file

@ -1741,6 +1741,8 @@ static double DoFLOP(int flop, double v)
case FLOP_COSH: return g_cosh(v);
case FLOP_SINH: return g_sinh(v);
case FLOP_TANH: return g_tanh(v);
case FLOP_ROUND: return round(v);
}
assert(0);
return 0;

View file

@ -101,6 +101,8 @@ enum
FLOP_COSH,
FLOP_SINH,
FLOP_TANH,
FLOP_ROUND,
};
// Cast operations