Alexandru Duțu has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/42206 )
Change subject: arch-vega: Add decodings for Flat, Global, Scratch
......................................................................
arch-vega: Add decodings for Flat, Global, Scratch
Does not implement the functions yet
Change-Id: I32feab747b13bd2eff98983e3281c0d82e756221
---
M src/arch/amdgpu/vega/decoder.cc
M src/arch/amdgpu/vega/gpu_decoder.hh
2 files changed, 832 insertions(+), 9 deletions(-)
diff --git a/src/arch/amdgpu/vega/decoder.cc
b/src/arch/amdgpu/vega/decoder.cc
index afcafd4..0e3718b 100644
--- a/src/arch/amdgpu/vega/decoder.cc
+++ b/src/arch/amdgpu/vega/decoder.cc
@@ -1621,19 +1621,19 @@
&Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX3,
&Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX4,
&Decoder::decode_OP_FLAT__FLAT_STORE_BYTE,
- &Decoder::decode_invalid,
+ &Decoder::decode_OP_FLAT__FLAT_STORE_BYTE_D16_HI,
&Decoder::decode_OP_FLAT__FLAT_STORE_SHORT,
- &Decoder::decode_invalid,
+ &Decoder::decode_OP_FLAT__FLAT_STORE_SHORT_D16_HI,
&Decoder::decode_OP_FLAT__FLAT_STORE_DWORD,
&Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX2,
&Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX3,
&Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX4,
- &Decoder::decode_invalid,
- &Decoder::decode_invalid,
- &Decoder::decode_invalid,
- &Decoder::decode_invalid,
- &Decoder::decode_invalid,
- &Decoder::decode_invalid,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16_HI,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16_HI,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16,
+ &Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16_HI,
&Decoder::decode_invalid,
&Decoder::decode_invalid,
&Decoder::decode_invalid,
@@ -1726,6 +1726,137 @@
&Decoder::decode_invalid
};
+ IsaDecodeMethod Decoder::tableSubDecode_OP_GLOBAL[] = {
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_USHORT,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SSHORT,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORD,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX3,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX4,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE_D16_HI,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT_D16_HI,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORD,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX3,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX4,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16_HI,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16_HI,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16_HI,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC_X2,
+ &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC_X2,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid
+ };
+
IsaDecodeMethod Decoder::tableSubDecode_OP_MIMG[] = {
&Decoder::decode_OP_MIMG__IMAGE_LOAD,
&Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP,
@@ -2007,6 +2138,137 @@
&Decoder::decode_invalid
};
+ IsaDecodeMethod Decoder::tableSubDecode_OP_SCRATCH[] = {
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_USHORT,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SSHORT,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORD,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX2,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX3,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX4,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE_D16_HI,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT_D16_HI,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORD,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX2,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX3,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX4,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16_HI,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16_HI,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16,
+ &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16_HI,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ &Decoder::decode_invalid,
+ };
+
IsaDecodeMethod Decoder::tableSubDecode_OP_SMEM[] = {
&Decoder::decode_OP_SMEM__S_LOAD_DWORD,
&Decoder::decode_OP_SMEM__S_LOAD_DWORDX2,
@@ -3204,7 +3466,20 @@
Decoder::subDecode_OP_FLAT(MachInst iFmt)
{
InFmt_FLAT *enc = &iFmt->iFmt_FLAT;
- IsaDecodeMethod method = tableSubDecode_OP_FLAT[enc->OP];
+ IsaDecodeMethod method;
+ switch (enc->SEG) {
+ case 0:
+ method = tableSubDecode_OP_FLAT[enc->OP];
+ break;
+ case 1:
+ method = tableSubDecode_OP_SCRATCH[enc->OP];
+ break;
+ case 2:
+ method = tableSubDecode_OP_GLOBAL[enc->OP];
+ break;
+ default:
+ fatal("Invalid SEG for FLAT encoding: %d\n", enc->SEG);
+ }
return (this->*method)(iFmt);
} // subDecode_OP_FLAT
@@ -7241,12 +7516,24 @@
} // decode_OP_FLAT__FLAT_STORE_BYTE
GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_STORE_BYTE_D16_HI(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
Decoder::decode_OP_FLAT__FLAT_STORE_SHORT(MachInst iFmt)
{
return new Inst_FLAT__FLAT_STORE_SHORT(&iFmt->iFmt_FLAT);
} // decode_OP_FLAT__FLAT_STORE_SHORT
GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_STORE_SHORT_D16_HI(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
Decoder::decode_OP_FLAT__FLAT_STORE_DWORD(MachInst iFmt)
{
return new Inst_FLAT__FLAT_STORE_DWORD(&iFmt->iFmt_FLAT);
@@ -7271,6 +7558,42 @@
} // decode_OP_FLAT__FLAT_STORE_DWORDX4
GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16_HI(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16_HI(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16_HI(MachInst iFmt)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
Decoder::decode_OP_FLAT__FLAT_ATOMIC_SWAP(MachInst iFmt)
{
return new Inst_FLAT__FLAT_ATOMIC_SWAP(&iFmt->iFmt_FLAT);
@@ -7427,6 +7750,294 @@
} // decode_OP_FLAT__FLAT_ATOMIC_DEC_X2
GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_USHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SSHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORD(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX3(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX4(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORD(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX3(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX4(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC_X2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
Decoder::decode_OP_MIMG__IMAGE_LOAD(MachInst iFmt)
{
return new Inst_MIMG__IMAGE_LOAD(&iFmt->iFmt_MIMG);
@@ -8412,6 +9023,138 @@
} // decode_OP_MUBUF__BUFFER_ATOMIC_DEC_X2
GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_USHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SSHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORD(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX3(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX4(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORD(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX2(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX3(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX4(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
+ Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16_HI(MachInst)
+ {
+ return nullptr;
+ }
+
+ GPUStaticInst*
Decoder::decode_OP_SMEM__S_LOAD_DWORD(MachInst iFmt)
{
return new Inst_SMEM__S_LOAD_DWORD(&iFmt->iFmt_SMEM);
diff --git a/src/arch/amdgpu/vega/gpu_decoder.hh
b/src/arch/amdgpu/vega/gpu_decoder.hh
index 4a63d68..06e56a6 100644
--- a/src/arch/amdgpu/vega/gpu_decoder.hh
+++ b/src/arch/amdgpu/vega/gpu_decoder.hh
@@ -64,9 +64,11 @@
static IsaDecodeMethod tableSubDecode_OPU_VOP3[768];
static IsaDecodeMethod tableSubDecode_OP_DS[256];
static IsaDecodeMethod tableSubDecode_OP_FLAT[128];
+ static IsaDecodeMethod tableSubDecode_OP_GLOBAL[128];
static IsaDecodeMethod tableSubDecode_OP_MIMG[128];
static IsaDecodeMethod tableSubDecode_OP_MTBUF[16];
static IsaDecodeMethod tableSubDecode_OP_MUBUF[128];
+ static IsaDecodeMethod tableSubDecode_OP_SCRATCH[128];
static IsaDecodeMethod tableSubDecode_OP_SMEM[64];
static IsaDecodeMethod tableSubDecode_OP_SOP1[256];
static IsaDecodeMethod tableSubDecode_OP_SOPC[128];
@@ -649,15 +651,71 @@
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_DWORDX3(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_DWORDX4(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SBYTE(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SBYTE_D16(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SBYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SHORT_D16(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SHORT_D16_HI(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_SSHORT(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_UBYTE(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_UBYTE_D16(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_UBYTE_D16_HI(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_LOAD_USHORT(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_BYTE(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_STORE_BYTE_D16_HI(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_DWORD(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_DWORDX2(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_DWORDX3(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_DWORDX4(MachInst);
GPUStaticInst* decode_OP_FLAT__FLAT_STORE_SHORT(MachInst);
+ GPUStaticInst* decode_OP_FLAT__FLAT_STORE_SHORT_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_USHORT(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_SSHORT(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_DWORD(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX3(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX4(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_BYTE(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_STORE_BYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_SHORT(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_STORE_SHORT_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_DWORD(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_DWORDX2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_DWORDX3(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_STORE_DWORDX4(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_AND(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_OR(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_INC(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP_X2(MachInst);
+ GPUStaticInst*
decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_AND_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_OR_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_INC_X2(MachInst);
+ GPUStaticInst* decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC_X2(MachInst);
GPUStaticInst* decode_OP_MIMG__IMAGE_ATOMIC_ADD(MachInst);
GPUStaticInst* decode_OP_MIMG__IMAGE_ATOMIC_AND(MachInst);
GPUStaticInst* decode_OP_MIMG__IMAGE_ATOMIC_CMPSWAP(MachInst);
@@ -823,6 +881,28 @@
GPUStaticInst* decode_OP_MUBUF__BUFFER_STORE_SHORT(MachInst);
GPUStaticInst* decode_OP_MUBUF__BUFFER_WBINVL1(MachInst);
GPUStaticInst* decode_OP_MUBUF__BUFFER_WBINVL1_VOL(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_USHORT(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_SSHORT(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_DWORD(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX2(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX3(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX4(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_BYTE(MachInst);
+ GPUStaticInst*
decode_OP_SCRATCH__SCRATCH_STORE_BYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_SHORT(MachInst);
+ GPUStaticInst*
decode_OP_SCRATCH__SCRATCH_STORE_SHORT_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_DWORD(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_DWORDX2(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_DWORDX3(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_STORE_DWORDX4(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16(MachInst);
+ GPUStaticInst*
decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16(MachInst);
+ GPUStaticInst*
decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16_HI(MachInst);
+ GPUStaticInst* decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16(MachInst);
+ GPUStaticInst*
decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16_HI(MachInst);
GPUStaticInst* decode_OP_SMEM__S_ATC_PROBE(MachInst);
GPUStaticInst* decode_OP_SMEM__S_ATC_PROBE_BUFFER(MachInst);
GPUStaticInst* decode_OP_SMEM__S_BUFFER_LOAD_DWORD(MachInst);
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/42206
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I32feab747b13bd2eff98983e3281c0d82e756221
Gerrit-Change-Number: 42206
Gerrit-PatchSet: 1
Gerrit-Owner: Alexandru Duțu <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s