diff options
| author | 2016-05-16 10:47:01 +0200 | |
|---|---|---|
| committer | 2016-05-16 15:00:45 +0200 | |
| commit | 6fe0cb671df9daf29314be9cbe754606f8cb1ed1 (patch) | |
| tree | 1fe01e774172210d2fb6db8d166c8e7e48ee10c7 /src/core | |
| parent | Disable VFP3 instructions (diff) | |
| download | yuzu-6fe0cb671df9daf29314be9cbe754606f8cb1ed1.tar.gz yuzu-6fe0cb671df9daf29314be9cbe754606f8cb1ed1.tar.xz yuzu-6fe0cb671df9daf29314be9cbe754606f8cb1ed1.zip | |
Respect fpscr in ftoiz
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpdouble.cpp | 4 | ||||
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpsingle.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp index 45914d479..5215d48eb 100644 --- a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp | |||
| @@ -615,7 +615,7 @@ static u32 vfp_double_ftoui(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 615 | static u32 vfp_double_ftouiz(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) | 615 | static u32 vfp_double_ftouiz(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) |
| 616 | { | 616 | { |
| 617 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); | 617 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 618 | return vfp_double_ftoui(state, sd, unused, dm, FPSCR_ROUND_TOZERO); | 618 | return vfp_double_ftoui(state, sd, unused, dm, (fpscr & ~FPSCR_RMODE_MASK) | FPSCR_ROUND_TOZERO); |
| 619 | } | 619 | } |
| 620 | 620 | ||
| 621 | static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) | 621 | static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) |
| @@ -692,7 +692,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 692 | static u32 vfp_double_ftosiz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 692 | static u32 vfp_double_ftosiz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 693 | { | 693 | { |
| 694 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); | 694 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 695 | return vfp_double_ftosi(state, dd, unused, dm, FPSCR_ROUND_TOZERO); | 695 | return vfp_double_ftosi(state, dd, unused, dm, (fpscr & ~FPSCR_RMODE_MASK) | FPSCR_ROUND_TOZERO); |
| 696 | } | 696 | } |
| 697 | 697 | ||
| 698 | static struct op fops_ext[] = { | 698 | static struct op fops_ext[] = { |
diff --git a/src/core/arm/skyeye_common/vfp/vfpsingle.cpp b/src/core/arm/skyeye_common/vfp/vfpsingle.cpp index e47ad2760..e15a95716 100644 --- a/src/core/arm/skyeye_common/vfp/vfpsingle.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpsingle.cpp | |||
| @@ -638,7 +638,7 @@ static u32 vfp_single_ftoui(ARMul_State* state, int sd, int unused, s32 m, u32 f | |||
| 638 | 638 | ||
| 639 | static u32 vfp_single_ftouiz(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) | 639 | static u32 vfp_single_ftouiz(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) |
| 640 | { | 640 | { |
| 641 | return vfp_single_ftoui(state, sd, unused, m, FPSCR_ROUND_TOZERO); | 641 | return vfp_single_ftoui(state, sd, unused, m, (fpscr & ~FPSCR_RMODE_MASK) | FPSCR_ROUND_TOZERO); |
| 642 | } | 642 | } |
| 643 | 643 | ||
| 644 | static u32 vfp_single_ftosi(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) | 644 | static u32 vfp_single_ftosi(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) |
| @@ -717,7 +717,7 @@ static u32 vfp_single_ftosi(ARMul_State* state, int sd, int unused, s32 m, u32 f | |||
| 717 | 717 | ||
| 718 | static u32 vfp_single_ftosiz(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) | 718 | static u32 vfp_single_ftosiz(ARMul_State* state, int sd, int unused, s32 m, u32 fpscr) |
| 719 | { | 719 | { |
| 720 | return vfp_single_ftosi(state, sd, unused, m, FPSCR_ROUND_TOZERO); | 720 | return vfp_single_ftosi(state, sd, unused, m, (fpscr & ~FPSCR_RMODE_MASK) | FPSCR_ROUND_TOZERO); |
| 721 | } | 721 | } |
| 722 | 722 | ||
| 723 | static struct op fops_ext[] = { | 723 | static struct op fops_ext[] = { |