42 unsigned StubSize, 43 unsigned Alignment) { 44 return mm()->allocateStub(F, StubSize, Alignment); 45 } 46 47 unsigned char* SharkMemoryManager::startFunctionBody(const Function* F, 48 uintptr_t& ActualSize) { 49 return mm()->startFunctionBody(F, ActualSize); 50 } 51 52 void SharkMemoryManager::endFunctionBody(const Function* F, 53 unsigned char* FunctionStart, 54 unsigned char* FunctionEnd) { 55 mm()->endFunctionBody(F, FunctionStart, FunctionEnd); 56 57 SharkEntry *entry = get_entry_for_function(F); 58 if (entry != NULL) 59 entry->set_code_limit(FunctionEnd); 60 } 61 62 unsigned char* SharkMemoryManager::startExceptionTable(const Function* F, 63 uintptr_t& ActualSize) { 64 return mm()->startExceptionTable(F, ActualSize); 65 } 66 67 void SharkMemoryManager::endExceptionTable(const Function* F, 68 unsigned char* TableStart, 69 unsigned char* TableEnd, 70 unsigned char* FrameRegister) { 71 mm()->endExceptionTable(F, TableStart, TableEnd, FrameRegister); 72 } 73 74 void SharkMemoryManager::setMemoryWritable() { 75 mm()->setMemoryWritable(); 76 } 77 78 void SharkMemoryManager::setMemoryExecutable() { 79 mm()->setMemoryExecutable(); 80 } 81 82 void SharkMemoryManager::deallocateExceptionTable(void *ptr) { 83 mm()->deallocateExceptionTable(ptr); 84 } 85 86 void SharkMemoryManager::deallocateFunctionBody(void *ptr) { 87 mm()->deallocateFunctionBody(ptr); 88 } 89 90 uint8_t* SharkMemoryManager::allocateGlobal(uintptr_t Size, 91 unsigned int Alignment) { 92 return mm()->allocateGlobal(Size, Alignment); 93 } 94 95 void* SharkMemoryManager::getPointerToNamedFunction(const std::string &Name, bool AbortOnFailure) { 96 return mm()->getPointerToNamedFunction(Name, AbortOnFailure); 97 } 98 99 uint8_t* SharkMemoryManager::allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { 100 return mm()->allocateCodeSection(Size, Alignment, SectionID); 101 } 102 103 uint8_t* SharkMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { 104 return mm()->allocateDataSection(Size, Alignment, SectionID); 105 } 106 107 void SharkMemoryManager::setPoisonMemory(bool poison) { 108 mm()->setPoisonMemory(poison); 109 } 110 111 unsigned char *SharkMemoryManager::allocateSpace(intptr_t Size, 112 unsigned int Alignment) { 113 return mm()->allocateSpace(Size, Alignment); 114 } | 42 unsigned StubSize, 43 unsigned Alignment) { 44 return mm()->allocateStub(F, StubSize, Alignment); 45 } 46 47 unsigned char* SharkMemoryManager::startFunctionBody(const Function* F, 48 uintptr_t& ActualSize) { 49 return mm()->startFunctionBody(F, ActualSize); 50 } 51 52 void SharkMemoryManager::endFunctionBody(const Function* F, 53 unsigned char* FunctionStart, 54 unsigned char* FunctionEnd) { 55 mm()->endFunctionBody(F, FunctionStart, FunctionEnd); 56 57 SharkEntry *entry = get_entry_for_function(F); 58 if (entry != NULL) 59 entry->set_code_limit(FunctionEnd); 60 } 61 62 void SharkMemoryManager::setMemoryWritable() { 63 mm()->setMemoryWritable(); 64 } 65 66 void SharkMemoryManager::setMemoryExecutable() { 67 mm()->setMemoryExecutable(); 68 } 69 70 void SharkMemoryManager::deallocateFunctionBody(void *ptr) { 71 mm()->deallocateFunctionBody(ptr); 72 } 73 74 uint8_t* SharkMemoryManager::allocateGlobal(uintptr_t Size, 75 unsigned int Alignment) { 76 return mm()->allocateGlobal(Size, Alignment); 77 } 78 79 void* SharkMemoryManager::getPointerToNamedFunction(const std::string &Name, bool AbortOnFailure) { 80 return mm()->getPointerToNamedFunction(Name, AbortOnFailure); 81 } 82 83 void SharkMemoryManager::setPoisonMemory(bool poison) { 84 mm()->setPoisonMemory(poison); 85 } 86 87 unsigned char *SharkMemoryManager::allocateSpace(intptr_t Size, 88 unsigned int Alignment) { 89 return mm()->allocateSpace(Size, Alignment); 90 } 91 92 #if SHARK_LLVM_VERSION <= 32 93 94 uint8_t* SharkMemoryManager::allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { 95 return mm()->allocateCodeSection(Size, Alignment, SectionID); 96 } 97 98 uint8_t* SharkMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { 99 return mm()->allocateDataSection(Size, Alignment, SectionID); 100 } 101 102 void SharkMemoryManager::deallocateExceptionTable(void *ptr) { 103 mm()->deallocateExceptionTable(ptr); 104 } 105 106 unsigned char* SharkMemoryManager::startExceptionTable(const Function* F, 107 uintptr_t& ActualSize) { 108 return mm()->startExceptionTable(F, ActualSize); 109 } 110 111 void SharkMemoryManager::endExceptionTable(const Function* F, 112 unsigned char* TableStart, 113 unsigned char* TableEnd, 114 unsigned char* FrameRegister) { 115 mm()->endExceptionTable(F, TableStart, TableEnd, FrameRegister); 116 } 117 118 #else 119 120 uint8_t *SharkMemoryManager::allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID, StringRef SectionName) { 121 return mm()->allocateCodeSection(Size, Alignment, SectionID, SectionName); 122 } 123 124 uint8_t* SharkMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, unsigned SectionID, StringRef SectionName, bool IsReadOnly) { 125 return mm()->allocateDataSection(Size, Alignment, SectionID, SectionName, IsReadOnly); 126 } 127 128 bool SharkMemoryManager::finalizeMemory(std::string *ErrMsg) { 129 return mm()->finalizeMemory(ErrMsg); 130 } 131 132 #endif |