From: Hans de Goede Date: Thu, 21 Apr 2016 11:51:14 +0000 (+0200) Subject: nouveau: codegen: LOAD: Do not call fetchSrc(1) if the address is immediate X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=90f45357abd4f0007aa3f047464b43188fed4ef1;p=mesa.git 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 Reviewed-by: Samuel Pitoiset Reviewed-by: Ilia Mirkin --- 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 cdf9d9413e6..9b9f257b280 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); }