mirror of https://gitee.com/openkylin/qemu.git
-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJap/UyAAoJEPMMOL0/L748OfcP/2nLXF3JcuPYkSVO7zyxBWGQ 2niwXgi9sXPj+CGU9BEHXPWEl4bjdS2rtkuO+JPE+KzSCmpuvqSDRHBoqtVrVPvx KRGRde86rRHWt7fKshOkI5FRe8g/kw236mgpAPgyMXW583dCJMeCCektxbSqVdre BZv3jIS2rfPaW6pxOR8AOPMZqYkbNiT7LEavtWsA3xx3KN86+DiEZj+/xkTuPnOE RdCxsRcZxPJT11hKrMsvHp7YtOXudkK7amXbNIj7w0ybwt+AAxZVl/uYJMg78wXc LD/knyl6p/EKGPbYFMCPm6RHJKYTk8GCxEtwYuPMjHUXeEez/R01KJDLKllFDrVJ Jx41sSivGyLKHKkJVCIQQE8q3U1+SlUNhh9y/Tl3UQax85T1HDaW5G/9TlgFcEPT 9McbPkunmWExmoQqTV4RG//642phTKTaAwbsE/IXB3hb3qdDJdG+jdBAHQ0mws+k 8nrr0hyJ1U2Q4NRGeVOornevLXFQSnIcct+6KT64nd5lvaGy+Urt5df2WCVtxsXf Bn8iDq2FTmDUIA0/7nZ5+gxZeMvsOoalSXAfxCint1pt+t5HizRUtw2yZXOikGrn CQs/XvWSymSspur6QfIW1xTPSUlLHdudDr+EtD6IlIHb92qLfLP/dWTM77yGJLoE VX6/qoDgbksUhvc6eUw+ =MM2n -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging # gpg: Signature made Tue 13 Mar 2018 15:58:42 GMT # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier/tags/m68k-for-2.12-pull-request: target/m68k: implement fcosh target/m68k: implement fsinh target/m68k: implement ftanh target/m68k: implement fatanh target/m68k: implement facos target/m68k: implement fasin target/m68k: implement fatan target/m68k: implement fsincos target/m68k: implement fcos target/m68k: implement fsin target/m68k: implement ftan Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
6265e23b1c
|
@ -592,3 +592,64 @@ void HELPER(ftentox)(CPUM68KState *env, FPReg *res, FPReg *val)
|
|||
{
|
||||
res->d = floatx80_tentox(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(ftan)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_tan(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fsin)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_sin(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fcos)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_cos(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fsincos)(CPUM68KState *env, FPReg *res0, FPReg *res1, FPReg *val)
|
||||
{
|
||||
floatx80 a = val->d;
|
||||
/* If res0 and res1 specify the same floating-point data register,
|
||||
* the sine result is stored in the register, and the cosine
|
||||
* result is discarded.
|
||||
*/
|
||||
res1->d = floatx80_cos(a, &env->fp_status);
|
||||
res0->d = floatx80_sin(a, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fatan)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_atan(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fasin)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_asin(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(facos)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_acos(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fatanh)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_atanh(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(ftanh)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_tanh(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fsinh)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_sinh(val->d, &env->fp_status);
|
||||
}
|
||||
|
||||
void HELPER(fcosh)(CPUM68KState *env, FPReg *res, FPReg *val)
|
||||
{
|
||||
res->d = floatx80_cosh(val->d, &env->fp_status);
|
||||
}
|
||||
|
|
|
@ -75,6 +75,17 @@ DEF_HELPER_3(flog2, void, env, fp, fp)
|
|||
DEF_HELPER_3(fetox, void, env, fp, fp)
|
||||
DEF_HELPER_3(ftwotox, void, env, fp, fp)
|
||||
DEF_HELPER_3(ftentox, void, env, fp, fp)
|
||||
DEF_HELPER_3(ftan, void, env, fp, fp)
|
||||
DEF_HELPER_3(fsin, void, env, fp, fp)
|
||||
DEF_HELPER_3(fcos, void, env, fp, fp)
|
||||
DEF_HELPER_4(fsincos, void, env, fp, fp, fp)
|
||||
DEF_HELPER_3(fatan, void, env, fp, fp)
|
||||
DEF_HELPER_3(fasin, void, env, fp, fp)
|
||||
DEF_HELPER_3(facos, void, env, fp, fp)
|
||||
DEF_HELPER_3(fatanh, void, env, fp, fp)
|
||||
DEF_HELPER_3(ftanh, void, env, fp, fp)
|
||||
DEF_HELPER_3(fsinh, void, env, fp, fp)
|
||||
DEF_HELPER_3(fcosh, void, env, fp, fp)
|
||||
|
||||
DEF_HELPER_3(mac_move, void, env, i32, i32)
|
||||
DEF_HELPER_3(macmulf, i64, env, i32, i32)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -34,4 +34,15 @@ floatx80 floatx80_log2(floatx80 a, float_status *status);
|
|||
floatx80 floatx80_etox(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_twotox(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_tentox(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_tan(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_sin(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_cos(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_atan(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_asin(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_acos(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_atanh(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_etoxm1(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_tanh(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_sinh(floatx80 a, float_status *status);
|
||||
floatx80 floatx80_cosh(floatx80 a, float_status *status);
|
||||
#endif
|
||||
|
|
|
@ -371,4 +371,271 @@ static const uint32_t exp2_tbl2[64] = {
|
|||
0xBFBDBF4A, 0x3FBEC01A, 0x3FBE8CAC, 0xBFBCBB3F,
|
||||
0x3FBEF73A, 0xBFB8B795, 0x3FBEF84B, 0xBFBEF581
|
||||
};
|
||||
|
||||
static const floatx80 pi_tbl[65] = {
|
||||
make_floatx80_init(0xC004, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0xC004, 0xC2C75BCD105D7C23),
|
||||
make_floatx80_init(0xC004, 0xBC7EDCF7FF523611),
|
||||
make_floatx80_init(0xC004, 0xB6365E22EE46F000),
|
||||
make_floatx80_init(0xC004, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0xC004, 0xA9A56078CC3063DD),
|
||||
make_floatx80_init(0xC004, 0xA35CE1A3BB251DCB),
|
||||
make_floatx80_init(0xC004, 0x9D1462CEAA19D7B9),
|
||||
make_floatx80_init(0xC004, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0xC004, 0x9083652488034B96),
|
||||
make_floatx80_init(0xC004, 0x8A3AE64F76F80584),
|
||||
make_floatx80_init(0xC004, 0x83F2677A65ECBF73),
|
||||
make_floatx80_init(0xC003, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0xC003, 0xEEC2D3A087AC669F),
|
||||
make_floatx80_init(0xC003, 0xE231D5F66595DA7B),
|
||||
make_floatx80_init(0xC003, 0xD5A0D84C437F4E58),
|
||||
make_floatx80_init(0xC003, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0xC003, 0xBC7EDCF7FF523611),
|
||||
make_floatx80_init(0xC003, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0xC003, 0xA35CE1A3BB251DCB),
|
||||
make_floatx80_init(0xC003, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0xC003, 0x8A3AE64F76F80584),
|
||||
make_floatx80_init(0xC002, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0xC002, 0xE231D5F66595DA7B),
|
||||
make_floatx80_init(0xC002, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0xC002, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0xC002, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0xC001, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0xC001, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0xC001, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0xC000, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0xBFFF, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x0000, 0x0000000000000000),
|
||||
make_floatx80_init(0x3FFF, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x4000, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x4001, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0x4001, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x4001, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0x4002, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0x4002, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0x4002, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x4002, 0xE231D5F66595DA7B),
|
||||
make_floatx80_init(0x4002, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0x4003, 0x8A3AE64F76F80584),
|
||||
make_floatx80_init(0x4003, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0x4003, 0xA35CE1A3BB251DCB),
|
||||
make_floatx80_init(0x4003, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0x4003, 0xBC7EDCF7FF523611),
|
||||
make_floatx80_init(0x4003, 0xC90FDAA22168C235),
|
||||
make_floatx80_init(0x4003, 0xD5A0D84C437F4E58),
|
||||
make_floatx80_init(0x4003, 0xE231D5F66595DA7B),
|
||||
make_floatx80_init(0x4003, 0xEEC2D3A087AC669F),
|
||||
make_floatx80_init(0x4003, 0xFB53D14AA9C2F2C2),
|
||||
make_floatx80_init(0x4004, 0x83F2677A65ECBF73),
|
||||
make_floatx80_init(0x4004, 0x8A3AE64F76F80584),
|
||||
make_floatx80_init(0x4004, 0x9083652488034B96),
|
||||
make_floatx80_init(0x4004, 0x96CBE3F9990E91A8),
|
||||
make_floatx80_init(0x4004, 0x9D1462CEAA19D7B9),
|
||||
make_floatx80_init(0x4004, 0xA35CE1A3BB251DCB),
|
||||
make_floatx80_init(0x4004, 0xA9A56078CC3063DD),
|
||||
make_floatx80_init(0x4004, 0xAFEDDF4DDD3BA9EE),
|
||||
make_floatx80_init(0x4004, 0xB6365E22EE46F000),
|
||||
make_floatx80_init(0x4004, 0xBC7EDCF7FF523611),
|
||||
make_floatx80_init(0x4004, 0xC2C75BCD105D7C23),
|
||||
make_floatx80_init(0x4004, 0xC90FDAA22168C235)
|
||||
};
|
||||
|
||||
static const float32 pi_tbl2[65] = {
|
||||
const_float32(0x21800000),
|
||||
const_float32(0xA0D00000),
|
||||
const_float32(0xA1E80000),
|
||||
const_float32(0x21480000),
|
||||
const_float32(0xA1200000),
|
||||
const_float32(0x21FC0000),
|
||||
const_float32(0x21100000),
|
||||
const_float32(0xA1580000),
|
||||
const_float32(0x21E00000),
|
||||
const_float32(0x20B00000),
|
||||
const_float32(0xA1880000),
|
||||
const_float32(0x21C40000),
|
||||
const_float32(0x20000000),
|
||||
const_float32(0x21380000),
|
||||
const_float32(0xA1300000),
|
||||
const_float32(0x9FC00000),
|
||||
const_float32(0x21000000),
|
||||
const_float32(0xA1680000),
|
||||
const_float32(0xA0A00000),
|
||||
const_float32(0x20900000),
|
||||
const_float32(0x21600000),
|
||||
const_float32(0xA1080000),
|
||||
const_float32(0x1F800000),
|
||||
const_float32(0xA0B00000),
|
||||
const_float32(0x20800000),
|
||||
const_float32(0xA0200000),
|
||||
const_float32(0x20E00000),
|
||||
const_float32(0x1F000000),
|
||||
const_float32(0x20000000),
|
||||
const_float32(0x20600000),
|
||||
const_float32(0x1F800000),
|
||||
const_float32(0x1F000000),
|
||||
const_float32(0x00000000),
|
||||
const_float32(0x9F000000),
|
||||
const_float32(0x9F800000),
|
||||
const_float32(0xA0600000),
|
||||
const_float32(0xA0000000),
|
||||
const_float32(0x9F000000),
|
||||
const_float32(0xA0E00000),
|
||||
const_float32(0x20200000),
|
||||
const_float32(0xA0800000),
|
||||
const_float32(0x20B00000),
|
||||
const_float32(0x9F800000),
|
||||
const_float32(0x21080000),
|
||||
const_float32(0xA1600000),
|
||||
const_float32(0xA0900000),
|
||||
const_float32(0x20A00000),
|
||||
const_float32(0x21680000),
|
||||
const_float32(0xA1000000),
|
||||
const_float32(0x1FC00000),
|
||||
const_float32(0x21300000),
|
||||
const_float32(0xA1380000),
|
||||
const_float32(0xA0000000),
|
||||
const_float32(0xA1C40000),
|
||||
const_float32(0x21880000),
|
||||
const_float32(0xA0B00000),
|
||||
const_float32(0xA1E00000),
|
||||
const_float32(0x21580000),
|
||||
const_float32(0xA1100000),
|
||||
const_float32(0xA1FC0000),
|
||||
const_float32(0x21200000),
|
||||
const_float32(0xA1480000),
|
||||
const_float32(0x21E80000),
|
||||
const_float32(0x20D00000),
|
||||
const_float32(0xA1800000),
|
||||
};
|
||||
|
||||
static const floatx80 atan_tbl[128] = {
|
||||
make_floatx80_init(0x3FFB, 0x83D152C5060B7A51),
|
||||
make_floatx80_init(0x3FFB, 0x8BC8544565498B8B),
|
||||
make_floatx80_init(0x3FFB, 0x93BE406017626B0D),
|
||||
make_floatx80_init(0x3FFB, 0x9BB3078D35AEC202),
|
||||
make_floatx80_init(0x3FFB, 0xA3A69A525DDCE7DE),
|
||||
make_floatx80_init(0x3FFB, 0xAB98E94362765619),
|
||||
make_floatx80_init(0x3FFB, 0xB389E502F9C59862),
|
||||
make_floatx80_init(0x3FFB, 0xBB797E436B09E6FB),
|
||||
make_floatx80_init(0x3FFB, 0xC367A5C739E5F446),
|
||||
make_floatx80_init(0x3FFB, 0xCB544C61CFF7D5C6),
|
||||
make_floatx80_init(0x3FFB, 0xD33F62F82488533E),
|
||||
make_floatx80_init(0x3FFB, 0xDB28DA8162404C77),
|
||||
make_floatx80_init(0x3FFB, 0xE310A4078AD34F18),
|
||||
make_floatx80_init(0x3FFB, 0xEAF6B0A8188EE1EB),
|
||||
make_floatx80_init(0x3FFB, 0xF2DAF1949DBE79D5),
|
||||
make_floatx80_init(0x3FFB, 0xFABD581361D47E3E),
|
||||
make_floatx80_init(0x3FFC, 0x8346AC210959ECC4),
|
||||
make_floatx80_init(0x3FFC, 0x8B232A08304282D8),
|
||||
make_floatx80_init(0x3FFC, 0x92FB70B8D29AE2F9),
|
||||
make_floatx80_init(0x3FFC, 0x9ACF476F5CCD1CB4),
|
||||
make_floatx80_init(0x3FFC, 0xA29E76304954F23F),
|
||||
make_floatx80_init(0x3FFC, 0xAA68C5D08AB85230),
|
||||
make_floatx80_init(0x3FFC, 0xB22DFFFD9D539F83),
|
||||
make_floatx80_init(0x3FFC, 0xB9EDEF453E900EA5),
|
||||
make_floatx80_init(0x3FFC, 0xC1A85F1CC75E3EA5),
|
||||
make_floatx80_init(0x3FFC, 0xC95D1BE828138DE6),
|
||||
make_floatx80_init(0x3FFC, 0xD10BF300840D2DE4),
|
||||
make_floatx80_init(0x3FFC, 0xD8B4B2BA6BC05E7A),
|
||||
make_floatx80_init(0x3FFC, 0xE0572A6BB42335F6),
|
||||
make_floatx80_init(0x3FFC, 0xE7F32A70EA9CAA8F),
|
||||
make_floatx80_init(0x3FFC, 0xEF88843264ECEFAA),
|
||||
make_floatx80_init(0x3FFC, 0xF7170A28ECC06666),
|
||||
make_floatx80_init(0x3FFD, 0x812FD288332DAD32),
|
||||
make_floatx80_init(0x3FFD, 0x88A8D1B1218E4D64),
|
||||
make_floatx80_init(0x3FFD, 0x9012AB3F23E4AEE8),
|
||||
make_floatx80_init(0x3FFD, 0x976CC3D411E7F1B9),
|
||||
make_floatx80_init(0x3FFD, 0x9EB689493889A227),
|
||||
make_floatx80_init(0x3FFD, 0xA5EF72C34487361B),
|
||||
make_floatx80_init(0x3FFD, 0xAD1700BAF07A7227),
|
||||
make_floatx80_init(0x3FFD, 0xB42CBCFAFD37EFB7),
|
||||
make_floatx80_init(0x3FFD, 0xBB303A940BA80F89),
|
||||
make_floatx80_init(0x3FFD, 0xC22115C6FCAEBBAF),
|
||||
make_floatx80_init(0x3FFD, 0xC8FEF3E686331221),
|
||||
make_floatx80_init(0x3FFD, 0xCFC98330B4000C70),
|
||||
make_floatx80_init(0x3FFD, 0xD6807AA1102C5BF9),
|
||||
make_floatx80_init(0x3FFD, 0xDD2399BC31252AA3),
|
||||
make_floatx80_init(0x3FFD, 0xE3B2A8556B8FC517),
|
||||
make_floatx80_init(0x3FFD, 0xEA2D764F64315989),
|
||||
make_floatx80_init(0x3FFD, 0xF3BF5BF8BAD1A21D),
|
||||
make_floatx80_init(0x3FFE, 0x801CE39E0D205C9A),
|
||||
make_floatx80_init(0x3FFE, 0x8630A2DADA1ED066),
|
||||
make_floatx80_init(0x3FFE, 0x8C1AD445F3E09B8C),
|
||||
make_floatx80_init(0x3FFE, 0x91DB8F1664F350E2),
|
||||
make_floatx80_init(0x3FFE, 0x97731420365E538C),
|
||||
make_floatx80_init(0x3FFE, 0x9CE1C8E6A0B8CDBA),
|
||||
make_floatx80_init(0x3FFE, 0xA22832DBCADAAE09),
|
||||
make_floatx80_init(0x3FFE, 0xA746F2DDB7602294),
|
||||
make_floatx80_init(0x3FFE, 0xAC3EC0FB997DD6A2),
|
||||
make_floatx80_init(0x3FFE, 0xB110688AEBDC6F6A),
|
||||
make_floatx80_init(0x3FFE, 0xB5BCC49059ECC4B0),
|
||||
make_floatx80_init(0x3FFE, 0xBA44BC7DD470782F),
|
||||
make_floatx80_init(0x3FFE, 0xBEA94144FD049AAC),
|
||||
make_floatx80_init(0x3FFE, 0xC2EB4ABB661628B6),
|
||||
make_floatx80_init(0x3FFE, 0xC70BD54CE602EE14),
|
||||
make_floatx80_init(0x3FFE, 0xCD000549ADEC7159),
|
||||
make_floatx80_init(0x3FFE, 0xD48457D2D8EA4EA3),
|
||||
make_floatx80_init(0x3FFE, 0xDB948DA712DECE3B),
|
||||
make_floatx80_init(0x3FFE, 0xE23855F969E8096A),
|
||||
make_floatx80_init(0x3FFE, 0xE8771129C4353259),
|
||||
make_floatx80_init(0x3FFE, 0xEE57C16E0D379C0D),
|
||||
make_floatx80_init(0x3FFE, 0xF3E10211A87C3779),
|
||||
make_floatx80_init(0x3FFE, 0xF919039D758B8D41),
|
||||
make_floatx80_init(0x3FFE, 0xFE058B8F64935FB3),
|
||||
make_floatx80_init(0x3FFF, 0x8155FB497B685D04),
|
||||
make_floatx80_init(0x3FFF, 0x83889E3549D108E1),
|
||||
make_floatx80_init(0x3FFF, 0x859CFA76511D724B),
|
||||
make_floatx80_init(0x3FFF, 0x87952ECFFF8131E7),
|
||||
make_floatx80_init(0x3FFF, 0x89732FD19557641B),
|
||||
make_floatx80_init(0x3FFF, 0x8B38CAD101932A35),
|
||||
make_floatx80_init(0x3FFF, 0x8CE7A8D8301EE6B5),
|
||||
make_floatx80_init(0x3FFF, 0x8F46A39E2EAE5281),
|
||||
make_floatx80_init(0x3FFF, 0x922DA7D791888487),
|
||||
make_floatx80_init(0x3FFF, 0x94D19FCBDEDF5241),
|
||||
make_floatx80_init(0x3FFF, 0x973AB94419D2A08B),
|
||||
make_floatx80_init(0x3FFF, 0x996FF00E08E10B96),
|
||||
make_floatx80_init(0x3FFF, 0x9B773F9512321DA7),
|
||||
make_floatx80_init(0x3FFF, 0x9D55CC320F935624),
|
||||
make_floatx80_init(0x3FFF, 0x9F100575006CC571),
|
||||
make_floatx80_init(0x3FFF, 0xA0A9C290D97CC06C),
|
||||
make_floatx80_init(0x3FFF, 0xA22659EBEBC0630A),
|
||||
make_floatx80_init(0x3FFF, 0xA388B4AFF6EF0EC9),
|
||||
make_floatx80_init(0x3FFF, 0xA4D35F1061D292C4),
|
||||
make_floatx80_init(0x3FFF, 0xA60895DCFBE3187E),
|
||||
make_floatx80_init(0x3FFF, 0xA72A51DC7367BEAC),
|
||||
make_floatx80_init(0x3FFF, 0xA83A51530956168F),
|
||||
make_floatx80_init(0x3FFF, 0xA93A20077539546E),
|
||||
make_floatx80_init(0x3FFF, 0xAA9E7245023B2605),
|
||||
make_floatx80_init(0x3FFF, 0xAC4C84BA6FE4D58F),
|
||||
make_floatx80_init(0x3FFF, 0xADCE4A4A606B9712),
|
||||
make_floatx80_init(0x3FFF, 0xAF2A2DCD8D263C9C),
|
||||
make_floatx80_init(0x3FFF, 0xB0656F81F22265C7),
|
||||
make_floatx80_init(0x3FFF, 0xB18465150F71496A),
|
||||
make_floatx80_init(0x3FFF, 0xB28AAA156F9ADA35),
|
||||
make_floatx80_init(0x3FFF, 0xB37B44FF3766B895),
|
||||
make_floatx80_init(0x3FFF, 0xB458C3DCE9630433),
|
||||
make_floatx80_init(0x3FFF, 0xB525529D562246BD),
|
||||
make_floatx80_init(0x3FFF, 0xB5E2CCA95F9D88CC),
|
||||
make_floatx80_init(0x3FFF, 0xB692CADA7ACA1ADA),
|
||||
make_floatx80_init(0x3FFF, 0xB736AEA7A6925838),
|
||||
make_floatx80_init(0x3FFF, 0xB7CFAB287E9F7B36),
|
||||
make_floatx80_init(0x3FFF, 0xB85ECC66CB219835),
|
||||
make_floatx80_init(0x3FFF, 0xB8E4FD5A20A593DA),
|
||||
make_floatx80_init(0x3FFF, 0xB99F41F64AFF9BB5),
|
||||
make_floatx80_init(0x3FFF, 0xBA7F1E17842BBE7B),
|
||||
make_floatx80_init(0x3FFF, 0xBB4712857637E17D),
|
||||
make_floatx80_init(0x3FFF, 0xBBFABE8A4788DF6F),
|
||||
make_floatx80_init(0x3FFF, 0xBC9D0FAD2B689D79),
|
||||
make_floatx80_init(0x3FFF, 0xBD306A39471ECD86),
|
||||
make_floatx80_init(0x3FFF, 0xBDB6C731856AF18A),
|
||||
make_floatx80_init(0x3FFF, 0xBE31CAC502E80D70),
|
||||
make_floatx80_init(0x3FFF, 0xBEA2D55CE33194E2),
|
||||
make_floatx80_init(0x3FFF, 0xBF0B10B7C03128F0),
|
||||
make_floatx80_init(0x3FFF, 0xBF6B7A18DACB778D),
|
||||
make_floatx80_init(0x3FFF, 0xBFC4EA4663FA18F6),
|
||||
make_floatx80_init(0x3FFF, 0xC0181BDE8B89A454),
|
||||
make_floatx80_init(0x3FFF, 0xC065B066CFBF6439),
|
||||
make_floatx80_init(0x3FFF, 0xC0AE345F56340AE6),
|
||||
make_floatx80_init(0x3FFF, 0xC0F222919CB9E6A7)
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -5042,6 +5042,9 @@ DISAS_INSN(fpu)
|
|||
case 1: /* fint */
|
||||
gen_helper_firound(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 2: /* fsinh */
|
||||
gen_helper_fsinh(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 3: /* fintrz */
|
||||
gen_helper_fitrunc(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
|
@ -5057,6 +5060,24 @@ DISAS_INSN(fpu)
|
|||
case 0x06: /* flognp1 */
|
||||
gen_helper_flognp1(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x09: /* ftanh */
|
||||
gen_helper_ftanh(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x0a: /* fatan */
|
||||
gen_helper_fatan(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x0c: /* fasin */
|
||||
gen_helper_fasin(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x0d: /* fatanh */
|
||||
gen_helper_fatanh(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x0e: /* fsin */
|
||||
gen_helper_fsin(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x0f: /* ftan */
|
||||
gen_helper_ftan(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x10: /* fetox */
|
||||
gen_helper_fetox(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
|
@ -5084,6 +5105,9 @@ DISAS_INSN(fpu)
|
|||
case 0x5c: /* fdabs */
|
||||
gen_helper_fdabs(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x19: /* fcosh */
|
||||
gen_helper_fcosh(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x1a: /* fneg */
|
||||
gen_helper_fneg(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
|
@ -5093,6 +5117,12 @@ DISAS_INSN(fpu)
|
|||
case 0x5e: /* fdneg */
|
||||
gen_helper_fdneg(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x1c: /* facos */
|
||||
gen_helper_facos(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x1d: /* fcos */
|
||||
gen_helper_fcos(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
case 0x1e: /* fgetexp */
|
||||
gen_helper_fgetexp(cpu_env, cpu_dest, cpu_src);
|
||||
break;
|
||||
|
@ -5150,6 +5180,14 @@ DISAS_INSN(fpu)
|
|||
case 0x6c: /* fdsub */
|
||||
gen_helper_fdsub(cpu_env, cpu_dest, cpu_src, cpu_dest);
|
||||
break;
|
||||
case 0x30: case 0x31: case 0x32:
|
||||
case 0x33: case 0x34: case 0x35:
|
||||
case 0x36: case 0x37: {
|
||||
TCGv_ptr cpu_dest2 = gen_fp_ptr(REG(ext, 0));
|
||||
gen_helper_fsincos(cpu_env, cpu_dest, cpu_dest2, cpu_src);
|
||||
tcg_temp_free_ptr(cpu_dest2);
|
||||
}
|
||||
break;
|
||||
case 0x38: /* fcmp */
|
||||
gen_helper_fcmp(cpu_env, cpu_src, cpu_dest);
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue