OrcVariable *var = compiler->vars + i;
if (var->name == NULL) continue;
+ if (var->update_type == 0) {
+ offset = 0;
+ } else if (var->update_type == 1) {
+ offset = (var->size << total_shift) >> 1;
+ } else {
+ offset = var->size << total_shift;
+ }
if (var->vartype == ORC_VAR_TYPE_SRC) {
- if (var->update_type == 0) {
- offset = 0;
- } else if (var->update_type == 1) {
- offset = (var->size << total_shift) >> 1;
- } else {
- offset = var->size << total_shift;
- }
for (j = iter_offset*offset; j < (iter_offset+1)*offset; j+=CACHE_LINE_SIZE)
orc_mips_emit_pref (compiler, 4 /* load-streamed */,
- var->ptr_register, iter_offset * offset + j*CACHE_LINE_SIZE);
+ var->ptr_register, j);
} else if (var->vartype == ORC_VAR_TYPE_DEST) {
for (j = iter_offset*offset; j < (iter_offset+1)*offset; j+=CACHE_LINE_SIZE)
orc_mips_emit_pref (compiler, 5 /* store-streamed */,
- var->ptr_register, iter_offset * offset + j*CACHE_LINE_SIZE);
+ var->ptr_register, j);
}
}
}
if (unroll)
iteration_per_loop = 1 << compiler->unroll_shift;
- orc_mips_emit_var_pref (compiler, 1, total_shift);
-
for (j=0; j<iteration_per_loop; j++) {
compiler->unroll_index = j;
for (i=0; i<compiler->n_insns; i++) {
compiler->loop_shift = loop_shift;
saved_alignment = orc_mips_get_alignment (compiler);
orc_mips_set_alignment (compiler, alignment);
- orc_mips_emit_var_pref (compiler, 0, compiler->loop_shift + unroll * compiler->unroll_shift);
orc_mips_emit_loop (compiler, unroll);
orc_mips_set_alignment (compiler, saved_alignment);
compiler->loop_shift = saved_loop_shift;