- changed a bunch of manual address additions in string opcodes to leas
This commit is contained in:
parent
3477b22714
commit
69bc39914b
3 changed files with 12 additions and 27 deletions
|
|
@ -65,22 +65,18 @@ void JitCompiler::EmitSS()
|
|||
{
|
||||
EmitNullPointerThrow(A, X_WRITE_NIL);
|
||||
auto ptr = cc.newIntPtr();
|
||||
cc.mov(ptr, regA[A]);
|
||||
cc.add(ptr, konstd[C]);
|
||||
cc.lea(ptr, asmjit::x86::ptr(regA[A], konstd[C]));
|
||||
auto call = cc.call(ToMemAddress(reinterpret_cast<void*>(static_cast<void(*)(FString*, FString*)>(CallAssignString))),
|
||||
asmjit::FuncSignature2<void, FString*, FString*>(asmjit::CallConv::kIdHostCDecl));
|
||||
call->setArg(0, ptr);
|
||||
call->setArg(1, regS[B]);
|
||||
}
|
||||
|
||||
|
||||
void JitCompiler::EmitSS_R()
|
||||
{
|
||||
EmitNullPointerThrow(A, X_WRITE_NIL);
|
||||
auto ptr = cc.newIntPtr();
|
||||
cc.mov(ptr, regA[A]);
|
||||
auto tmp = cc.newIntPtr();
|
||||
cc.mov(tmp, regD[C]);
|
||||
cc.add(ptr, tmp);
|
||||
cc.lea(ptr, asmjit::x86::ptr(regA[A], regD[C]));
|
||||
auto call = cc.call(ToMemAddress(reinterpret_cast<void*>(static_cast<void(*)(FString*, FString*)>(CallAssignString))),
|
||||
asmjit::FuncSignature2<void, FString*, FString*>(asmjit::CallConv::kIdHostCDecl));
|
||||
call->setArg(0, ptr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue