It's actually not ld unlock -- it's just displayed that way because our subop printing isn't very sophisticated. It's LDC.IS.
Anyways, this is improving the situation, so Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> However that code is still wrong in the presence of potentially negative offsets. I need to look at the instruction encodings with some care. I'm sure that this happens ... ~never. On Tue, Feb 20, 2018 at 5:53 AM, Karol Herbst <kher...@redhat.com> wrote: > We have to increase the file index also for 0x10000 not just for values > greater than 0x10000. > > Fixes: 37b67db6ae34fb6586d640a7a1b6232f091dd812 > Signed-off-by: Karol Herbst <kher...@redhat.com> > --- > src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp > b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp > index 5e9ffc0d46..29f674b451 100644 > --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp > @@ -745,7 +745,7 @@ NVC0LegalizePostRA::visit(BasicBlock *bb) > } else > if (i->op == OP_LOAD && i->subOp == NV50_IR_SUBOP_LDC_IS) { > int offset = i->src(0).get()->reg.data.offset; > - if (abs(offset) > 0x10000) > + if (abs(offset) >= 0x10000) > i->src(0).get()->reg.fileIndex += offset >> 16; > i->src(0).get()->reg.data.offset = (int)(short)offset; > } else { > -- > 2.14.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev