diff options
author | Alyssa Rosenzweig <[email protected]> | 2020-03-09 21:20:03 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-03-10 19:25:59 +0000 |
commit | b674e39d7224e228aacaa16beee718f059c31f09 (patch) | |
tree | c9ded8659ae68fa4bd004a62735bc1ba94871128 /src/panfrost | |
parent | c862234ab3002b5d257e7ea3d76cddad8ca461ea (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.c | 18 | ||||
-rw-r--r-- | src/panfrost/bifrost/compiler.h | 12 |
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 */ |