From 298320280f7255c6ed18a65780a93cb6a29e8644 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Tue, 17 May 2016 17:37:25 -0700 Subject: [PATCH] i965/fs: Fix half() to handle more exotic register files. horiz_offset() is able to deal with a superset of the register files currently special-cased in half(). Just call horiz_offset() in all cases. Reviewed-by: Jason Ekstrand --- src/mesa/drivers/dri/i965/brw_ir_fs.h | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h b/src/mesa/drivers/dri/i965/brw_ir_fs.h index bb05a058a8c..06a74fab94d 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h @@ -188,31 +188,14 @@ is_uniform(const fs_reg ®) } /** - * Get either of the 8-component halves of a 16-component register. - * - * Note: this also works if \c reg represents a SIMD16 pair of registers. + * Get the specified 8-component quarter of a register. + * XXX - Maybe come up with a less misleading name for this (e.g. quarter())? */ static inline fs_reg -half(fs_reg reg, unsigned idx) +half(const fs_reg ®, unsigned idx) { assert(idx < 2); - - switch (reg.file) { - case BAD_FILE: - case UNIFORM: - case IMM: - return reg; - - case VGRF: - case MRF: - return horiz_offset(reg, 8 * idx); - - case ARF: - case FIXED_GRF: - case ATTR: - unreachable("Cannot take half of this register type"); - } - return reg; + return horiz_offset(reg, 8 * idx); } /** -- 2.30.2