diff options
author | bunnei <bunneidev@gmail.com> | 2015-05-18 14:08:49 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-05-18 14:08:49 +0200 |
commit | f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6 (patch) | |
tree | f124508f5115244765f6320223c40088f60e1c26 /src | |
parent | Merge pull request #785 from archshift/break (diff) | |
parent | pica: Add the ULL specifier in IsDefaultAttribute (diff) | |
download | yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar.gz yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar.bz2 yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar.lz yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar.xz yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.tar.zst yuzu-f0365f28c2ca0d33dcb5f1f4be1d328cbb9dfdd6.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpdouble.cpp | 6 | ||||
-rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpsingle.cpp | 6 | ||||
-rw-r--r-- | src/core/hle/kernel/process.cpp | 6 | ||||
-rw-r--r-- | src/video_core/pica.h | 2 |
4 files changed, 10 insertions, 10 deletions
diff --git a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp index ab9fec39d..f91049585 100644 --- a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp @@ -531,7 +531,7 @@ static u32 vfp_double_fsito(ARMul_State* state, int dd, int unused, int dm, u32 LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); vdm.sign = (m & 0x80000000) >> 16; vdm.exponent = 1023 + 63 - 1; - vdm.significand = vdm.sign ? -m : m; + vdm.significand = vdm.sign ? (~m + 1) : m; return vfp_double_normaliseround(state, dd, &vdm, fpscr, 0, "fsito"); } @@ -669,7 +669,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 exceptions |= FPSCR_IXC; if (vdm.sign) - d = -d; + d = (~d + 1); } else { d = 0; if (vdm.exponent | vdm.significand) { @@ -817,7 +817,7 @@ u32 vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn,struct vfp_dou m_sig = vdn->significand - m_sig; if ((s64)m_sig < 0) { vdd->sign = vfp_sign_negate(vdd->sign); - m_sig = -m_sig; + m_sig = (~m_sig + 1); } else if (m_sig == 0) { vdd->sign = (fpscr & FPSCR_RMODE_MASK) == FPSCR_ROUND_MINUSINF ? 0x8000 : 0; diff --git a/src/core/arm/skyeye_common/vfp/vfpsingle.cpp b/src/core/arm/skyeye_common/vfp/vfpsingle.cpp index 4dfe0254d..a692c1909 100644 --- a/src/core/arm/skyeye_common/vfp/vfpsingle.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpsingle.cpp @@ -388,7 +388,7 @@ sqrt_invalid: } else { u64 term; s64 rem; - vsm.significand <<= !(vsm.exponent & 1); + vsm.significand <<= static_cast<u32>((vsm.exponent & 1) == 0); term = (u64)vsd.significand * vsd.significand; rem = ((u64)vsm.significand << 32) - term; @@ -691,7 +691,7 @@ static u32 vfp_single_ftosi(ARMul_State* state, int sd, int unused, s32 m, u32 f exceptions |= FPSCR_IXC; if (vsm.sign) - d = 0-d; + d = (~d + 1); } else { d = 0; if (vsm.exponent | vsm.significand) { @@ -843,7 +843,7 @@ vfp_single_add(struct vfp_single *vsd, struct vfp_single *vsn, m_sig = vsn->significand - m_sig; if ((s32)m_sig < 0) { vsd->sign = vfp_sign_negate(vsd->sign); - m_sig = 0-m_sig; + m_sig = (~m_sig + 1); } else if (m_sig == 0) { vsd->sign = (fpscr & FPSCR_RMODE_MASK) == FPSCR_ROUND_MINUSINF ? 0x8000 : 0; diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index b5c87e883..b0e75ba59 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -28,7 +28,7 @@ SharedPtr<Process> Process::Create(std::string name, u64 program_id) { } void Process::ParseKernelCaps(const u32* kernel_caps, size_t len) { - for (int i = 0; i < len; ++i) { + for (size_t i = 0; i < len; ++i) { u32 descriptor = kernel_caps[i]; u32 type = descriptor >> 20; @@ -65,8 +65,8 @@ void Process::ParseKernelCaps(const u32* kernel_caps, size_t len) { AddressMapping mapping; mapping.address = descriptor << 12; mapping.size = (end_desc << 12) - mapping.address; - mapping.writable = descriptor & (1 << 20); - mapping.unk_flag = end_desc & (1 << 20); + mapping.writable = (descriptor & (1 << 20)) != 0; + mapping.unk_flag = (end_desc & (1 << 20)) != 0; address_mappings.push_back(mapping); } else if ((type & 0xFFF) == 0xFFE) { // 0x000F diff --git a/src/video_core/pica.h b/src/video_core/pica.h index 3fbf95721..e9bc7fb3b 100644 --- a/src/video_core/pica.h +++ b/src/video_core/pica.h @@ -614,7 +614,7 @@ struct Regs { } inline bool IsDefaultAttribute(int id) const { - return (id >= 12) || (attribute_mask & (1 << id)) != 0; + return (id >= 12) || (attribute_mask & (1ULL << id)) != 0; } inline int GetNumTotalAttributes() const { |