mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 14:31:24 +12:00
35 lines
776 B
C++
35 lines
776 B
C++
#include "stdafx.h"
|
|
#include "Emu/Memory/Memory.h"
|
|
#include "Emu/System.h"
|
|
#include "Emu/SysCalls/Modules.h"
|
|
#include "Emu/Cell/PPUInstrTable.h"
|
|
|
|
namespace vm { using namespace ps3; }
|
|
|
|
extern Module sys_libc;
|
|
|
|
namespace sys_libc_func
|
|
{
|
|
void memcpy(vm::ptr<void> dst, vm::cptr<void> src, u32 size)
|
|
{
|
|
sys_libc.Log("memcpy(dst=*0x%x, src=*0x%x, size=0x%x)", dst, src, size);
|
|
|
|
::memcpy(dst.get_ptr(), src.get_ptr(), size);
|
|
}
|
|
}
|
|
|
|
Module sys_libc("sys_libc", []()
|
|
{
|
|
using namespace PPU_instr;
|
|
|
|
REG_SUB(sys_libc, sys_libc_func, memcpy,
|
|
SP_I(CMPLDI(cr7, r5, 7)),
|
|
SP_I(CLRLDI(r3, r3, 32)),
|
|
SP_I(CLRLDI(r4, r4, 32)),
|
|
SP_I(MR(r11, r3)),
|
|
SP_I(BGT(cr7, XXX & 0xff)),
|
|
SP_I(CMPDI(r5, 0)),
|
|
OPT_SP_I(MR(r9, r3)),
|
|
{ SPET_MASKED_OPCODE, 0x4d820020, 0xffffffff },
|
|
);
|
|
});
|