From 5defbd37b6d0c18801298edaa2eba3e9e09cd24d Mon Sep 17 00:00:00 2001 From: Homer Hsing Date: Mon, 17 Sep 2012 16:01:16 +0800 Subject: [PATCH] Pad NOP instructions instead of the ILLEGAL instruction for entry If a label is an entry, the assembler will pad empty instruction before the label until offset % 4 == 0. In the past, the ILLEGAL instructions are padded. It may raise exceptions. We use the NOP instructions instead. --- assembler/src/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assembler/src/main.c b/assembler/src/main.c index 49f201c..4e2117e 100644 --- a/assembler/src/main.c +++ b/assembler/src/main.c @@ -287,9 +287,10 @@ int main(int argc, char **argv) entry->inst_offset = inst_offset; entry1 = entry->next; if (entry1 && entry1->islabel && is_entry_point(entry1->string)) { - // insert empty instructions until (inst_offset+1) % 4 == 0 + // insert NOP instructions until (inst_offset+1) % 4 == 0 while (((inst_offset+1) % 4) != 0) { tmp_entry = calloc(sizeof(*tmp_entry), 1); + tmp_entry->instruction.header.opcode = BRW_OPCODE_NOP; entry->next = tmp_entry; tmp_entry->next = entry1; entry = tmp_entry; -- 2.7.4