@@ -28,9 +28,6 @@ extern "C" {
28
28
#include " source-descriptor/sourceDescriptor.h"
29
29
30
30
namespace {
31
- constexpr size_t REG_FILE_SIZE = 32 ;
32
- std::array<int64_t , REG_FILE_SIZE> regs = {0 };
33
-
34
31
constexpr std::string_view ASM_PATH = " asm-path" ;
35
32
constexpr std::string_view MODE = " mode" ;
36
33
constexpr std::string_view DUMP_SHORT = " d" ;
@@ -96,7 +93,7 @@ int main(int argc, char** argv) {
96
93
};
97
94
98
95
llvm::ArrayType* regFileType =
99
- llvm::ArrayType::get (builder.getInt64Ty (), REG_FILE_SIZE );
96
+ llvm::ArrayType::get (builder.getInt64Ty (), asmEmulator::REGS. size () );
100
97
if (emulating) {
101
98
llvmModule->getOrInsertGlobal (REG_FILE_NAME, regFileType);
102
99
regFileHolder = llvmModule->getNamedGlobal (REG_FILE_NAME);
@@ -107,7 +104,7 @@ int main(int argc, char** argv) {
107
104
};
108
105
109
106
moduleContext ctx (" asmGenerated" , *std::visit (regFileGetter, regFileHolder),
110
- moduleCtx, builder, *llvmModule, REG_FILE_SIZE );
107
+ moduleCtx, builder, *llvmModule, asmEmulator::REGS. size () );
111
108
112
109
asmEmulator::registerFunctions (ctx);
113
110
@@ -147,17 +144,21 @@ int main(int argc, char** argv) {
147
144
LLVMInitializeNativeTarget ();
148
145
LLVMInitializeNativeAsmPrinter ();
149
146
150
- llvm::ExecutionEngine* ee =
151
- llvm::EngineBuilder (std::move (llvmModule)).create ();
147
+ std::string errorStr;
148
+
149
+ llvm::ExecutionEngine* ee = llvm::EngineBuilder (std::move (llvmModule))
150
+ .setErrorStr (&errorStr)
151
+ .create ();
152
152
if (!ee) {
153
- std::cerr << " Failed creating execution engine. " << std::endl;
153
+ std::cerr << " Failed creating execution engine: " << errorStr << std::endl;
154
154
return 1 ;
155
155
}
156
156
157
157
ee->InstallLazyFunctionCreator (asmEmulator::emulatorCaller);
158
- ee->finalizeObject ();
158
+ // ee->finalizeObject();
159
159
160
- ee->addGlobalMapping (&ctx.getRegFile (), reinterpret_cast <void *>(regs.data ()));
160
+ ee->addGlobalMapping (&ctx.getRegFile (),
161
+ reinterpret_cast <void *>(asmEmulator::REGS.data ()));
161
162
162
163
simInit ();
163
164
llvm::GenericValue res =
0 commit comments