瀏覽代碼

nce: fix read size in simd immediate emulation

Liam 2 年之前
父節點
當前提交
a94721fde0
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      src/core/arm/nce/interpreter_visitor.cpp

+ 2 - 1
src/core/arm/nce/interpreter_visitor.cpp

@@ -249,6 +249,7 @@ bool InterpreterVisitor::LDR_lit_fpsimd(Imm<2> opc, Imm<19> imm19, Vec Vt) {
         return false;
         return false;
     }
     }
 
 
+    // Size in bytes
     const u64 size = 4 << opc.ZeroExtend();
     const u64 size = 4 << opc.ZeroExtend();
     const u64 offset = imm19.SignExtend<u64>() << 2;
     const u64 offset = imm19.SignExtend<u64>() << 2;
     const u64 address = this->GetPc() + offset;
     const u64 address = this->GetPc() + offset;
@@ -530,7 +531,7 @@ bool InterpreterVisitor::SIMDImmediate(bool wback, bool postindex, size_t scale,
     }
     }
     case MemOp::Load: {
     case MemOp::Load: {
         u128 data{};
         u128 data{};
-        m_memory.ReadBlock(address, &data, datasize);
+        m_memory.ReadBlock(address, &data, datasize / 8);
         this->SetVec(Vt, data);
         this->SetVec(Vt, data);
         break;
         break;
     }
     }