.branch_cond = clause->branch_conditional,
.datareg_writebarrier = clause->data_register_write_barrier,
.datareg = clause->data_register,
- .scoreboard_deps = clause->dependencies,
+ .scoreboard_deps = next ? next->dependencies : 0,
.scoreboard_index = clause->scoreboard_id,
.clause_type = clause->clause_type,
.next_clause_type = next ? next->clause_type : 0,
if (is_first)
is_first = false;
- else
+ else {
+ /* Rule: first instructions cannot have write barriers */
u->dependencies |= (1 << last_id);
+ u->data_register_write_barrier = true;
+ }
ids = ids & 1;
last_id = u->scoreboard_id;
u->back_to_back = true;
- /* Rule: first instructions cannot have write barriers */
- if (!is_first)
- u->data_register_write_barrier = true;
-
u->constant_count = 1;
u->constants[0] = ins->constant.u64;