[subrepo]
        remote = https://github.com/pcercuei/lightrec.git
        branch = master
-       commit = 83b50408ae3eeeca408d3cc7ce05393e27dbe83b
-       parent = 537a9a8cd4c69a081dc1790099153a9a17da6e31
+       commit = 9d392272b26a4c9de71b0ccf8806c29fe4ced9ca
+       parent = 88e086706bbe2b1723072ad524bcf154c07eb9cb
        method = merge
        cmdver = 0.4.6
 
        const struct opcode *op = &block->opcode_list[offset],
                            *ds = get_delay_slot(block->opcode_list, offset);
        u32 cycles = state->cycles + lightrec_cycles_of_opcode(state->state, op->c);
+       bool has_ds = has_delay_slot(op->c);
 
        jit_note(__FILE__, __LINE__);
 
                update_ra_register(reg_cache, _jit, ra_reg, block->pc, link);
        }
 
-       if (has_delay_slot(op->c) &&
-           !op_flag_no_ds(op->flags) && !op_flag_local_branch(op->flags)) {
+       if (has_ds && !op_flag_no_ds(op->flags) && !op_flag_local_branch(op->flags)) {
                cycles += lightrec_cycles_of_opcode(state->state, ds->c);
 
                /* Recompile the delay slot */
                pr_debug("EOB: %u cycles\n", cycles);
        }
 
-       if (op_flag_load_delay(ds->flags)
+       if (has_ds && op_flag_load_delay(ds->flags)
            && opcode_is_load(ds->c) && !state->no_load_delay) {
                /* If the delay slot is a load opcode, its target register
                 * will be written after the first opcode of the target is