summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_compiler.h
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-06-05 13:16:50 +0200
committerJerome Glisse <jglisse@redhat.com>2010-06-05 17:13:25 +0200
commit0db388eedd5a537e783faaa1ba1a1d101d20e647 (patch)
treefc4ffbd99032104fc67cc5546b5a13366b52290d /src/gallium/drivers/r600/r600_compiler.h
parent7643f45b107c9b4e6cf57711909791beaaf79ba2 (diff)
r600g: split instruction into scalar
Split instruction into scalar in core compiler this simplify the way we translate the instruction in latter stage. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'src/gallium/drivers/r600/r600_compiler.h')
-rw-r--r--src/gallium/drivers/r600/r600_compiler.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/gallium/drivers/r600/r600_compiler.h b/src/gallium/drivers/r600/r600_compiler.h
index 64dab5000b..3de19970c3 100644
--- a/src/gallium/drivers/r600/r600_compiler.h
+++ b/src/gallium/drivers/r600/r600_compiler.h
@@ -71,7 +71,7 @@ struct c_vector {
#define C_SWIZZLE_W 3
#define C_SWIZZLE_0 4
#define C_SWIZZLE_1 5
-#define C_SWIZZLE_D 6 /**< discard */
+#define C_SWIZZLE_D 6
#define C_FILE_NULL 0
#define C_FILE_CONSTANT 1
@@ -247,18 +247,21 @@ struct c_vector {
struct c_operand {
struct c_vector *vector;
- unsigned swizzle[4];
- unsigned flag[4];
+ unsigned swizzle;
+ unsigned flag;
};
-struct c_instruction {
- struct c_instruction *next, *prev;
- unsigned opcode;
+struct c_op {
unsigned ninput;
struct c_operand input[3];
struct c_operand output;
- unsigned write_mask;
- void *backend;
+ unsigned opcode;
+};
+
+struct c_instruction {
+ struct c_instruction *next, *prev;
+ unsigned nop;
+ struct c_op op[5];
};
struct c_node;