assembler: Make explicit that labels are part of the instructions list

The output of the parsing is a list of struct brw_program_instruction.
These instructions can be either GEN instructions aka struct
brw_instruction or labels. To make this more explicit we now have a type
to test to determine which instruction we are dealing with.

This will also allow to to pull the relocation bits into struct
brw_program_instruction instead of having them in the structure
representing the opcodes.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
Damien Lespiau
2013-01-21 19:28:41 +00:00
parent 73d58edab9
commit a45a47183a
4 changed files with 73 additions and 38 deletions
+4 -3
View File
@@ -119,7 +119,8 @@ static void brw_program_add_instruction(struct brw_program *p,
struct brw_program_instruction *list_entry;
list_entry = calloc(sizeof(struct brw_program_instruction), 1);
list_entry->instruction = *instruction;
list_entry->type = GEN4ASM_INSTRUCTION_GEN;
list_entry->instruction.gen = *instruction;
brw_program_append_entry(p, list_entry);
}
@@ -128,8 +129,8 @@ static void brw_program_add_label(struct brw_program *p, const char *label)
struct brw_program_instruction *list_entry;
list_entry = calloc(sizeof(struct brw_program_instruction), 1);
list_entry->string = strdup(label);
list_entry->islabel = 1;
list_entry->type = GEN4ASM_INSTRUCTION_LABEL;
list_entry->instruction.label.name = strdup(label);
brw_program_append_entry(p, list_entry);
}