X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=deps%2Flightrec%2Femitter.c;h=0cf75c39a28a760a889ce80b2958826d910f0c3a;hb=9361a5aa4fef73e06bc78b7c462eb28a7d12e3d0;hp=b09dc94927b810f20ac125ef52adfa2067febc62;hpb=d16005f843cd28ae90f091bd4e39a90b355e1d45;p=pcsx_rearmed.git diff --git a/deps/lightrec/emitter.c b/deps/lightrec/emitter.c index b09dc949..0cf75c39 100644 --- a/deps/lightrec/emitter.c +++ b/deps/lightrec/emitter.c @@ -900,7 +900,7 @@ static void rec_store_direct(const struct block *block, const struct opcode *op, struct lightrec_state *state = block->state; struct regcache *reg_cache = state->reg_cache; jit_state_t *_jit = block->_jit; - jit_node_t *to_not_ram, *to_end; + jit_node_t *to_not_ram, *to_end = 0; u8 tmp, tmp2, tmp3, rs, rt; jit_note(__FILE__, __LINE__); @@ -1016,7 +1016,7 @@ static void rec_load_direct(const struct block *block, const struct opcode *op, struct lightrec_state *state = block->state; struct regcache *reg_cache = state->reg_cache; jit_state_t *_jit = block->_jit; - jit_node_t *to_not_ram, *to_not_bios, *to_end, *to_end2; + jit_node_t *to_not_ram, *to_not_bios = 0, *to_end, *to_end2; u8 tmp, rs, rt, addr_reg; s16 imm; @@ -1250,7 +1250,8 @@ static void rec_mtc(const struct block *block, const struct opcode *op, u32 pc) lightrec_regcache_mark_live(reg_cache, _jit); - if (op->i.op == OP_CP0 && (op->r.rd == 12 || op->r.rd == 13)) + if (op->i.op == OP_CP0 && !(op->flags & LIGHTREC_NO_DS) && + (op->r.rd == 12 || op->r.rd == 13)) lightrec_emit_end_of_block(block, op, pc, -1, pc + 4, 0, 0, true); } @@ -1427,7 +1428,7 @@ static void rec_meta_sync(const struct block *block, op->offset << 2); target = &state->targets[state->nb_targets++]; target->offset = op->offset; - target->label = jit_label(); + target->label = jit_indirect(); } static const lightrec_rec_func_t rec_standard[64] = {