r600: add assembler support for literal(inline) constants
[mesa.git] / src / mesa / drivers / dri / r600 / r700_assembler.h
index cfa2610a55cc9f169fb194d16f2d97ac14a3e282..3fe65654ca0323a9b9f19ac60c0f5a33a7fc36c4 100644 (file)
@@ -114,8 +114,9 @@ typedef struct PVSDSTtag
 
 typedef struct PVSINSTtag
 {
-    BITS literal      :2; 
+    BITS literal_slots      :2; 
     BITS SaturateMode :2; 
+    BITS index_mode   :3;
 } PVSINST;
 
 typedef struct PVSSRCtag 
@@ -344,6 +345,7 @@ typedef struct r700_AssemblerBase
        PVSDWORD D;
     PVSDWORD D2;
        PVSDWORD S[3];
+        PVSDWORD C[4];
 
        unsigned int uLastPosUpdate;
        unsigned int last_cond_register;
@@ -529,10 +531,7 @@ GLboolean check_vector(r700_AssemblerBase* pAsm,
 GLboolean assemble_alu_instruction(r700_AssemblerBase *pAsm);
 GLboolean next_ins(r700_AssemblerBase *pAsm);
 
-GLboolean next_ins2(r700_AssemblerBase *pAsm);
-GLboolean assemble_alu_instruction2(r700_AssemblerBase *pAsm);
-
-/* TODO : merge next_ins/2/literal, assemble_alu_instruction/2/literal */
+/* TODO : merge next_ins/literal, assemble_alu_instruction/literal */
 GLboolean next_ins_literal(r700_AssemblerBase *pAsm, GLfloat * pLiteral);
 GLboolean assemble_alu_instruction_literal(r700_AssemblerBase *pAsm, GLfloat * pLiteral);