From 6231995e0cd6245e34a8da5e54c7d282e7534073 Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Sat, 9 Feb 2019 18:48:46 +0100 Subject: pcr/reicast-git: ancient and unmaintained. removed --- pcr/reicast-git/fix-dyna-constprop.patch | 63 -------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 pcr/reicast-git/fix-dyna-constprop.patch (limited to 'pcr/reicast-git/fix-dyna-constprop.patch') diff --git a/pcr/reicast-git/fix-dyna-constprop.patch b/pcr/reicast-git/fix-dyna-constprop.patch deleted file mode 100644 index c7c89b5e2..000000000 --- a/pcr/reicast-git/fix-dyna-constprop.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -Nur a/core/hw/sh4/dyna/shil.cpp b/core/hw/sh4/dyna/shil.cpp ---- a/core/hw/sh4/dyna/shil.cpp 2015-10-06 21:43:53.031336322 -0300 -+++ b/core/hw/sh4/dyna/shil.cpp 2015-10-06 21:45:06.558863627 -0300 -@@ -521,20 +521,39 @@ - rv[op->rd._reg]=op->rs1._imm; - } - -- //NOT WORKING -- //WE NEED PROPER PAGELOCKS -- if (op->op==shop_readm && op->rs1.is_imm() && op->rd.is_r32i() && op->rd._reg<16 && op->flags==0x4 && op->rs3.is_null()) -- { -- u32 baddr=blk->addr&0x0FFFFFFF; -+ if (0) { -+ //a more minimalistic but still broken approach for this. -+ //this is clearly a hack -+ if (op->op == shop_readm && op->rs1.is_imm() && IsOnRam(op->rs1.imm_value())) -+ { -+ u32 round = op->rs1.imm_value() & ~PAGE_MASK; -+ bool optmize_away = round == (blk->addr & ~PAGE_MASK) && (blk->addr & 0x007FFFFF) > 0x200000; -+ -+ if (optmize_away && op->flags == 4) { -+ u32 data = _vmem_ReadMem32(op->rs1.imm_value()); -+ op->op = shop_mov32; -+ op->rs1.type = FMT_IMM; -+ op->rs1._imm = data; -+ } -+ } -+ } - -- if (/*baddr==0xC158400 &&*/ blk->addr/PAGE_SIZE == op->rs1._imm/PAGE_SIZE) -+ if (0) { -+ //NOT WORKING -+ //WE NEED PROPER PAGELOCKS -+ if (op->op == shop_readm && op->rs1.is_imm() && op->rd.is_r32i() && op->rd._reg<16 && op->flags == 0x4 && op->rs3.is_null()) - { -- isi[op->rd._reg]=true; -- rv[op->rd._reg]= ReadMem32(op->rs1._imm); -- printf("IMM MOVE: %08X -> %08X\n",op->rs1._imm,rv[op->rd._reg]); -+ u32 baddr = blk->addr & 0x0FFFFFFF; - -- op->op=shop_mov32; -- op->rs1._imm=rv[op->rd._reg]; -+ if (/*baddr==0xC158400 &&*/ blk->addr / PAGE_SIZE == op->rs1._imm / PAGE_SIZE) -+ { -+ isi[op->rd._reg] = true; -+ rv[op->rd._reg] = ReadMem32(op->rs1._imm); -+ printf("IMM MOVE: %08X -> %08X\n", op->rs1._imm, rv[op->rd._reg]); -+ -+ op->op = shop_mov32; -+ op->rs1._imm = rv[op->rd._reg]; -+ } - } - } - } -@@ -925,7 +944,7 @@ - */ - if (settings.dynarec.unstable_opt) - sq_pref(blk); -- //constprop(blk); // crashes on ip -+ constprop(blk); // maybe it works w/o the readm parts? - #if HOST_CPU==CPU_X86 - // rdgrp(blk); - // wtgrp(blk); -- cgit v1.2.3