#ifndef R600_ASM_H
#define R600_ASM_H
+#include "r600.h"
+
struct r600_vertex_element;
struct r600_context;
unsigned inst;
unsigned last;
unsigned is_op3;
- unsigned predicate;
+ unsigned execute_mask;
+ unsigned update_pred;
+ unsigned pred_sel;
unsigned bank_swizzle;
unsigned bank_swizzle_force;
unsigned omod;
unsigned addr;
};
+/* A value of CF_NATIVE in r600_bytecode_cf::inst means that this instruction
+ * has already been encoded, and the encoding has been stored in
+ * r600_bytecode::isa. This is used by the LLVM backend to emit CF instructions
+ * e.g. RAT_WRITE_* that can't be properly represented by struct
+ * r600_bytecode_cf.
+ */
+#define CF_NATIVE ~0
+
struct r600_bytecode_cf {
struct list_head list;
struct r600_bytecode_alu *curr_bs_head;
struct r600_bytecode_alu *prev_bs_head;
struct r600_bytecode_alu *prev2_bs_head;
+ unsigned isa[2];
};
#define FC_NONE 0