summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-01-09 03:14:18 -0300
committerGravatar ReinUsesLisp2021-01-09 03:16:10 -0300
commitc19058659770fe4b235859aa4c617ae56947051d (patch)
treed662eb78fd10b4da3ef49657251afb37a686ad02
parentMerge pull request #5231 from ReinUsesLisp/dyn-bindings (diff)
downloadyuzu-c19058659770fe4b235859aa4c617ae56947051d.tar.gz
yuzu-c19058659770fe4b235859aa4c617ae56947051d.tar.xz
yuzu-c19058659770fe4b235859aa4c617ae56947051d.zip
common/div_ceil: Return numerator type
Fixes instances where DivCeil(u32, u64) would surprisingly return u64, instead of the more natural u32.
Diffstat (limited to '')
-rw-r--r--src/common/div_ceil.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/common/div_ceil.h b/src/common/div_ceil.h
index 6b2c48f91..95e1489a9 100644
--- a/src/common/div_ceil.h
+++ b/src/common/div_ceil.h
@@ -11,16 +11,16 @@ namespace Common {
11 11
12/// Ceiled integer division. 12/// Ceiled integer division.
13template <typename N, typename D> 13template <typename N, typename D>
14requires std::is_integral_v<N>&& std::is_unsigned_v<D>[[nodiscard]] constexpr auto DivCeil( 14requires std::is_integral_v<N>&& std::is_unsigned_v<D>[[nodiscard]] constexpr N DivCeil(N number,
15 N number, D divisor) { 15 D divisor) {
16 return (static_cast<D>(number) + divisor - 1) / divisor; 16 return static_cast<N>((static_cast<D>(number) + divisor - 1) / divisor);
17} 17}
18 18
19/// Ceiled integer division with logarithmic divisor in base 2 19/// Ceiled integer division with logarithmic divisor in base 2
20template <typename N, typename D> 20template <typename N, typename D>
21requires std::is_integral_v<N>&& std::is_unsigned_v<D>[[nodiscard]] constexpr auto DivCeilLog2( 21requires std::is_integral_v<N>&& std::is_unsigned_v<D>[[nodiscard]] constexpr N DivCeilLog2(
22 N value, D alignment_log2) { 22 N value, D alignment_log2) {
23 return (static_cast<D>(value) + (D(1) << alignment_log2) - 1) >> alignment_log2; 23 return static_cast<N>((static_cast<D>(value) + (D(1) << alignment_log2) - 1) >> alignment_log2);
24} 24}
25 25
26} // namespace Common 26} // namespace Common