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

Reply via email to