Mesa (master): nouveau: codegen: LOAD: Do not call fetchSrc(1) if the address is immediate

Hans de Goede jwrdegoede at kemper.freedesktop.org
Wed Apr 27 14:42:49 UTC 2016


Module: Mesa
Branch: master
Commit: 90f45357abd4f0007aa3f047464b43188fed4ef1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=90f45357abd4f0007aa3f047464b43188fed4ef1

Author: Hans de Goede <hdegoede at redhat.com>
Date:   Thu Apr 21 13:51:14 2016 +0200

nouveau: codegen: LOAD: Do not call fetchSrc(1) if the address is immediate

"off" later gets set to NULL when the address is immediate, so move the
fetchSrc(1) call to the non-immediate branch of the if-else. This brings
handleLOAD's offset handling inline with how it is done in handleSTORE.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index cdf9d94..9b9f257 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2383,14 +2383,15 @@ Converter::handleLOAD(Value *dst0[4])
          if (!dst0[c])
             continue;
 
-         // yzw are ignored for buffers
-         Value *off = fetchSrc(1, 0);
+         Value *off;
          Symbol *sym;
          if (tgsi.getSrc(1).getFile() == TGSI_FILE_IMMEDIATE) {
             off = NULL;
             sym = makeSym(tgsi.getSrc(0).getFile(), r, -1, c,
                           tgsi.getSrc(1).getValueU32(0, info) + 4 * c);
          } else {
+            // yzw are ignored for buffers
+            off = fetchSrc(1, 0);
             sym = makeSym(tgsi.getSrc(0).getFile(), r, -1, c, 4 * c);
          }
 




More information about the mesa-commit mailing list