gallium: Remove loop register file.

It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is
just like another address register now.
This commit is contained in:
José Fonseca 2010-05-03 10:53:32 +01:00
parent e27983bc08
commit d288698a76
9 changed files with 6 additions and 44 deletions

View File

@ -100,7 +100,6 @@ static const char *file_names[TGSI_FILE_COUNT] =
"SAMP",
"ADDR",
"IMM",
"LOOP",
"PRED",
"SV"
};

View File

@ -1346,13 +1346,6 @@ store_dest(struct tgsi_exec_machine *mach,
dst = &mach->Addrs[index].xyzw[chan_index];
break;
case TGSI_FILE_LOOP:
assert(reg->Register.Index == 0);
assert(mach->LoopCounterStackTop > 0);
assert(chan_index == CHAN_X);
dst = &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[chan_index];
break;
case TGSI_FILE_PREDICATE:
index = reg->Register.Index;
assert(index < TGSI_EXEC_NUM_PREDS);

View File

@ -299,10 +299,6 @@ struct tgsi_exec_machine
uint LoopLabelStack[TGSI_EXEC_MAX_LOOP_NESTING];
int LoopLabelStackTop;
/** Loop counter stack (x = index, y = counter, z = step) */
struct tgsi_exec_vector LoopCounterStack[TGSI_EXEC_MAX_LOOP_NESTING];
int LoopCounterStackTop;
/** Loop continue mask stack (see comments in tgsi_exec.c) */
uint ContStack[TGSI_EXEC_MAX_LOOP_NESTING];
int ContStackTop;

View File

@ -235,8 +235,8 @@ static const char *file_names[TGSI_FILE_COUNT] =
"SAMP",
"ADDR",
"IMM",
"LOOP",
"PRED"
"PRED",
"SV"
};
static boolean

View File

@ -278,7 +278,6 @@ static const char *file_names[TGSI_FILE_COUNT] =
"SAMP",
"ADDR",
"IMM",
"LOOP",
"PRED",
"SV"
};

View File

@ -74,7 +74,6 @@ struct ureg_tokens {
#define UREG_MAX_IMMEDIATE 32
#define UREG_MAX_TEMP 256
#define UREG_MAX_ADDR 2
#define UREG_MAX_LOOP 1
#define UREG_MAX_PRED 1
struct const_decl {
@ -151,7 +150,6 @@ struct ureg_program
unsigned nr_addrs;
unsigned nr_preds;
unsigned nr_loops;
unsigned nr_instructions;
struct ureg_tokens domain[2];
@ -537,19 +535,6 @@ struct ureg_dst ureg_DECL_address( struct ureg_program *ureg )
return ureg_dst_register( TGSI_FILE_ADDRESS, 0 );
}
/* Allocate a new loop register.
*/
struct ureg_dst
ureg_DECL_loop(struct ureg_program *ureg)
{
if (ureg->nr_loops < UREG_MAX_LOOP) {
return ureg_dst_register(TGSI_FILE_LOOP, ureg->nr_loops++);
}
assert(0);
return ureg_dst_register(TGSI_FILE_LOOP, 0);
}
/* Allocate a new predicate register.
*/
struct ureg_dst
@ -1356,13 +1341,6 @@ static void emit_decls( struct ureg_program *ureg )
0, ureg->nr_addrs );
}
if (ureg->nr_loops) {
emit_decl_range(ureg,
TGSI_FILE_LOOP,
0,
ureg->nr_loops);
}
if (ureg->nr_preds) {
emit_decl_range(ureg,
TGSI_FILE_PREDICATE,

View File

@ -230,9 +230,6 @@ ureg_release_temporary( struct ureg_program *ureg,
struct ureg_dst
ureg_DECL_address( struct ureg_program * );
struct ureg_dst
ureg_DECL_loop( struct ureg_program * );
struct ureg_dst
ureg_DECL_predicate(struct ureg_program *);

View File

@ -202,7 +202,8 @@ static const char *file_strings[TGSI_FILE_COUNT+1] = {
"SAMPLER",
"ADDR",
"IMM",
"LOOP",
"PRED",
"SV",
"PAYLOAD"
};

View File

@ -73,9 +73,8 @@ enum tgsi_file_type {
TGSI_FILE_SAMPLER =5,
TGSI_FILE_ADDRESS =6,
TGSI_FILE_IMMEDIATE =7,
TGSI_FILE_LOOP =8,
TGSI_FILE_PREDICATE =9,
TGSI_FILE_SYSTEM_VALUE =10,
TGSI_FILE_PREDICATE =8,
TGSI_FILE_SYSTEM_VALUE =9,
TGSI_FILE_COUNT /**< how many TGSI_FILE_ types */
};