Go to the documentation of this file.
18 #ifndef LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
19 #define LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
40 : EPC(EPC), FAs(FAs) {}
44 using namespace shared;
45 EPC.callSPSWrapperAsync<void(SPSSequence<SPSMemoryAccessUInt8Write>)>(
46 FAs.WriteUInt8s,
std::move(OnWriteComplete), Ws);
51 using namespace shared;
52 EPC.callSPSWrapperAsync<void(SPSSequence<SPSMemoryAccessUInt16Write>)>(
53 FAs.WriteUInt16s,
std::move(OnWriteComplete), Ws);
58 using namespace shared;
59 EPC.callSPSWrapperAsync<void(SPSSequence<SPSMemoryAccessUInt32Write>)>(
60 FAs.WriteUInt32s,
std::move(OnWriteComplete), Ws);
65 using namespace shared;
66 EPC.callSPSWrapperAsync<void(SPSSequence<SPSMemoryAccessUInt64Write>)>(
67 FAs.WriteUInt64s,
std::move(OnWriteComplete), Ws);
72 using namespace shared;
73 EPC.callSPSWrapperAsync<void(SPSSequence<SPSMemoryAccessBufferWrite>)>(
74 FAs.WriteBuffers,
std::move(OnWriteComplete), Ws);
85 #endif // LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
Represents an address in the executor process.
ExecutorAddr WriteBuffers
This is an optimization pass for GlobalISel generic memory operations.
void writeUInt32sAsync(ArrayRef< tpctypes::UInt32Write > Ws, WriteResultFn OnWriteComplete) override
ExecutorProcessControl supports interaction with a JIT target process.
void writeBuffersAsync(ArrayRef< tpctypes::BufferWrite > Ws, WriteResultFn OnWriteComplete) override
Function addresses for memory access.
ExecutorAddr WriteUInt16s
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
void writeUInt8sAsync(ArrayRef< tpctypes::UInt8Write > Ws, WriteResultFn OnWriteComplete) override
APIs for manipulating memory in the target process.
EPCGenericMemoryAccess(ExecutorProcessControl &EPC, FuncAddrs FAs)
Create an EPCGenericMemoryAccess instance from a given set of function addrs.
void writeUInt16sAsync(ArrayRef< tpctypes::UInt16Write > Ws, WriteResultFn OnWriteComplete) override
ExecutorAddr WriteUInt32s
void writeUInt64sAsync(ArrayRef< tpctypes::UInt64Write > Ws, WriteResultFn OnWriteComplete) override
ExecutorAddr WriteUInt64s