freedreno/rnn: Make rnn_decode_enum() respect variants
[mesa.git] / src / freedreno / rnn / headergen2.c
index 34a49a01ba3c085101096a38c2f60462d481b605..d5a3eb7562ee98c671063336c54dd9bdf624e102 100644 (file)
@@ -28,7 +28,6 @@
 /* modified version of headergen which uses enums and inline fxns for
  * type safety.. based on original headergen
  */
-#define _GNU_SOURCE
 
 #include "rnn.h"
 #include "util.h"
@@ -159,6 +158,8 @@ static void printtypeinfo (struct rnntypeinfo *ti, struct rnnbitfield *bf,
                case RNN_TTYPE_ENUM:
                        asprintf(&typename, "enum %s", ti->name);
                        break;
+               default:
+                       break;
                }
        }
 
@@ -178,11 +179,11 @@ static void printtypeinfo (struct rnntypeinfo *ti, struct rnnbitfield *bf,
                if ((ti->minvalid || ti->maxvalid || ti->alignvalid) && !no_asserts) {
                        fprintf(dst, "\tassert(1");
                        if (ti->minvalid)
-                               fprintf(dst, " && (val >= %lu)", ti->min);
+                               fprintf(dst, " && (val >= %"PRIu64")", ti->min);
                        if (ti->maxvalid)
-                               fprintf(dst, " && (val <= %lu)", ti->max);
+                               fprintf(dst, " && (val <= %"PRIu64")", ti->max);
                        if (ti->alignvalid)
-                               fprintf(dst, " && !(val %% %lu)", ti->align);
+                               fprintf(dst, " && !(val %% %"PRIu64")", ti->align);
                        fprintf(dst, ");\n");
                }
 
@@ -288,7 +289,7 @@ static void printdelem (struct rnndelem *elem, uint64_t offset) {
                                                        fprintf(dst, "%d", i);
                                                }
                                                if (elem->offsets) {
-                                                       fprintf(dst, ": return 0x%08lx;\n", elem->offsets[i]);
+                                                       fprintf(dst, ": return 0x%08"PRIx64";\n", elem->offsets[i]);
                                                } else {
                                                        fprintf(dst, ": return (%s);\n", elem->doffsets[i]);
                                                }
@@ -469,10 +470,10 @@ int main(int argc, char **argv) {
                                fprintf(dst, "enum %s {\n", db->enums[i]->name);
                        }
                        if (0xffff0000 & db->enums[i]->vals[j]->value)
-                               fprintf(dst, "\t%s = 0x%08lx,\n", db->enums[i]->vals[j]->name,
+                               fprintf(dst, "\t%s = 0x%08"PRIx64",\n", db->enums[i]->vals[j]->name,
                                                db->enums[i]->vals[j]->value);
                        else
-                               fprintf(dst, "\t%s = %lu,\n", db->enums[i]->vals[j]->name,
+                               fprintf(dst, "\t%s = %"PRIu64",\n", db->enums[i]->vals[j]->name,
                                                db->enums[i]->vals[j]->value);
                }
                if (dst) {