From 34165c7ec0fb3a0a07f3a1ede833b8bbf336e44a Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 2 Mar 2020 20:46:37 -0500 Subject: pan/bi: Add BI_GENERIC property I don't want to have 20 class-specific structures floating around. So let's derive them all from a common generic ALU type. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bi_tables.c | 10 +++++----- src/panfrost/bifrost/compiler.h | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/panfrost/bifrost/bi_tables.c b/src/panfrost/bifrost/bi_tables.c index 914acd1e218..0681fbad00d 100644 --- a/src/panfrost/bifrost/bi_tables.c +++ b/src/panfrost/bifrost/bi_tables.c @@ -27,12 +27,12 @@ #include "compiler.h" unsigned bi_class_props[BI_NUM_CLASSES] = { - [BI_ADD] = BI_MODS, + [BI_ADD] = BI_GENERIC | BI_MODS, [BI_ATEST] = 0, [BI_BRANCH] = 0, - [BI_CMP] = BI_MODS, + [BI_CMP] = BI_GENERIC | BI_MODS, [BI_BLEND] = 0, - [BI_BITWISE] = 0, + [BI_BITWISE] = BI_GENERIC, [BI_CONVERT] = 0, [BI_CSEL] = 0, [BI_DISCARD] = 0, @@ -42,12 +42,12 @@ unsigned bi_class_props[BI_NUM_CLASSES] = { [BI_LOAD_ATTR] = 0, [BI_LOAD_VAR] = 0, [BI_LOAD_VAR_ADDRESS] = 0, - [BI_MINMAX] = 0, + [BI_MINMAX] = BI_GENERIC, [BI_MOV] = BI_MODS, [BI_SHIFT] = 0, [BI_STORE] = 0, [BI_STORE_VAR] = 0, [BI_SPECIAL] = 0, [BI_TEX] = 0, - [BI_ROUND] = 0, + [BI_ROUND] = BI_GENERIC, }; diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h index 6956a99665c..823d2e7bc24 100644 --- a/src/panfrost/bifrost/compiler.h +++ b/src/panfrost/bifrost/compiler.h @@ -78,6 +78,11 @@ extern unsigned bi_class_props[BI_NUM_CLASSES]; /* abs/neg/outmod valid for a float op */ #define BI_MODS (1 << 0) +/* Generic enough that little class-specific information is required. In other + * words, it acts as a "normal" ALU op, even if the encoding ends up being + * irregular enough to warrant a separate class */ +#define BI_GENERIC (1 << 1) + /* It can't get any worse than csel4... can it? */ #define BIR_SRC_COUNT 4 -- cgit v1.2.3