Matt Sinclair has submitted this change. (
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
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/42206
Tested-by: kokoro <[email protected]>
Reviewed-by: Matt Sinclair <[email protected]>
Maintainer: Matt Sinclair <[email protected]>
---
M src/arch/amdgpu/vega/decoder.cc
M src/arch/amdgpu/vega/gpu_decoder.hh
2 files changed, 832 insertions(+), 9 deletions(-)
Approvals:
Matt Sinclair: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/arch/amdgpu/vega/decoder.cc
b/src/arch/amdgpu/vega/decoder.cc
index 5dac7f9..3015313 100644
--- a/src/arch/amdgpu/vega/decoder.cc
+++ b/src/arch/amdgpu/vega/decoder.cc
@@ -1623,19 +1623,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,
@@ -1728,6 +1728,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,
@@ -2009,6 +2140,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,
@@ -3206,7 +3468,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
@@ -7243,12 +7518,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);
@@ -7273,6 +7560,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);
@@ -7429,6 +7752,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);
@@ -8414,6 +9025,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 22dc3f3..6b3094a 100644
--- a/src/arch/amdgpu/vega/gpu_decoder.hh
+++ b/src/arch/amdgpu/vega/gpu_decoder.hh
@@ -61,9 +61,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];
@@ -646,15 +648,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);
@@ -820,6 +878,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);
1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the
submitted one.
--
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: 6
Gerrit-Owner: Alex Dutu <[email protected]>
Gerrit-Reviewer: Matt Sinclair <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-CC: Bobby R. Bruce <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s