Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / intel / compiler / brw_reg_type.h
index a21bad5b158d91bef51b56a63fc9c38c6efa6fe3..a17c93ee90ed1eb6d41274c4001b3c6834201c70 100644 (file)
 #ifndef BRW_REG_TYPE_H
 #define BRW_REG_TYPE_H
 
+#include <stdbool.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#ifdef HAVE_FUNC_ATTRIBUTE_PURE
+#define ATTRIBUTE_PURE __attribute__((__pure__))
+#else
+#define ATTRIBUTE_PURE
+#endif
+
 enum brw_reg_file;
 struct gen_device_info;
 
@@ -37,6 +45,7 @@ struct gen_device_info;
  */
 enum PACKED brw_reg_type {
    /** Floating-point types: @{ */
+   BRW_REGISTER_TYPE_NF,
    BRW_REGISTER_TYPE_DF,
    BRW_REGISTER_TYPE_F,
    BRW_REGISTER_TYPE_HF,
@@ -59,21 +68,70 @@ enum PACKED brw_reg_type {
    BRW_REGISTER_TYPE_LAST = BRW_REGISTER_TYPE_UV
 };
 
+static inline bool
+brw_reg_type_is_floating_point(enum brw_reg_type type)
+{
+   switch (type) {
+   case BRW_REGISTER_TYPE_NF:
+   case BRW_REGISTER_TYPE_DF:
+   case BRW_REGISTER_TYPE_F:
+   case BRW_REGISTER_TYPE_HF:
+      return true;
+   default:
+      return false;
+   }
+}
+
+static inline bool
+brw_reg_type_is_integer(enum brw_reg_type type)
+{
+   switch (type) {
+   case BRW_REGISTER_TYPE_Q:
+   case BRW_REGISTER_TYPE_UQ:
+   case BRW_REGISTER_TYPE_D:
+   case BRW_REGISTER_TYPE_UD:
+   case BRW_REGISTER_TYPE_W:
+   case BRW_REGISTER_TYPE_UW:
+   case BRW_REGISTER_TYPE_B:
+   case BRW_REGISTER_TYPE_UB:
+      return true;
+   default:
+      return false;
+   }
+}
+
+#define INVALID_REG_TYPE    ((enum brw_reg_type)-1)
+#define INVALID_HW_REG_TYPE ((unsigned)-1)
+
 unsigned
 brw_reg_type_to_hw_type(const struct gen_device_info *devinfo,
                         enum brw_reg_file file, enum brw_reg_type type);
 
-enum brw_reg_type
+enum brw_reg_type ATTRIBUTE_PURE
 brw_hw_type_to_reg_type(const struct gen_device_info *devinfo,
                         enum brw_reg_file file, unsigned hw_type);
 
-#define brw_element_size(devinfo, inst, operand)                             \
-   brw_hw_reg_type_to_size(devinfo,                                          \
-                           brw_inst_ ## operand ## _reg_file(devinfo, inst), \
-                           brw_inst_ ## operand ## _reg_type(devinfo, inst))
 unsigned
-brw_hw_reg_type_to_size(const struct gen_device_info *devinfo,
-                        enum brw_reg_file file, unsigned hw_type);
+brw_reg_type_to_a16_hw_3src_type(const struct gen_device_info *devinfo,
+                                 enum brw_reg_type type);
+
+unsigned
+brw_reg_type_to_a1_hw_3src_type(const struct gen_device_info *devinfo,
+                                enum brw_reg_type type);
+
+enum brw_reg_type
+brw_a16_hw_3src_type_to_reg_type(const struct gen_device_info *devinfo,
+                                 unsigned hw_type);
+
+enum brw_reg_type
+brw_a1_hw_3src_type_to_reg_type(const struct gen_device_info *devinfo,
+                                unsigned hw_type, unsigned exec_type);
+
+unsigned
+brw_reg_type_to_size(enum brw_reg_type type);
+
+const char *
+brw_reg_type_to_letters(enum brw_reg_type type);
 
 #ifdef __cplusplus
 }