diff options
author | Paul Daniel Faria <paulfaria@google.com> | 2024-04-30 23:00:58 +0000 |
---|---|---|
committer | Paul Daniel Faria <paulfaria@google.com> | 2024-05-01 20:59:32 +0000 |
commit | 48adca10c9726f5e9252ec239a001621a2af8e4c (patch) | |
tree | 36f8e795392eeb704b689603ad9dbfb43c277174 | |
parent | bc5c5cb9fa1a33afa90e41b45f64a1259909c410 (diff) | |
download | binary_translation-48adca10c9726f5e9252ec239a001621a2af8e4c.tar.gz |
[interpreter/riscv64] Stop using int in interpreter
Bug: 232598137
Test: m berberis_all berberis_run_host_tests
Change-Id: I9ce0a4ad45fc819d0ad7b123d35518e93405b117
-rw-r--r-- | interpreter/riscv64/interpreter.h | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/interpreter/riscv64/interpreter.h b/interpreter/riscv64/interpreter.h index a6fd3f56..92382807 100644 --- a/interpreter/riscv64/interpreter.h +++ b/interpreter/riscv64/interpreter.h @@ -477,7 +477,7 @@ class Interpreter { template <typename ElementType, VectorRegisterGroupMultiplier vlmul> static constexpr size_t GetVlmax() { - constexpr int kElementsCount = static_cast<int>(sizeof(SIMD128Register) / sizeof(ElementType)); + constexpr size_t kElementsCount = sizeof(SIMD128Register) / sizeof(ElementType); switch (vlmul) { case VectorRegisterGroupMultiplier::k1register: return kElementsCount; @@ -931,8 +931,7 @@ class Interpreter { if (!IsAligned<kIndexRegistersInvolved>(args.idx)) { return Undefined(); } - constexpr size_t kElementsCount = - static_cast<int>(sizeof(SIMD128Register) / sizeof(IndexElementType)); + constexpr size_t kElementsCount = sizeof(SIMD128Register) / sizeof(IndexElementType); alignas(alignof(SIMD128Register)) IndexElementType indexes[kElementsCount * kIndexRegistersInvolved]; memcpy(indexes, state_->cpu.v + args.idx, sizeof(SIMD128Register) * kIndexRegistersInvolved); @@ -1051,7 +1050,7 @@ class Interpreter { if (dst + kNumRegistersInGroup * kSegmentSize >= 32) { return Undefined(); } - constexpr size_t kElementsCount = static_cast<int>(16 / sizeof(ElementType)); + constexpr size_t kElementsCount = 16 / sizeof(ElementType); size_t vstart = GetCsr<CsrName::kVstart>(); size_t vl = GetCsr<CsrName::kVl>(); if constexpr (opcode == Decoder::VLUmOpOpcode::kVlm) { @@ -1219,7 +1218,7 @@ class Interpreter { auto vma, typename GetElementIndexLambdaType> void OpVectorGather(uint8_t dst, uint8_t src1, GetElementIndexLambdaType GetElementIndex) { - constexpr int kRegistersInvolved = NumberOfRegistersInvolved(vlmul); + constexpr size_t kRegistersInvolved = NumberOfRegistersInvolved(vlmul); if (!IsAligned<kRegistersInvolved>(dst | src1)) { return Undefined(); } @@ -1227,7 +1226,7 @@ class Interpreter { if (dst < (src1 + kRegistersInvolved) && src1 < (dst + kRegistersInvolved)) { return Undefined(); } - constexpr int kElementsCount = static_cast<int>(16 / sizeof(ElementType)); + constexpr size_t kElementsCount = 16 / sizeof(ElementType); constexpr size_t vlmax = GetVlmax<ElementType, vlmul>(); size_t vstart = GetCsr<CsrName::kVstart>(); @@ -2554,8 +2553,7 @@ class Interpreter { if (!IsAligned<kIndexRegistersInvolved>(args.idx)) { return Undefined(); } - constexpr size_t kElementsCount = - static_cast<int>(sizeof(SIMD128Register) / sizeof(IndexElementType)); + constexpr size_t kElementsCount = sizeof(SIMD128Register) / sizeof(IndexElementType); alignas(alignof(SIMD128Register)) IndexElementType indexes[kElementsCount * kIndexRegistersInvolved]; memcpy(indexes, state_->cpu.v + args.idx, sizeof(SIMD128Register) * kIndexRegistersInvolved); @@ -2623,7 +2621,7 @@ class Interpreter { if (data + kNumRegistersInGroup * kSegmentSize > 32) { return Undefined(); } - constexpr size_t kElementsCount = static_cast<int>(16 / sizeof(ElementType)); + constexpr size_t kElementsCount = 16 / sizeof(ElementType); size_t vstart = GetCsr<CsrName::kVstart>(); size_t vl = GetCsr<CsrName::kVl>(); if constexpr (opcode == Decoder::VSUmOpOpcode::kVsm) { @@ -2878,7 +2876,7 @@ class Interpreter { if (!IsAligned<kRegistersInvolved>(dst | src)) { return Undefined(); } - constexpr size_t kElementsCount = static_cast<int>(16 / sizeof(ElementType)); + constexpr size_t kElementsCount = 16 / sizeof(ElementType); size_t vstart = GetCsr<CsrName::kVstart>(); SetCsr<CsrName::kVstart>(0); // The usual property that no elements are written if vstart >= vl does not apply to these @@ -3512,8 +3510,8 @@ class Interpreter { if (!IsAligned<kDestRegistersInvolved>(dst) || !IsAligned<kSourceRegistersInvolved>(src)) { return Undefined(); } - int vstart = GetCsr<CsrName::kVstart>(); - int vl = GetCsr<CsrName::kVl>(); + size_t vstart = GetCsr<CsrName::kVstart>(); + size_t vl = GetCsr<CsrName::kVl>(); // When vstart >= vl, there are no body elements, and no elements are updated in any destination // vector register group, including that no tail elements are updated with agnostic values. if (vstart >= vl) [[unlikely]] { |