mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 02:32:36 +01:00
Remove unnecessary asmjit::imm_ptr
This commit is contained in:
parent
14cca55b50
commit
4704367382
@ -211,8 +211,6 @@ namespace asmjit
|
||||
static_cast<void>(args);
|
||||
#endif
|
||||
}
|
||||
|
||||
using imm_ptr = Imm;
|
||||
}
|
||||
|
||||
// Build runtime function with asmjit::X86Assembler
|
||||
|
@ -2260,17 +2260,17 @@ thread_base::native_entry thread_base::make_trampoline(u64(*entry)(thread_base*
|
||||
c.sub(x86::rsp, 0x20);
|
||||
|
||||
// Call entry point (TODO: support for detached threads missing?)
|
||||
c.call(imm_ptr(entry));
|
||||
c.call(entry);
|
||||
|
||||
// Call finalize, return if zero
|
||||
c.mov(args[0], x86::rax);
|
||||
c.call(imm_ptr(static_cast<native_entry(*)(u64)>(&finalize)));
|
||||
c.call(static_cast<native_entry(*)(u64)>(&finalize));
|
||||
c.test(x86::rax, x86::rax);
|
||||
c.jz(_ret);
|
||||
|
||||
// Otherwise, call it as an entry point with first arg = new current thread
|
||||
c.mov(x86::rbp, x86::rax);
|
||||
c.call(imm_ptr(thread_ctrl::get_current));
|
||||
c.call(thread_ctrl::get_current);
|
||||
c.mov(args[0], x86::rax);
|
||||
c.add(x86::rsp, 0x28);
|
||||
c.jmp(x86::rbp);
|
||||
|
@ -1918,7 +1918,7 @@ std::vector<ppu_intrp_func_t>& ppu_function_manager::access(bool ghc)
|
||||
c.mov(args[0], x86::rbp);
|
||||
c.mov(args[2].r32(), x86::dword_ptr(args[0], ::offset32(&ppu_thread::cia)));
|
||||
c.add(args[2], x86::qword_ptr(reinterpret_cast<u64>(&vm::g_base_addr)));
|
||||
c.jmp(imm_ptr(list[0]));
|
||||
c.jmp(list[0]);
|
||||
}),
|
||||
build_function_asm<ppu_intrp_func_t>("ppu_return", [](native_asm& c, auto& args)
|
||||
{
|
||||
@ -1928,7 +1928,7 @@ std::vector<ppu_intrp_func_t>& ppu_function_manager::access(bool ghc)
|
||||
c.mov(args[0], x86::rbp);
|
||||
c.mov(args[2].r32(), x86::dword_ptr(args[0], ::offset32(&ppu_thread::cia)));
|
||||
c.add(args[2], x86::qword_ptr(reinterpret_cast<u64>(&vm::g_base_addr)));
|
||||
c.jmp(imm_ptr(list[1]));
|
||||
c.jmp(list[1]);
|
||||
}),
|
||||
};
|
||||
#elif defined(ARCH_ARM64)
|
||||
@ -1955,7 +1955,7 @@ u32 ppu_function_manager::add_function(ppu_intrp_func_t function)
|
||||
c.mov(args[0], x86::rbp);
|
||||
c.mov(args[2].r32(), x86::dword_ptr(args[0], ::offset32(&ppu_thread::cia)));
|
||||
c.add(args[2], x86::qword_ptr(reinterpret_cast<u64>(&vm::g_base_addr)));
|
||||
c.jmp(imm_ptr(function));
|
||||
c.jmp(function);
|
||||
}));
|
||||
#elif defined(ARCH_ARM64)
|
||||
list2.push_back(function);
|
||||
|
@ -273,7 +273,7 @@ const auto ppu_recompiler_fallback_ghc = build_function_asm<void(*)(ppu_thread&
|
||||
using namespace asmjit;
|
||||
|
||||
c.mov(args[0], x86::rbp);
|
||||
c.jmp(imm_ptr(ppu_recompiler_fallback));
|
||||
c.jmp(ppu_recompiler_fallback);
|
||||
});
|
||||
#elif defined(ARCH_ARM64)
|
||||
const auto ppu_recompiler_fallback_ghc = &ppu_recompiler_fallback;
|
||||
|
@ -843,7 +843,7 @@ spu_function_t spu_recompiler::compile(spu_program&& _func)
|
||||
c->bind(label_diff);
|
||||
c->inc(SPU_OFF_64(block_failure));
|
||||
c->add(x86::rsp, 0x28);
|
||||
c->jmp(imm_ptr(spu_runtime::tr_dispatch));
|
||||
c->jmp(spu_runtime::tr_dispatch);
|
||||
}
|
||||
|
||||
for (auto&& work : ::as_rvalue(std::move(after)))
|
||||
@ -1014,7 +1014,7 @@ void spu_recompiler::branch_fixed(u32 target, bool absolute)
|
||||
c->and_(*addr, 0x3fffc);
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(&check_state));
|
||||
c->call(&check_state);
|
||||
c->jmp(local->second);
|
||||
|
||||
if (absolute)
|
||||
@ -1047,7 +1047,7 @@ void spu_recompiler::branch_fixed(u32 target, bool absolute)
|
||||
if (ppptr)
|
||||
{
|
||||
c->add(x86::rsp, 0x28);
|
||||
c->jmp(imm_ptr(ppptr));
|
||||
c->jmp(ppptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1092,7 +1092,7 @@ void spu_recompiler::branch_indirect(spu_opcode_t op, bool jt, bool ret)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->add(x86::rsp, 0x28);
|
||||
c->jmp(imm_ptr(+_throw));
|
||||
c->jmp(+_throw);
|
||||
|
||||
// Save addr in srr0 and disable interrupts
|
||||
c->bind(intr);
|
||||
@ -1159,7 +1159,7 @@ void spu_recompiler::branch_indirect(spu_opcode_t op, bool jt, bool ret)
|
||||
if (ppptr)
|
||||
{
|
||||
c->add(x86::rsp, 0x28);
|
||||
c->jmp(imm_ptr(ppptr));
|
||||
c->jmp(ppptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1230,9 +1230,9 @@ void spu_recompiler::fall(spu_opcode_t op)
|
||||
c->and_(*addr, 0x3fffc);
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), op.opcode);
|
||||
c->mov(*qw0, asmjit::imm_ptr(g_fxo->get<spu_interpreter_rt>().decode(op.opcode)));
|
||||
c->mov(*qw0, g_fxo->get<spu_interpreter_rt>().decode(op.opcode));
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(asmjit::imm_ptr(+gate));
|
||||
c->call(+gate);
|
||||
}
|
||||
|
||||
void spu_recompiler::UNK(spu_opcode_t op)
|
||||
@ -1250,7 +1250,7 @@ void spu_recompiler::UNK(spu_opcode_t op)
|
||||
c->mov(arg1->r32(), op.opcode);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->add(asmjit::x86::rsp, 0x28);
|
||||
c->jmp(asmjit::imm_ptr(+gate));
|
||||
c->jmp(+gate);
|
||||
m_pos = -1;
|
||||
}
|
||||
|
||||
@ -1278,7 +1278,7 @@ void spu_recompiler::STOP(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), op.opcode & 0x3fff);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_stop));
|
||||
c->call(spu_stop);
|
||||
c->align(AlignMode::kCode, 16);
|
||||
c->bind(ret);
|
||||
|
||||
@ -1366,7 +1366,7 @@ void spu_recompiler::RDCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_rdch));
|
||||
c->call(spu_rdch);
|
||||
c->jmp(ret);
|
||||
});
|
||||
|
||||
@ -1471,7 +1471,7 @@ void spu_recompiler::RDCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->lea(*arg1, SPU_OFF_128(gpr, op.rt));
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(asmjit::imm_ptr(g_cfg.core.spu_loop_detection ? +sub1 : +sub2));
|
||||
c->call(g_cfg.core.spu_loop_detection ? +sub1 : +sub2);
|
||||
return;
|
||||
}
|
||||
case SPU_RdEventMask:
|
||||
@ -1508,7 +1508,7 @@ void spu_recompiler::RDCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_rdch));
|
||||
c->call(spu_rdch);
|
||||
c->movd(x86::xmm0, *addr);
|
||||
c->pslldq(x86::xmm0, 12);
|
||||
c->movdqa(SPU_OFF_128(gpr, op.rt), x86::xmm0);
|
||||
@ -1616,7 +1616,7 @@ void spu_recompiler::RCHCNT(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_rchcnt));
|
||||
c->call(spu_rchcnt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2317,7 +2317,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_wrch));
|
||||
c->call(spu_wrch);
|
||||
c->jmp(ret);
|
||||
});
|
||||
|
||||
@ -2344,7 +2344,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), MFC_WrTagMask);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_wrch));
|
||||
c->call(spu_wrch);
|
||||
c->jmp(ret);
|
||||
});
|
||||
|
||||
@ -2368,7 +2368,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_wrch));
|
||||
c->call(spu_wrch);
|
||||
c->jmp(ret);
|
||||
|
||||
c->bind(zero);
|
||||
@ -2434,7 +2434,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->and_(*addr, 0x3fffc);
|
||||
c->mov(SPU_OFF_32(pc), *addr);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_wrch_mfc));
|
||||
c->call(spu_wrch_mfc);
|
||||
return;
|
||||
}
|
||||
case MFC_WrListStallAck:
|
||||
@ -2459,7 +2459,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->btr(SPU_OFF_32(ch_stall_mask), arg1->r32());
|
||||
c->jnc(ret);
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(+sub));
|
||||
c->call(+sub);
|
||||
c->bind(ret);
|
||||
return;
|
||||
}
|
||||
@ -2471,7 +2471,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
};
|
||||
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(+sub));
|
||||
c->call(+sub);
|
||||
c->mov(qw0->r32(), SPU_OFF_32(gpr, op.rt, &v128::_u32, 3));
|
||||
c->mov(SPU_OFF_32(ch_dec_value), qw0->r32());
|
||||
return;
|
||||
@ -2501,7 +2501,7 @@ void spu_recompiler::WRCH(spu_opcode_t op)
|
||||
c->mov(arg1->r32(), +op.ra);
|
||||
c->mov(qw0->r32(), SPU_OFF_32(gpr, op.rt, &v128::_u32, 3));
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(imm_ptr(spu_wrch));
|
||||
c->call(spu_wrch);
|
||||
}
|
||||
|
||||
void spu_recompiler::BIZ(spu_opcode_t op)
|
||||
@ -2652,7 +2652,7 @@ void spu_recompiler::BISLED(spu_opcode_t op)
|
||||
|
||||
asmjit::Label branch_label = c->newLabel();
|
||||
c->mov(*arg0, *cpu);
|
||||
c->call(asmjit::imm_ptr(+get_events));
|
||||
c->call(+get_events);
|
||||
c->test(*addr, 1);
|
||||
c->jne(branch_label);
|
||||
|
||||
@ -2792,7 +2792,7 @@ void spu_recompiler::ROTQBYBI(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.rldq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.rldq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0xf << 3);
|
||||
c->pshufb(va, asmjit::x86::oword_ptr(*qw0, addr->r64(), 1));
|
||||
@ -2807,7 +2807,7 @@ void spu_recompiler::ROTQMBYBI(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.srdq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.srdq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0x1f << 3);
|
||||
c->pshufb(va, asmjit::x86::oword_ptr(*qw0, addr->r64(), 1));
|
||||
@ -2822,7 +2822,7 @@ void spu_recompiler::SHLQBYBI(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.sldq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.sldq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0x1f << 3);
|
||||
c->pshufb(va, asmjit::x86::oword_ptr(*qw0, addr->r64(), 1));
|
||||
@ -2945,7 +2945,7 @@ void spu_recompiler::ROTQBY(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.rldq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.rldq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0xf);
|
||||
c->shl(*addr, 4);
|
||||
@ -2961,7 +2961,7 @@ void spu_recompiler::ROTQMBY(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.srdq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.srdq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0x1f);
|
||||
c->shl(*addr, 4);
|
||||
@ -2977,7 +2977,7 @@ void spu_recompiler::SHLQBY(spu_opcode_t op)
|
||||
}
|
||||
|
||||
const XmmLink& va = XmmGet(op.ra, XmmType::Int);
|
||||
c->mov(*qw0, asmjit::imm_ptr(+g_spu_imm.sldq_pshufb));
|
||||
c->mov(*qw0, +g_spu_imm.sldq_pshufb);
|
||||
c->mov(*addr, SPU_OFF_32(gpr, op.rb, &v128::_u32, 3));
|
||||
c->and_(*addr, 0x1f);
|
||||
c->shl(*addr, 4);
|
||||
|
@ -207,7 +207,7 @@ DECLARE(spu_runtime::g_gateway) = built_function<spu_function_t>("spu_gateway",
|
||||
c.vzeroupper();
|
||||
}
|
||||
|
||||
c.call(asmjit::imm_ptr(spu_runtime::tr_all));
|
||||
c.call(spu_runtime::tr_all);
|
||||
|
||||
if (utils::has_avx())
|
||||
{
|
||||
|
@ -269,17 +269,17 @@ namespace
|
||||
|
||||
if (utils::has_ssse3())
|
||||
{
|
||||
c.jmp(asmjit::imm_ptr(©_data_swap_u32_ssse3<Compare>));
|
||||
c.jmp(©_data_swap_u32_ssse3<Compare>);
|
||||
return;
|
||||
}
|
||||
|
||||
c.jmp(asmjit::imm_ptr(©_data_swap_u32_naive<Compare>));
|
||||
c.jmp(©_data_swap_u32_naive<Compare>);
|
||||
}
|
||||
#elif defined(ARCH_ARM64)
|
||||
template <bool Compare>
|
||||
void build_copy_data_swap_u32(native_asm& c, native_args& args)
|
||||
{
|
||||
c.b(asmjit::imm_ptr(©_data_swap_u32_naive<Compare>));
|
||||
c.b(©_data_swap_u32_naive<Compare>);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user