aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2020-03-09 21:20:03 -0400
committerMarge Bot <[email protected]>2020-03-10 19:25:59 +0000
commitb674e39d7224e228aacaa16beee718f059c31f09 (patch)
treec9ded8659ae68fa4bd004a62735bc1ba94871128 /src/panfrost
parentc862234ab3002b5d257e7ea3d76cddad8ca461ea (diff)
pan/bi: Add BI_SPECIAL_* enum
To disambiguate the different special ops from each other. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4139>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/bifrost/bi_print.c18
-rw-r--r--src/panfrost/bifrost/compiler.h12
2 files changed, 30 insertions, 0 deletions
diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c
index d1b2feec465..daccf91a98f 100644
--- a/src/panfrost/bifrost/bi_print.c
+++ b/src/panfrost/bifrost/bi_print.c
@@ -231,6 +231,22 @@ bi_bitwise_op_name(enum bi_bitwise_op op)
}
}
+static const char *
+bi_special_op_name(enum bi_special_op op)
+{
+ switch (op) {
+ case BI_SPECIAL_FRCP: return "frcp";
+ case BI_SPECIAL_FRSQ: return "frsq";
+ case BI_SPECIAL_FATAN: return "fatan";
+ case BI_SPECIAL_FSIN: return "fsin";
+ case BI_SPECIAL_FCOS: return "fcos";
+ case BI_SPECIAL_FEXP: return "fexp";
+ case BI_SPECIAL_FLOG2: return "flog2";
+ case BI_SPECIAL_FLOGE: return "flog";
+ default: return "invalid";
+ }
+}
+
static void
bi_print_load_vary(struct bi_load_vary *load, FILE *fp)
{
@@ -294,6 +310,8 @@ bi_print_instruction(bi_instruction *ins, FILE *fp)
fprintf(fp, "%s", bi_bitwise_op_name(ins->op.bitwise));
else if (ins->type == BI_ROUND)
fprintf(fp, ins->op.round == BI_ROUND_MODE ? "roundMode": "round");
+ else if (ins->type == BI_SPECIAL)
+ fprintf(fp, "%s", bi_special_op_name(ins->op.special));
else
fprintf(fp, "%s", bi_class_name(ins->type));
diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index c99943fead3..c1c8d695be3 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -167,6 +167,17 @@ enum bi_round_op {
BI_ROUND_ROUND /* i.e.: fround() */
};
+enum bi_special_op {
+ BI_SPECIAL_FRCP,
+ BI_SPECIAL_FRSQ,
+ BI_SPECIAL_FATAN,
+ BI_SPECIAL_FSIN,
+ BI_SPECIAL_FCOS,
+ BI_SPECIAL_FEXP,
+ BI_SPECIAL_FLOG2,
+ BI_SPECIAL_FLOGE
+};
+
typedef struct {
struct list_head link; /* Must be first */
enum bi_class type;
@@ -223,6 +234,7 @@ typedef struct {
enum bi_minmax_op minmax;
enum bi_bitwise_op bitwise;
enum bi_round_op round;
+ enum bi_special_op special;
} op;
/* Union for class-specific information */