assembler: Simplify get_subreg_address()

This function can only be called to resolve subreg_nr in direct mode
(there is an other function for the indirect case) and it makes no sense
to call it with an immediate operand.

Express those facts with asserts and simplify the logic.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
Damien Lespiau 2013-01-21 14:45:46 +00:00
parent 8322802acb
commit c716e2bdb4

View File

@ -2716,18 +2716,11 @@ static int get_subreg_address(GLuint regfile, GLuint type, GLuint subreg, GLuint
{
int unit_size = 1;
if (address_mode == BRW_ADDRESS_DIRECT) {
if (advanced_flag == 1) {
if ((regfile == BRW_GENERAL_REGISTER_FILE ||
regfile == BRW_MESSAGE_REGISTER_FILE ||
regfile == BRW_ARCHITECTURE_REGISTER_FILE)) {
unit_size = get_type_size(type);
}
}
} else {
unit_size = 1;
}
assert(address_mode == BRW_ADDRESS_DIRECT);
assert(regfile != BRW_IMMEDIATE_VALUE);
if (advanced_flag)
unit_size = get_type_size(type);
return subreg * unit_size;
}