From: Kyle Roarty Date: Sat, 17 Oct 2020 05:14:35 +0000 (-0500) Subject: arch-gcn3: Fix operand size reporting for Flat insts X-Git-Tag: develop-gem5-snapshot~509 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a82ea84244b47dd429560eb6013250ed90dcaa5c;p=gem5.git arch-gcn3: Fix operand size reporting for Flat insts 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 --- 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;