mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-25 09:20:18 +00:00
Fix ftoi and disable VFPv3
This commit is contained in:
parent
9dd3976f9f
commit
a34ea8ceb0
@ -422,6 +422,10 @@ ARMDecodeStatus DecodeARMInstruction(u32 instr, s32* idx) {
|
|||||||
n = arm_instruction[i].attribute_value;
|
n = arm_instruction[i].attribute_value;
|
||||||
base = 0;
|
base = 0;
|
||||||
|
|
||||||
|
// 3DS has no VFP3 support
|
||||||
|
if (arm_instruction[i].version == ARMVFP3)
|
||||||
|
continue;
|
||||||
|
|
||||||
while (n) {
|
while (n) {
|
||||||
if (arm_instruction[i].content[base + 1] == 31 && arm_instruction[i].content[base] == 0) {
|
if (arm_instruction[i].content[base + 1] == 31 && arm_instruction[i].content[base] == 0) {
|
||||||
// clrex
|
// clrex
|
||||||
|
@ -560,7 +560,7 @@ static u32 vfp_double_ftoui(ARMul_State* state, int sd, int unused, int dm, u32
|
|||||||
if (vdm.exponent >= 1023 + 32) {
|
if (vdm.exponent >= 1023 + 32) {
|
||||||
d = vdm.sign ? 0 : 0xffffffff;
|
d = vdm.sign ? 0 : 0xffffffff;
|
||||||
exceptions = FPSCR_IOC;
|
exceptions = FPSCR_IOC;
|
||||||
} else if (vdm.exponent >= 1023 - 1) {
|
} else if (vdm.exponent >= 1023) {
|
||||||
int shift = 1023 + 63 - vdm.exponent;
|
int shift = 1023 + 63 - vdm.exponent;
|
||||||
u64 rem, incr = 0;
|
u64 rem, incr = 0;
|
||||||
|
|
||||||
@ -644,7 +644,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32
|
|||||||
if (vdm.sign)
|
if (vdm.sign)
|
||||||
d = ~d;
|
d = ~d;
|
||||||
exceptions |= FPSCR_IOC;
|
exceptions |= FPSCR_IOC;
|
||||||
} else if (vdm.exponent >= 1023 - 1) {
|
} else if (vdm.exponent >= 1023) {
|
||||||
int shift = 1023 + 63 - vdm.exponent; /* 58 */
|
int shift = 1023 + 63 - vdm.exponent; /* 58 */
|
||||||
u64 rem, incr = 0;
|
u64 rem, incr = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user