mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
mips3: Removed depricated DRC flag and add a flag to disable intrablock branching
This commit is contained in:
parent
b8d165d17d
commit
7016f2a641
@ -974,11 +974,11 @@ COMPILER-SPECIFIC OPTIONS
|
||||
#define MIPS3DRC_STRICT_COP0 0x0002 /* validate all COP0 instructions */
|
||||
#define MIPS3DRC_STRICT_COP1 0x0004 /* validate all COP1 instructions */
|
||||
#define MIPS3DRC_STRICT_COP2 0x0008 /* validate all COP2 instructions */
|
||||
#define MIPS3DRC_FLUSH_PC 0x0010 /* flush the PC value before each memory access */
|
||||
#define MIPS3DRC_DISABLE_INTRABLOCK 0x0010 /* disable intrablock branching */
|
||||
#define MIPS3DRC_CHECK_OVERFLOWS 0x0020 /* actually check overflows on add/sub instructions */
|
||||
#define MIPS3DRC_ACCURATE_DIVZERO 0x0040 /* load correct values into HI/LO on integer divide-by-zero */
|
||||
|
||||
#define MIPS3DRC_COMPATIBLE_OPTIONS (MIPS3DRC_STRICT_VERIFY | MIPS3DRC_STRICT_COP1 | MIPS3DRC_STRICT_COP0 | MIPS3DRC_STRICT_COP2 | MIPS3DRC_FLUSH_PC)
|
||||
#define MIPS3DRC_COMPATIBLE_OPTIONS (MIPS3DRC_STRICT_VERIFY | MIPS3DRC_STRICT_COP1 | MIPS3DRC_STRICT_COP0 | MIPS3DRC_STRICT_COP2)
|
||||
#define MIPS3DRC_FASTEST_OPTIONS (0)
|
||||
|
||||
|
||||
|
@ -1247,6 +1247,8 @@ void mips3_device::generate_sequence_instruction(drcuml_block &block, compiler_s
|
||||
UML_CALLC(block, cfunc_printf_debug, this); // callc printf_debug
|
||||
}
|
||||
UML_EXH(block, *m_tlb_mismatch, 0); // exh tlb_mismatch,0
|
||||
// Unconditional tlb exception, no point going further
|
||||
return;
|
||||
}
|
||||
|
||||
/* validate our TLB entry at this PC; if we fail, we need to handle it */
|
||||
@ -1280,6 +1282,8 @@ void mips3_device::generate_sequence_instruction(drcuml_block &block, compiler_s
|
||||
UML_CALLC(block, cfunc_printf_debug, this); // callc printf_debug
|
||||
}
|
||||
UML_EXH(block, *m_tlb_mismatch, 0); // exh tlb_mismatch,0
|
||||
// Unconditional tlb exception, no point going further
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1331,7 +1335,7 @@ void mips3_device::generate_delay_slot_and_branch(drcuml_block &block, compiler_
|
||||
if (desc->targetpc != BRANCH_TARGET_DYNAMIC)
|
||||
{
|
||||
generate_update_cycles(block, compiler_temp, desc->targetpc, true); // <subtract cycles>
|
||||
if (desc->flags & OPFLAG_INTRABLOCK_BRANCH)
|
||||
if (!(m_drcoptions & MIPS3DRC_DISABLE_INTRABLOCK) && desc->flags & OPFLAG_INTRABLOCK_BRANCH)
|
||||
{
|
||||
UML_JMP(block, desc->targetpc | 0x80000000); // jmp desc->targetpc | 0x80000000
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user