Conversation
|
The unit test still seems to be failing. It doesn't seem to have access to the runtime as it complains about missing |
i think a stub implementation needs to be added here similar to how we have implementations for |
202f8c9 to
44a917a
Compare
| break; | ||
|
|
||
| case SyncHyperCall::kPPCSysCall: | ||
| mem = __remill_ppc_syscall(mem); |
There was a problem hiding this comment.
Unfortunately, I don't think we can implement this with inline asm like we've been doing for the x86 and ARM syscalls. The GCC/Clang inline assembly machine constraints for PowerPC don't seem to allow you to specify a particular register.
2over12
left a comment
There was a problem hiding this comment.
LGTM if we can use the LoadMemoryPointerRef utility Id like to do that
| std::array<llvm::Value *, 3> args = {state_pointer, mem_ptr_ref, | ||
| hyper_call}; | ||
|
|
||
| bldr.CreateCall(insn_lifter_parent.GetIntrinsicTable()->sync_hyper_call, |
There was a problem hiding this comment.
So is the reasoning here for why we need a custom signature for this sync call because we want to pass the type sync call explicitly? Just wondering why we cant take the strategy of other intrinsic hyper calls where it's a typical (state,PC,memory) lifted function and we can use AddCall transparently.
There was a problem hiding this comment.
Yep that's correct. With __remill_sync_hyper_call, we need to provide a Name enumeration to signal what kind of sync call we're making. So AddCall doesn't work for us here.
No description provided.