mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
i965/gen8: Add instruction compaction tables.
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
2faa1a414c
commit
190ce6b093
1 changed files with 150 additions and 0 deletions
|
|
@ -321,6 +321,146 @@ static const uint16_t gen7_src_index_table[32] = {
|
|||
0b010110001000
|
||||
};
|
||||
|
||||
static const uint32_t gen8_control_index_table[32] = {
|
||||
0b0000000000000000010,
|
||||
0b0000100000000000000,
|
||||
0b0000100000000000001,
|
||||
0b0000100000000000010,
|
||||
0b0000100000000000011,
|
||||
0b0000100000000000100,
|
||||
0b0000100000000000101,
|
||||
0b0000100000000000111,
|
||||
0b0000100000000001000,
|
||||
0b0000100000000001001,
|
||||
0b0000100000000001101,
|
||||
0b0000110000000000000,
|
||||
0b0000110000000000001,
|
||||
0b0000110000000000010,
|
||||
0b0000110000000000011,
|
||||
0b0000110000000000100,
|
||||
0b0000110000000000101,
|
||||
0b0000110000000000111,
|
||||
0b0000110000000001001,
|
||||
0b0000110000000001101,
|
||||
0b0000110000000010000,
|
||||
0b0000110000100000000,
|
||||
0b0001000000000000000,
|
||||
0b0001000000000000010,
|
||||
0b0001000000000000100,
|
||||
0b0001000000100000000,
|
||||
0b0010110000000000000,
|
||||
0b0010110000000010000,
|
||||
0b0011000000000000000,
|
||||
0b0011000000100000000,
|
||||
0b0101000000000000000,
|
||||
0b0101000000100000000
|
||||
};
|
||||
|
||||
static const uint32_t gen8_datatype_table[32] = {
|
||||
0b001000000000000000001,
|
||||
0b001000000000001000000,
|
||||
0b001000000000001000001,
|
||||
0b001000000000011000001,
|
||||
0b001000000000101011101,
|
||||
0b001000000010111011101,
|
||||
0b001000000011101000001,
|
||||
0b001000000011101000101,
|
||||
0b001000000011101011101,
|
||||
0b001000001000001000001,
|
||||
0b001000011000001000000,
|
||||
0b001000011000001000001,
|
||||
0b001000101000101000101,
|
||||
0b001000111000101000100,
|
||||
0b001000111000101000101,
|
||||
0b001011100011101011101,
|
||||
0b001011101011100011101,
|
||||
0b001011101011101011100,
|
||||
0b001011101011101011101,
|
||||
0b001011111011101011100,
|
||||
0b000000000010000001100,
|
||||
0b001000000000001011101,
|
||||
0b001000000000101000101,
|
||||
0b001000001000001000000,
|
||||
0b001000101000101000100,
|
||||
0b001000111000100000100,
|
||||
0b001001001001000001001,
|
||||
0b001010111011101011101,
|
||||
0b001011111011101011101,
|
||||
0b001001111001101001100,
|
||||
0b001001001001001001000,
|
||||
0b001001011001001001000
|
||||
};
|
||||
|
||||
static const uint16_t gen8_subreg_table[32] = {
|
||||
0b000000000000000,
|
||||
0b000000000000001,
|
||||
0b000000000001000,
|
||||
0b000000000001111,
|
||||
0b000000000010000,
|
||||
0b000000010000000,
|
||||
0b000000100000000,
|
||||
0b000000110000000,
|
||||
0b000001000000000,
|
||||
0b000001000010000,
|
||||
0b000001010000000,
|
||||
0b001000000000000,
|
||||
0b001000000000001,
|
||||
0b001000010000001,
|
||||
0b001000010000010,
|
||||
0b001000010000011,
|
||||
0b001000010000100,
|
||||
0b001000010000111,
|
||||
0b001000010001000,
|
||||
0b001000010001110,
|
||||
0b001000010001111,
|
||||
0b001000110000000,
|
||||
0b001000111101000,
|
||||
0b010000000000000,
|
||||
0b010000110000000,
|
||||
0b011000000000000,
|
||||
0b011110010000111,
|
||||
0b100000000000000,
|
||||
0b101000000000000,
|
||||
0b110000000000000,
|
||||
0b111000000000000,
|
||||
0b111000000011100
|
||||
};
|
||||
|
||||
static const uint16_t gen8_src_index_table[32] = {
|
||||
0b000000000000,
|
||||
0b000000000010,
|
||||
0b000000010000,
|
||||
0b000000010010,
|
||||
0b000000011000,
|
||||
0b000000100000,
|
||||
0b000000101000,
|
||||
0b000001001000,
|
||||
0b000001010000,
|
||||
0b000001110000,
|
||||
0b000001111000,
|
||||
0b001100000000,
|
||||
0b001100000010,
|
||||
0b001100001000,
|
||||
0b001100010000,
|
||||
0b001100010010,
|
||||
0b001100100000,
|
||||
0b001100101000,
|
||||
0b001100111000,
|
||||
0b001101000000,
|
||||
0b001101000010,
|
||||
0b001101001000,
|
||||
0b001101010000,
|
||||
0b001101100000,
|
||||
0b001101101000,
|
||||
0b001101110000,
|
||||
0b001101110001,
|
||||
0b001101111000,
|
||||
0b010001101000,
|
||||
0b010001101001,
|
||||
0b010001101010,
|
||||
0b010110001000
|
||||
};
|
||||
|
||||
static const uint32_t *control_index_table;
|
||||
static const uint32_t *datatype_table;
|
||||
static const uint16_t *subreg_table;
|
||||
|
|
@ -681,8 +821,18 @@ brw_init_compaction_tables(struct brw_context *brw)
|
|||
assert(gen7_datatype_table[ARRAY_SIZE(gen7_datatype_table) - 1] != 0);
|
||||
assert(gen7_subreg_table[ARRAY_SIZE(gen7_subreg_table) - 1] != 0);
|
||||
assert(gen7_src_index_table[ARRAY_SIZE(gen7_src_index_table) - 1] != 0);
|
||||
assert(gen8_control_index_table[ARRAY_SIZE(gen8_control_index_table) - 1] != 0);
|
||||
assert(gen8_datatype_table[ARRAY_SIZE(gen8_datatype_table) - 1] != 0);
|
||||
assert(gen8_subreg_table[ARRAY_SIZE(gen8_subreg_table) - 1] != 0);
|
||||
assert(gen8_src_index_table[ARRAY_SIZE(gen8_src_index_table) - 1] != 0);
|
||||
|
||||
switch (brw->gen) {
|
||||
case 8:
|
||||
control_index_table = gen8_control_index_table;
|
||||
datatype_table = gen8_datatype_table;
|
||||
subreg_table = gen8_subreg_table;
|
||||
src_index_table = gen8_src_index_table;
|
||||
break;
|
||||
case 7:
|
||||
control_index_table = gen7_control_index_table;
|
||||
datatype_table = gen7_datatype_table;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue