From a82ea84244b47dd429560eb6013250ed90dcaa5c Mon Sep 17 00:00:00 2001 From: Kyle Roarty Date: Sat, 17 Oct 2020 00:14:35 -0500 Subject: [PATCH] arch-gcn3: Fix operand size reporting for Flat insts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Some Flat instructions were reporting their operand sizes in bits instead of bytes. This lead to panics occuring in StaticRegisterManagerPolicy::mapVgpr. This patch updates those insts to report their operand sizes in bytes. Change-Id: I48f485e638864a1f2a1a3be66ed20893e73e9705 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36275 Reviewed-by: Matt Sinclair Reviewed-by: Alexandru Duțu Maintainer: Matt Sinclair Tested-by: kokoro --- src/arch/gcn3/insts/instructions.hh | 44 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/arch/gcn3/insts/instructions.hh b/src/arch/gcn3/insts/instructions.hh index 471c13068..207da293c 100644 --- a/src/arch/gcn3/insts/instructions.hh +++ b/src/arch/gcn3/insts/instructions.hh @@ -79137,7 +79137,7 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_dst - return 32; + return 1; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -79261,7 +79261,7 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_dst - return 32; + return 2; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80147,9 +80147,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80215,9 +80215,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80281,9 +80281,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80347,9 +80347,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80413,9 +80413,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80479,9 +80479,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80545,9 +80545,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80611,9 +80611,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80677,9 +80677,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; @@ -80745,9 +80745,9 @@ namespace Gcn3ISA case 0: //vgpr_addr return 8; case 1: //vgpr_src - return 32; + return 4; case 2: //vgpr_dst - return 32; + return 4; default: fatal("op idx %i out of bounds\n", opIdx); return -1; -- 2.30.2