From 3aa633cc3fc5ac0b4078946d2f997c9328488cd8 Mon Sep 17 00:00:00 2001 From: Alexandru Dutu Date: Fri, 3 Aug 2018 13:54:04 -0400 Subject: [PATCH] arch-gcn3: ds_read_u8 and ds_read_u16 fix This changeset zero extends the destination register for ds_read_u8 and ds_read_u16 instructions. Change-Id: I193adadd68adf2572b59743b1504f18ad225f506 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/29951 Maintainer: Anthony Gutierrez Tested-by: kokoro Reviewed-by: Matt Sinclair --- src/arch/gcn3/insts/instructions.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/arch/gcn3/insts/instructions.cc b/src/arch/gcn3/insts/instructions.cc index 8b72e0da1..6e5ff4244 100644 --- a/src/arch/gcn3/insts/instructions.cc +++ b/src/arch/gcn3/insts/instructions.cc @@ -32016,11 +32016,11 @@ namespace Gcn3ISA void Inst_DS__DS_READ_U8::completeAcc(GPUDynInstPtr gpuDynInst) { - VecOperandU8 vdst(gpuDynInst, extData.VDST); + VecOperandU32 vdst(gpuDynInst, extData.VDST); for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) { if (gpuDynInst->exec_mask[lane]) { - vdst[lane] = (reinterpret_cast( + vdst[lane] = (VecElemU32)(reinterpret_cast( gpuDynInst->d_data))[lane]; } } @@ -32096,11 +32096,11 @@ namespace Gcn3ISA void Inst_DS__DS_READ_U16::completeAcc(GPUDynInstPtr gpuDynInst) { - VecOperandU16 vdst(gpuDynInst, extData.VDST); + VecOperandU32 vdst(gpuDynInst, extData.VDST); for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) { if (gpuDynInst->exec_mask[lane]) { - vdst[lane] = (reinterpret_cast( + vdst[lane] = (VecElemU32)(reinterpret_cast( gpuDynInst->d_data))[lane]; } } -- 2.30.2