#define SELECTANY extern __declspec(selectany)
#endif
-SELECTANY const GUID JITEEVersionIdentifier = { /* 19258069-1777-4691-87DF-DADF8F352875 */
- 0x19258069,
- 0x1777,
- 0x4691,
- { 0x87, 0xdf, 0xda, 0xdf, 0x8f, 0x35, 0x28, 0x75 }
+SELECTANY const GUID JITEEVersionIdentifier = { /* 6C4EB5E3-7225-4E85-A6D8-D8A8B96939E5 */
+ 0x6c4eb5e3,
+ 0x7225,
+ 0x4e85,
+ { 0xa6, 0xd8, 0xd8, 0xa8, 0xb9, 0x69, 0x39, 0xe5 }
};
{
CORINFO_INTRINSIC_Sin,
CORINFO_INTRINSIC_Cos,
+ CORINFO_INTRINSIC_Cbrt,
CORINFO_INTRINSIC_Sqrt,
CORINFO_INTRINSIC_Abs,
CORINFO_INTRINSIC_Round,
CORINFO_INTRINSIC_Tan,
CORINFO_INTRINSIC_Tanh,
CORINFO_INTRINSIC_Asin,
+ CORINFO_INTRINSIC_Asinh,
CORINFO_INTRINSIC_Acos,
+ CORINFO_INTRINSIC_Acosh,
CORINFO_INTRINSIC_Atan,
CORINFO_INTRINSIC_Atan2,
+ CORINFO_INTRINSIC_Atanh,
CORINFO_INTRINSIC_Log10,
CORINFO_INTRINSIC_Pow,
CORINFO_INTRINSIC_Exp,
case CORINFO_INTRINSIC_Cos:
chars += printf("Cos");
break;
+ case CORINFO_INTRINSIC_Cbrt:
+ chars += printf("Cbrt");
+ break;
case CORINFO_INTRINSIC_Sqrt:
chars += printf("Sqrt");
break;
case CORINFO_INTRINSIC_Asin:
chars += printf("Asin");
break;
+ case CORINFO_INTRINSIC_Asinh:
+ chars += printf("Asinh");
+ break;
case CORINFO_INTRINSIC_Acos:
chars += printf("Acos");
break;
+ case CORINFO_INTRINSIC_Acosh:
+ chars += printf("Acosh");
+ break;
case CORINFO_INTRINSIC_Atan:
chars += printf("Atan");
break;
case CORINFO_INTRINSIC_Atan2:
chars += printf("Atan2");
break;
+ case CORINFO_INTRINSIC_Atanh:
+ chars += printf("Atanh");
+ break;
case CORINFO_INTRINSIC_Log10:
chars += printf("Log10");
break;
case CORINFO_INTRINSIC_Sin:
case CORINFO_INTRINSIC_Cos:
case CORINFO_INTRINSIC_Sqrt:
+ case CORINFO_INTRINSIC_Cbrt:
case CORINFO_INTRINSIC_Cosh:
case CORINFO_INTRINSIC_Sinh:
case CORINFO_INTRINSIC_Tan:
case CORINFO_INTRINSIC_Tanh:
case CORINFO_INTRINSIC_Asin:
+ case CORINFO_INTRINSIC_Asinh:
case CORINFO_INTRINSIC_Acos:
+ case CORINFO_INTRINSIC_Acosh:
case CORINFO_INTRINSIC_Atan:
+ case CORINFO_INTRINSIC_Atanh:
case CORINFO_INTRINSIC_Atan2:
case CORINFO_INTRINSIC_Log10:
case CORINFO_INTRINSIC_Pow:
case CORINFO_INTRINSIC_Cos:
printf(" cos");
break;
+ case CORINFO_INTRINSIC_Cbrt:
+ printf(" cbrt");
+ break;
case CORINFO_INTRINSIC_Sqrt:
printf(" sqrt");
break;
case CORINFO_INTRINSIC_Asin:
printf(" asin");
break;
+ case CORINFO_INTRINSIC_Asinh:
+ printf(" asinh");
+ break;
case CORINFO_INTRINSIC_Acos:
printf(" acos");
break;
+ case CORINFO_INTRINSIC_Acosh:
+ printf(" acosh");
+ break;
case CORINFO_INTRINSIC_Atan:
printf(" atan");
break;
case CORINFO_INTRINSIC_Atan2:
printf(" atan2");
break;
+ case CORINFO_INTRINSIC_Atanh:
+ printf(" atanh");
+ break;
case CORINFO_INTRINSIC_Log10:
printf(" log10");
break;
GenTreePtr op1, op2;
case CORINFO_INTRINSIC_Sin:
+ case CORINFO_INTRINSIC_Cbrt:
case CORINFO_INTRINSIC_Sqrt:
case CORINFO_INTRINSIC_Abs:
case CORINFO_INTRINSIC_Cos:
case CORINFO_INTRINSIC_Tan:
case CORINFO_INTRINSIC_Tanh:
case CORINFO_INTRINSIC_Asin:
+ case CORINFO_INTRINSIC_Asinh:
case CORINFO_INTRINSIC_Acos:
+ case CORINFO_INTRINSIC_Acosh:
case CORINFO_INTRINSIC_Atan:
case CORINFO_INTRINSIC_Atan2:
+ case CORINFO_INTRINSIC_Atanh:
case CORINFO_INTRINSIC_Log10:
case CORINFO_INTRINSIC_Pow:
case CORINFO_INTRINSIC_Exp:
GenTree* op2;
assert(callType != TYP_STRUCT);
- assert((intrinsicID == CORINFO_INTRINSIC_Sin) || (intrinsicID == CORINFO_INTRINSIC_Sqrt) ||
- (intrinsicID == CORINFO_INTRINSIC_Abs) || (intrinsicID == CORINFO_INTRINSIC_Cos) ||
- (intrinsicID == CORINFO_INTRINSIC_Round) || (intrinsicID == CORINFO_INTRINSIC_Cosh) ||
- (intrinsicID == CORINFO_INTRINSIC_Sinh) || (intrinsicID == CORINFO_INTRINSIC_Tan) ||
- (intrinsicID == CORINFO_INTRINSIC_Tanh) || (intrinsicID == CORINFO_INTRINSIC_Asin) ||
- (intrinsicID == CORINFO_INTRINSIC_Acos) || (intrinsicID == CORINFO_INTRINSIC_Atan) ||
- (intrinsicID == CORINFO_INTRINSIC_Atan2) || (intrinsicID == CORINFO_INTRINSIC_Log10) ||
+ assert((intrinsicID == CORINFO_INTRINSIC_Sin) || intrinsicID == CORINFO_INTRINSIC_Cbrt ||
+ (intrinsicID == CORINFO_INTRINSIC_Sqrt) || (intrinsicID == CORINFO_INTRINSIC_Abs) ||
+ (intrinsicID == CORINFO_INTRINSIC_Cos) || (intrinsicID == CORINFO_INTRINSIC_Round) ||
+ (intrinsicID == CORINFO_INTRINSIC_Cosh) || (intrinsicID == CORINFO_INTRINSIC_Sinh) ||
+ (intrinsicID == CORINFO_INTRINSIC_Tan) || (intrinsicID == CORINFO_INTRINSIC_Tanh) ||
+ (intrinsicID == CORINFO_INTRINSIC_Asin) || (intrinsicID == CORINFO_INTRINSIC_Asinh) ||
+ (intrinsicID == CORINFO_INTRINSIC_Acos) || (intrinsicID == CORINFO_INTRINSIC_Acosh) ||
+ (intrinsicID == CORINFO_INTRINSIC_Atan) || (intrinsicID == CORINFO_INTRINSIC_Atan2) ||
+ (intrinsicID == CORINFO_INTRINSIC_Atanh) || (intrinsicID == CORINFO_INTRINSIC_Log10) ||
(intrinsicID == CORINFO_INTRINSIC_Pow) || (intrinsicID == CORINFO_INTRINSIC_Exp) ||
(intrinsicID == CORINFO_INTRINSIC_Ceiling) || (intrinsicID == CORINFO_INTRINSIC_Floor));
switch (intrinsicId)
{
case CORINFO_INTRINSIC_Sin:
+ case CORINFO_INTRINSIC_Cbrt:
case CORINFO_INTRINSIC_Sqrt:
case CORINFO_INTRINSIC_Abs:
case CORINFO_INTRINSIC_Cos:
case CORINFO_INTRINSIC_Tan:
case CORINFO_INTRINSIC_Tanh:
case CORINFO_INTRINSIC_Asin:
+ case CORINFO_INTRINSIC_Asinh:
case CORINFO_INTRINSIC_Acos:
+ case CORINFO_INTRINSIC_Acosh:
case CORINFO_INTRINSIC_Atan:
case CORINFO_INTRINSIC_Atan2:
+ case CORINFO_INTRINSIC_Atanh:
case CORINFO_INTRINSIC_Log10:
case CORINFO_INTRINSIC_Pow:
case CORINFO_INTRINSIC_Exp:
case CORINFO_INTRINSIC_Cos:
vnf = VNF_Cos;
break;
+ case CORINFO_INTRINSIC_Cbrt:
+ vnf = VNF_Cbrt;
+ break;
case CORINFO_INTRINSIC_Sqrt:
vnf = VNF_Sqrt;
break;
case CORINFO_INTRINSIC_Asin:
vnf = VNF_Asin;
break;
+ case CORINFO_INTRINSIC_Asinh:
+ vnf = VNF_Asinh;
+ break;
case CORINFO_INTRINSIC_Acos:
vnf = VNF_Acos;
break;
+ case CORINFO_INTRINSIC_Acosh:
+ vnf = VNF_Acosh;
+ break;
case CORINFO_INTRINSIC_Atan:
vnf = VNF_Atan;
break;
+ case CORINFO_INTRINSIC_Atanh:
+ vnf = VNF_Atanh;
+ break;
case CORINFO_INTRINSIC_Log10:
vnf = VNF_Log10;
break;
ValueNumFuncDef(Sin, 1, false, false, false)
ValueNumFuncDef(Cos, 1, false, false, false)
+ValueNumFuncDef(Cbrt, 1, false, false, false)
ValueNumFuncDef(Sqrt, 1, false, false, false)
ValueNumFuncDef(Abs, 1, false, false, false)
ValueNumFuncDef(RoundDouble, 1, false, false, false)
ValueNumFuncDef(Tan, 1, false, false, false)
ValueNumFuncDef(Tanh, 1, false, false, false)
ValueNumFuncDef(Asin, 1, false, false, false)
+ValueNumFuncDef(Asinh, 1, false, false, false)
ValueNumFuncDef(Acos, 1, false, false, false)
+ValueNumFuncDef(Acosh, 1, false, false, false)
ValueNumFuncDef(Atan, 1, false, false, false)
ValueNumFuncDef(Atan2, 2, false, false, false)
+ValueNumFuncDef(Atanh, 1, false, false, false)
ValueNumFuncDef(Log10, 1, false, false, false)
ValueNumFuncDef(Pow, 2, false, false, false)
ValueNumFuncDef(Exp, 1, false, false, false)
FCIntrinsicSig("Abs", &gsig_SM_Dbl_RetDbl, COMDouble::Abs, CORINFO_INTRINSIC_Abs)
FCIntrinsicSig("Abs", &gsig_SM_Flt_RetFlt, COMSingle::Abs, CORINFO_INTRINSIC_Abs)
FCIntrinsic("Acos", COMDouble::Acos, CORINFO_INTRINSIC_Acos)
- FCFuncElement("Acosh", COMDouble::Acosh)
+ FCIntrinsic("Acosh", COMDouble::Acosh, CORINFO_INTRINSIC_Acosh)
FCIntrinsic("Asin", COMDouble::Asin, CORINFO_INTRINSIC_Asin)
- FCFuncElement("Asinh", COMDouble::Asinh)
+ FCIntrinsic("Asinh", COMDouble::Asinh, CORINFO_INTRINSIC_Asinh)
FCIntrinsic("Atan", COMDouble::Atan, CORINFO_INTRINSIC_Atan)
- FCFuncElement("Atanh", COMDouble::Atanh)
+ FCIntrinsic("Atanh", COMDouble::Atanh, CORINFO_INTRINSIC_Atanh)
FCIntrinsic("Atan2", COMDouble::Atan2, CORINFO_INTRINSIC_Atan2)
- FCFuncElement("Cbrt", COMDouble::Cbrt)
+ FCIntrinsic("Cbrt", COMDouble::Cbrt, CORINFO_INTRINSIC_Cbrt)
FCIntrinsic("Ceiling", COMDouble::Ceil, CORINFO_INTRINSIC_Ceiling)
FCIntrinsic("Cos", COMDouble::Cos, CORINFO_INTRINSIC_Cos)
FCIntrinsic("Cosh", COMDouble::Cosh, CORINFO_INTRINSIC_Cosh)
FCFuncStart(gMathFFuncs)
FCIntrinsic("Acos", COMSingle::Acos, CORINFO_INTRINSIC_Acos)
- FCFuncElement("Acosh", COMSingle::Acosh)
+ FCIntrinsic("Acosh", COMSingle::Acosh, CORINFO_INTRINSIC_Acosh)
FCIntrinsic("Asin", COMSingle::Asin, CORINFO_INTRINSIC_Asin)
- FCFuncElement("Asinh", COMSingle::Asinh)
+ FCIntrinsic("Asinh", COMSingle::Asinh, CORINFO_INTRINSIC_Asinh)
FCIntrinsic("Atan", COMSingle::Atan, CORINFO_INTRINSIC_Atan)
- FCFuncElement("Atanh", COMSingle::Atanh)
+ FCIntrinsic("Atanh", COMSingle::Atanh, CORINFO_INTRINSIC_Atanh)
FCIntrinsic("Atan2", COMSingle::Atan2, CORINFO_INTRINSIC_Atan2)
- FCFuncElement("Cbrt", COMSingle::Cbrt)
+ FCIntrinsic("Cbrt", COMSingle::Cbrt, CORINFO_INTRINSIC_Cbrt)
FCIntrinsic("Ceiling", COMSingle::Ceil, CORINFO_INTRINSIC_Ceiling)
FCIntrinsic("Cos", COMSingle::Cos, CORINFO_INTRINSIC_Cos)
FCIntrinsic("Cosh", COMSingle::Cosh, CORINFO_INTRINSIC_Cosh)