mirror of https://github.com/PCSX2/pcsx2.git
pcsx2-ee: Use a single constructor for BaseBlockArray
Directly reserve the array instead to rely on the reserve function. + add a couple of comments
This commit is contained in:
parent
b215885188
commit
9c75c84e83
|
@ -31,14 +31,15 @@ struct BASEBLOCK
|
||||||
// extra block info (only valid for start of fn)
|
// extra block info (only valid for start of fn)
|
||||||
struct BASEBLOCKEX
|
struct BASEBLOCKEX
|
||||||
{
|
{
|
||||||
u32 startpc;
|
u32 startpc;
|
||||||
uptr fnptr;
|
uptr fnptr;
|
||||||
u16 size; // size in dwords
|
u16 size; // The size in dwords (equivalent to the number of instructions)
|
||||||
u16 x86size;
|
u16 x86size; // The size in byte of the translated x86 instructions
|
||||||
|
|
||||||
#ifdef PCSX2_DEVBUILD
|
#ifdef PCSX2_DEVBUILD
|
||||||
u32 visited; // number of times called
|
// Could be useful to instrument the block
|
||||||
u64 ltime; // regs it assumes to have set already
|
//u32 visited; // number of times called
|
||||||
|
//u64 ltime; // regs it assumes to have set already
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -60,11 +61,6 @@ class BaseBlockArray {
|
||||||
pxAssert(blocks != NULL);
|
pxAssert(blocks != NULL);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
BaseBlockArray() : _Reserved(0),
|
|
||||||
_Size(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
~BaseBlockArray()
|
~BaseBlockArray()
|
||||||
{
|
{
|
||||||
if(blocks) {
|
if(blocks) {
|
||||||
|
@ -75,10 +71,7 @@ public:
|
||||||
BaseBlockArray (s32 size) : _Reserved(0),
|
BaseBlockArray (s32 size) : _Reserved(0),
|
||||||
_Size(0), blocks(NULL)
|
_Size(0), blocks(NULL)
|
||||||
{
|
{
|
||||||
if(size > 0) {
|
reserve(size);
|
||||||
resize(size);
|
|
||||||
}
|
|
||||||
_Reserved = size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BASEBLOCKEX *insert(u32 startpc, uptr fnptr)
|
BASEBLOCKEX *insert(u32 startpc, uptr fnptr)
|
||||||
|
@ -164,16 +157,14 @@ protected:
|
||||||
public:
|
public:
|
||||||
BaseBlocks() :
|
BaseBlocks() :
|
||||||
recompiler(0)
|
recompiler(0)
|
||||||
, blocks(0)
|
, blocks(0x4000)
|
||||||
{
|
{
|
||||||
blocks.reserve(0x4000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseBlocks(uptr recompiler_) :
|
BaseBlocks(uptr recompiler_) :
|
||||||
recompiler(recompiler_),
|
recompiler(recompiler_),
|
||||||
blocks(0)
|
blocks(0x4000)
|
||||||
{
|
{
|
||||||
blocks.reserve(0x4000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetJITCompile( void (*recompiler_)() )
|
void SetJITCompile( void (*recompiler_)() )
|
||||||
|
|
|
@ -861,6 +861,8 @@ void R5900::Dynarec::OpcodeImpl::recSYSCALL()
|
||||||
CMP32ItoM((uptr)&cpuRegs.pc, pc);
|
CMP32ItoM((uptr)&cpuRegs.pc, pc);
|
||||||
j8Ptr[0] = JE8(0);
|
j8Ptr[0] = JE8(0);
|
||||||
ADD32ItoM((uptr)&cpuRegs.cycle, eeScaleBlockCycles());
|
ADD32ItoM((uptr)&cpuRegs.cycle, eeScaleBlockCycles());
|
||||||
|
// Note: technically the address is 0x8000_0180 (or 0x180)
|
||||||
|
// (if CPU is booted)
|
||||||
xJMP( DispatcherReg );
|
xJMP( DispatcherReg );
|
||||||
x86SetJ8(j8Ptr[0]);
|
x86SetJ8(j8Ptr[0]);
|
||||||
//g_branch = 2;
|
//g_branch = 2;
|
||||||
|
|
Loading…
Reference in New Issue