From 703271c22a9b3ac85e9aef38be288e4ce9ba5e3a Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Thu, 25 Oct 2018 17:26:19 +0900 Subject: [PATCH] freedreno/ir3: take reg->num out of union in ir3_register To avoid wrong result when identifying the type of register. Ie. If the reg is an array, it might be identified as address or predicate register. Fixes: dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6 Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/ir3/ir3.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h index 3055c10..1f47cef 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3.h +++ b/src/gallium/drivers/freedreno/ir3/ir3.h @@ -95,12 +95,13 @@ struct ir3_register { IR3_REG_ARRAY = 0x8000, } flags; + + /* normal registers: + * the component is in the low two bits of the reg #, so + * rN.x becomes: (N << 2) | x + */ + int num; union { - /* normal registers: - * the component is in the low two bits of the reg #, so - * rN.x becomes: (N << 2) | x - */ - int num; /* immediate: */ int32_t iim_val; uint32_t uim_val; -- 2.7.4