Misc: Fix ARM32 build (again)
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
|
||||
#include "util/page_fault_handler.h"
|
||||
|
||||
#include "common/align.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/error.h"
|
||||
#include "common/intrin.h"
|
||||
@ -456,15 +457,15 @@ CPU::CodeCache::Block* CPU::CodeCache::CreateBlock(u32 pc, const BlockInstructio
|
||||
s_blocks.erase(it);
|
||||
|
||||
block->~Block();
|
||||
std::free(block);
|
||||
Common::AlignedFree(block);
|
||||
block = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (!block)
|
||||
{
|
||||
block =
|
||||
static_cast<Block*>(std::malloc(sizeof(Block) + (sizeof(Instruction) * size) + (sizeof(InstructionInfo) * size)));
|
||||
block = static_cast<Block*>(Common::AlignedMalloc(
|
||||
sizeof(Block) + (sizeof(Instruction) * size) + (sizeof(InstructionInfo) * size), alignof(Block)));
|
||||
Assert(block);
|
||||
new (block) Block();
|
||||
s_blocks.push_back(block);
|
||||
@ -734,7 +735,7 @@ void CPU::CodeCache::ClearBlocks()
|
||||
for (Block* block : s_blocks)
|
||||
{
|
||||
block->~Block();
|
||||
std::free(block);
|
||||
Common::AlignedFree(block);
|
||||
}
|
||||
s_blocks.clear();
|
||||
|
||||
|
||||
@ -148,7 +148,7 @@ void CPU::Recompiler::armEmitFarLoad(vixl::aarch32::Assembler* armAsm, const vix
|
||||
}
|
||||
|
||||
void CPU::Recompiler::armEmitFarStore(vixl::aarch32::Assembler* armAsm, const vixl::aarch32::Register& reg,
|
||||
const void* addr, const vixl::aarch64::Register& tempreg)
|
||||
const void* addr, const vixl::aarch32::Register& tempreg)
|
||||
{
|
||||
armMoveAddressToReg(armAsm, tempreg, addr);
|
||||
armAsm->str(reg, vixl::aarch32::MemOperand(tempreg));
|
||||
@ -1931,12 +1931,12 @@ void CodeGenerator::EmitICacheCheckAndUpdate()
|
||||
{
|
||||
if (m_block->HasFlag(CodeCache::BlockFlags::NeedsDynamicFetchTicks))
|
||||
{
|
||||
armEmitFarLoad(m_emit, RARG2, GetFetchMemoryAccessTimePtr());
|
||||
m_emit->ldr(RARG1, a32::MemOperand(GetCPUPtrReg(), OFFSETOF(State, pending_ticks)));
|
||||
m_emit->Mov(RARG3, m_block->size);
|
||||
m_emit->mul(RARG2, RARG2, RARG3);
|
||||
m_emit->add(RARG1, RARG1, RARG2);
|
||||
m_emit->str(RARG1, a32::MemOperand(GetCPUPtrReg(), OFFSETOF(State, pending_ticks)));
|
||||
armEmitFarLoad(m_emit, GetHostReg32(RARG2), GetFetchMemoryAccessTimePtr());
|
||||
m_emit->ldr(GetHostReg32(RARG1), a32::MemOperand(GetCPUPtrReg(), OFFSETOF(State, pending_ticks)));
|
||||
m_emit->Mov(GetHostReg32(RARG3), m_block->size);
|
||||
m_emit->mul(GetHostReg32(RARG2), GetHostReg32(RARG2), GetHostReg32(RARG3));
|
||||
m_emit->add(GetHostReg32(RARG1), GetHostReg32(RARG1), GetHostReg32(RARG2));
|
||||
m_emit->str(GetHostReg32(RARG1), a32::MemOperand(GetCPUPtrReg(), OFFSETOF(State, pending_ticks)));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user