Alexandru Duțu has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/42213 )
Change subject: arch-vega: Update FLAT instructions to use offset
......................................................................
arch-vega: Update FLAT instructions to use offset
Change-Id: I9fe36f028014889ef566055458c451442403a289
---
M src/arch/amdgpu/vega/insts/instructions.cc
M src/arch/amdgpu/vega/insts/op_encodings.hh
2 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/src/arch/amdgpu/vega/insts/instructions.cc
b/src/arch/amdgpu/vega/insts/instructions.cc
index 5d1695d..a885fc0 100644
--- a/src/arch/amdgpu/vega/insts/instructions.cc
+++ b/src/arch/amdgpu/vega/insts/instructions.cc
@@ -42463,7 +42463,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42554,7 +42554,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42646,7 +42646,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42709,7 +42709,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42772,7 +42772,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42843,7 +42843,7 @@
addr.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -42922,7 +42922,7 @@
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -42985,7 +42985,7 @@
addr.read();
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43048,7 +43048,7 @@
addr.read();
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43119,7 +43119,7 @@
}
}
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe
@@ -43180,7 +43180,7 @@
data1.read();
data2.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43254,7 +43254,7 @@
data2.read();
data3.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43331,7 +43331,7 @@
addr.read();
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43419,7 +43419,7 @@
data.read();
cmp.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
@@ -43503,7 +43503,7 @@
addr.read();
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
(reinterpret_cast<VecElemU32*>(gpuDynInst->a_data))[lane]
@@ -43896,7 +43896,7 @@
}
}
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
if (isFlatGlobal()) {
gpuDynInst->computeUnit()->globalMemoryPipe.
@@ -43972,7 +43972,7 @@
addr.read();
data.read();
- calcAddr(gpuDynInst, addr);
+ calcAddr(gpuDynInst, addr, instData.OFFSET);
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
diff --git a/src/arch/amdgpu/vega/insts/op_encodings.hh
b/src/arch/amdgpu/vega/insts/op_encodings.hh
index bfff12d..39bfc65 100644
--- a/src/arch/amdgpu/vega/insts/op_encodings.hh
+++ b/src/arch/amdgpu/vega/insts/op_encodings.hh
@@ -791,11 +791,12 @@
}
void
- calcAddr(GPUDynInstPtr gpuDynInst, ConstVecOperandU64 &addr)
+ calcAddr(GPUDynInstPtr gpuDynInst, ConstVecOperandU64 &addr,
+ ScalarRegU32 offset)
{
for (int lane = 0; lane < NumVecElemPerVecReg; ++lane) {
if (gpuDynInst->exec_mask[lane]) {
- gpuDynInst->addr.at(lane) = addr[lane];
+ gpuDynInst->addr.at(lane) = addr[lane] + offset;
}
}
gpuDynInst->resolveFlatSegment(gpuDynInst->exec_mask);
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/42213
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: I9fe36f028014889ef566055458c451442403a289
Gerrit-Change-Number: 42213
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