about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/codegen.src10
-rw-r--r--src/bootstrap/llvm.src256
2 files changed, 260 insertions, 6 deletions
diff --git a/src/bootstrap/codegen.src b/src/bootstrap/codegen.src
index db18380..3a76c16 100644
--- a/src/bootstrap/codegen.src
+++ b/src/bootstrap/codegen.src
@@ -8,11 +8,11 @@ let codegen = struct {
 };
 
 let codegen_init = (alloc: *arena) => *codegen {
-	LLVMInitializeX86TargetInfo();
-	LLVMInitializeX86TargetMC();
-	LLVMInitializeX86Target();
-	LLVMInitializeX86AsmPrinter();
-	LLVMInitializeX86AsmParser();
+	LLVMInitializeAllTargetInfos();
+	LLVMInitializeAllTargetMCs();
+	LLVMInitializeAllTargets();
+	LLVMInitializeAllAsmPrinters();
+	LLVMInitializeAllAsmParsers();
 
 	let module = LLVMModuleCreateWithName("module");
         let context = LLVMGetGlobalContext();
diff --git a/src/bootstrap/llvm.src b/src/bootstrap/llvm.src
index 4dead44..65c36c2 100644
--- a/src/bootstrap/llvm.src
+++ b/src/bootstrap/llvm.src
@@ -1,9 +1,263 @@
+extern LLVMInitializeAArch64TargetInfo = () => void;
+extern LLVMInitializeAMDGPUTargetInfo = () => void;
+extern LLVMInitializeARMTargetInfo = () => void;
+extern LLVMInitializeAVRTargetInfo = () => void;
+extern LLVMInitializeBPFTargetInfo = () => void;
+extern LLVMInitializeHexagonTargetInfo = () => void;
+extern LLVMInitializeLanaiTargetInfo = () => void;
+extern LLVMInitializeLoongArchTargetInfo = () => void;
+extern LLVMInitializeMipsTargetInfo = () => void;
+extern LLVMInitializeMSP430TargetInfo = () => void;
+extern LLVMInitializeNVPTXTargetInfo = () => void;
+extern LLVMInitializePowerPCTargetInfo = () => void;
+extern LLVMInitializeRISCVTargetInfo = () => void;
+extern LLVMInitializeSparcTargetInfo = () => void;
+extern LLVMInitializeSPIRVTargetInfo = () => void;
+extern LLVMInitializeSystemZTargetInfo = () => void;
+extern LLVMInitializeVETargetInfo = () => void;
+extern LLVMInitializeWebAssemblyTargetInfo = () => void;
 extern LLVMInitializeX86TargetInfo = () => void;
-extern LLVMInitializeX86TargetMC = () => void;
+extern LLVMInitializeXCoreTargetInfo = () => void;
+
+let LLVMInitializeAllTargetInfos = () => void {
+	LLVMInitializeAArch64TargetInfo();
+	LLVMInitializeAMDGPUTargetInfo();
+	LLVMInitializeARMTargetInfo();
+	LLVMInitializeAVRTargetInfo();
+	LLVMInitializeBPFTargetInfo();
+	LLVMInitializeHexagonTargetInfo();
+	LLVMInitializeLanaiTargetInfo();
+	LLVMInitializeLoongArchTargetInfo();
+	LLVMInitializeMipsTargetInfo();
+	LLVMInitializeMSP430TargetInfo();
+	LLVMInitializeNVPTXTargetInfo();
+	LLVMInitializePowerPCTargetInfo();
+	LLVMInitializeRISCVTargetInfo();
+	LLVMInitializeSparcTargetInfo();
+	LLVMInitializeSPIRVTargetInfo();
+	LLVMInitializeSystemZTargetInfo();
+	LLVMInitializeVETargetInfo();
+	LLVMInitializeWebAssemblyTargetInfo();
+	LLVMInitializeX86TargetInfo();
+	LLVMInitializeXCoreTargetInfo();
+	return;
+};
+
+extern LLVMInitializeAArch64Target = () => void;
+extern LLVMInitializeAMDGPUTarget = () => void;
+extern LLVMInitializeARMTarget = () => void;
+extern LLVMInitializeAVRTarget = () => void;
+extern LLVMInitializeBPFTarget = () => void;
+extern LLVMInitializeHexagonTarget = () => void;
+extern LLVMInitializeLanaiTarget = () => void;
+extern LLVMInitializeLoongArchTarget = () => void;
+extern LLVMInitializeMipsTarget = () => void;
+extern LLVMInitializeMSP430Target = () => void;
+extern LLVMInitializeNVPTXTarget = () => void;
+extern LLVMInitializePowerPCTarget = () => void;
+extern LLVMInitializeRISCVTarget = () => void;
+extern LLVMInitializeSparcTarget = () => void;
+extern LLVMInitializeSPIRVTarget = () => void;
+extern LLVMInitializeSystemZTarget = () => void;
+extern LLVMInitializeVETarget = () => void;
+extern LLVMInitializeWebAssemblyTarget = () => void;
 extern LLVMInitializeX86Target = () => void;
+extern LLVMInitializeXCoreTarget = () => void;
+
+let LLVMInitializeAllTargets = () => void {
+	LLVMInitializeAArch64Target();
+	LLVMInitializeAMDGPUTarget();
+	LLVMInitializeARMTarget();
+	LLVMInitializeAVRTarget();
+	LLVMInitializeBPFTarget();
+	LLVMInitializeHexagonTarget();
+	LLVMInitializeLanaiTarget();
+	LLVMInitializeLoongArchTarget();
+	LLVMInitializeMipsTarget();
+	LLVMInitializeMSP430Target();
+	LLVMInitializeNVPTXTarget();
+	LLVMInitializePowerPCTarget();
+	LLVMInitializeRISCVTarget();
+	LLVMInitializeSparcTarget();
+	LLVMInitializeSPIRVTarget();
+	LLVMInitializeSystemZTarget();
+	LLVMInitializeVETarget();
+	LLVMInitializeWebAssemblyTarget();
+	LLVMInitializeX86Target();
+	LLVMInitializeXCoreTarget();
+	return;
+};
+
+extern LLVMInitializeAArch64TargetMC = () => void;
+extern LLVMInitializeAMDGPUTargetMC = () => void;
+extern LLVMInitializeARMTargetMC = () => void;
+extern LLVMInitializeAVRTargetMC = () => void;
+extern LLVMInitializeBPFTargetMC = () => void;
+extern LLVMInitializeHexagonTargetMC = () => void;
+extern LLVMInitializeLanaiTargetMC = () => void;
+extern LLVMInitializeLoongArchTargetMC = () => void;
+extern LLVMInitializeMipsTargetMC = () => void;
+extern LLVMInitializeMSP430TargetMC = () => void;
+extern LLVMInitializeNVPTXTargetMC = () => void;
+extern LLVMInitializePowerPCTargetMC = () => void;
+extern LLVMInitializeRISCVTargetMC = () => void;
+extern LLVMInitializeSparcTargetMC = () => void;
+extern LLVMInitializeSPIRVTargetMC = () => void;
+extern LLVMInitializeSystemZTargetMC = () => void;
+extern LLVMInitializeVETargetMC = () => void;
+extern LLVMInitializeWebAssemblyTargetMC = () => void;
+extern LLVMInitializeX86TargetMC = () => void;
+extern LLVMInitializeXCoreTargetMC = () => void;
+
+let LLVMInitializeAllTargetMCs = () => void {
+	LLVMInitializeAArch64TargetMC();
+	LLVMInitializeAMDGPUTargetMC();
+	LLVMInitializeARMTargetMC();
+	LLVMInitializeAVRTargetMC();
+	LLVMInitializeBPFTargetMC();
+	LLVMInitializeHexagonTargetMC();
+	LLVMInitializeLanaiTargetMC();
+	LLVMInitializeLoongArchTargetMC();
+	LLVMInitializeMipsTargetMC();
+	LLVMInitializeMSP430TargetMC();
+	LLVMInitializeNVPTXTargetMC();
+	LLVMInitializePowerPCTargetMC();
+	LLVMInitializeRISCVTargetMC();
+	LLVMInitializeSparcTargetMC();
+	LLVMInitializeSPIRVTargetMC();
+	LLVMInitializeSystemZTargetMC();
+	LLVMInitializeVETargetMC();
+	LLVMInitializeWebAssemblyTargetMC();
+	LLVMInitializeX86TargetMC();
+	LLVMInitializeXCoreTargetMC();
+	return;
+};
+
+extern LLVMInitializeAArch64AsmPrinter = () => void;
+extern LLVMInitializeAMDGPUAsmPrinter = () => void;
+extern LLVMInitializeARMAsmPrinter = () => void;
+extern LLVMInitializeAVRAsmPrinter = () => void;
+extern LLVMInitializeBPFAsmPrinter = () => void;
+extern LLVMInitializeHexagonAsmPrinter = () => void;
+extern LLVMInitializeLanaiAsmPrinter = () => void;
+extern LLVMInitializeLoongArchAsmPrinter = () => void;
+extern LLVMInitializeMipsAsmPrinter = () => void;
+extern LLVMInitializeMSP430AsmPrinter = () => void;
+extern LLVMInitializeNVPTXAsmPrinter = () => void;
+extern LLVMInitializePowerPCAsmPrinter = () => void;
+extern LLVMInitializeRISCVAsmPrinter = () => void;
+extern LLVMInitializeSparcAsmPrinter = () => void;
+extern LLVMInitializeSPIRVAsmPrinter = () => void;
+extern LLVMInitializeSystemZAsmPrinter = () => void;
+extern LLVMInitializeVEAsmPrinter = () => void;
+extern LLVMInitializeWebAssemblyAsmPrinter = () => void;
 extern LLVMInitializeX86AsmPrinter = () => void;
+extern LLVMInitializeXCoreAsmPrinter = () => void;
+
+let LLVMInitializeAllAsmPrinters = () => void {
+	LLVMInitializeAArch64AsmPrinter();
+	LLVMInitializeAMDGPUAsmPrinter();
+	LLVMInitializeARMAsmPrinter();
+	LLVMInitializeAVRAsmPrinter();
+	LLVMInitializeBPFAsmPrinter();
+	LLVMInitializeHexagonAsmPrinter();
+	LLVMInitializeLanaiAsmPrinter();
+	LLVMInitializeLoongArchAsmPrinter();
+	LLVMInitializeMipsAsmPrinter();
+	LLVMInitializeMSP430AsmPrinter();
+	LLVMInitializeNVPTXAsmPrinter();
+	LLVMInitializePowerPCAsmPrinter();
+	LLVMInitializeRISCVAsmPrinter();
+	LLVMInitializeSparcAsmPrinter();
+	LLVMInitializeSPIRVAsmPrinter();
+	LLVMInitializeSystemZAsmPrinter();
+	LLVMInitializeVEAsmPrinter();
+	LLVMInitializeWebAssemblyAsmPrinter();
+	LLVMInitializeX86AsmPrinter();
+	LLVMInitializeXCoreAsmPrinter();
+	return;
+};
+
+extern LLVMInitializeAArch64AsmParser = () => void;
+extern LLVMInitializeAMDGPUAsmParser = () => void;
+extern LLVMInitializeARMAsmParser = () => void;
+extern LLVMInitializeAVRAsmParser = () => void;
+extern LLVMInitializeBPFAsmParser = () => void;
+extern LLVMInitializeHexagonAsmParser = () => void;
+extern LLVMInitializeLanaiAsmParser = () => void;
+extern LLVMInitializeLoongArchAsmParser = () => void;
+extern LLVMInitializeMipsAsmParser = () => void;
+extern LLVMInitializeMSP430AsmParser = () => void;
+extern LLVMInitializePowerPCAsmParser = () => void;
+extern LLVMInitializeRISCVAsmParser = () => void;
+extern LLVMInitializeSparcAsmParser = () => void;
+extern LLVMInitializeSystemZAsmParser = () => void;
+extern LLVMInitializeVEAsmParser = () => void;
+extern LLVMInitializeWebAssemblyAsmParser = () => void;
 extern LLVMInitializeX86AsmParser = () => void;
 
+let LLVMInitializeAllAsmParsers = () => void {
+	LLVMInitializeAArch64AsmParser();
+	LLVMInitializeAMDGPUAsmParser();
+	LLVMInitializeARMAsmParser();
+	LLVMInitializeAVRAsmParser();
+	LLVMInitializeBPFAsmParser();
+	LLVMInitializeHexagonAsmParser();
+	LLVMInitializeLanaiAsmParser();
+	LLVMInitializeLoongArchAsmParser();
+	LLVMInitializeMipsAsmParser();
+	LLVMInitializeMSP430AsmParser();
+	LLVMInitializePowerPCAsmParser();
+	LLVMInitializeRISCVAsmParser();
+	LLVMInitializeSparcAsmParser();
+	LLVMInitializeSystemZAsmParser();
+	LLVMInitializeVEAsmParser();
+	LLVMInitializeWebAssemblyAsmParser();
+	LLVMInitializeX86AsmParser();
+	return;
+};
+
+extern LLVMInitializeAArch64Disassembler = () => void;
+extern LLVMInitializeAMDGPUDisassembler = () => void;
+extern LLVMInitializeARMDisassembler = () => void;
+extern LLVMInitializeAVRDisassembler = () => void;
+extern LLVMInitializeBPFDisassembler = () => void;
+extern LLVMInitializeHexagonDisassembler = () => void;
+extern LLVMInitializeLanaiDisassembler = () => void;
+extern LLVMInitializeLoongArchDisassembler = () => void;
+extern LLVMInitializeMipsDisassembler = () => void;
+extern LLVMInitializeMSP430Disassembler = () => void;
+extern LLVMInitializePowerPCDisassembler = () => void;
+extern LLVMInitializeRISCVDisassembler = () => void;
+extern LLVMInitializeSparcDisassembler = () => void;
+extern LLVMInitializeSystemZDisassembler = () => void;
+extern LLVMInitializeVEDisassembler = () => void;
+extern LLVMInitializeWebAssemblyDisassembler = () => void;
+extern LLVMInitializeX86Disassembler = () => void;
+extern LLVMInitializeXCoreDisassembler = () => void;
+
+let LLVMInitializeAllDisassemblers = () => void {
+	LLVMInitializeAArch64Disassembler();
+	LLVMInitializeAMDGPUDisassembler();
+	LLVMInitializeARMDisassembler();
+	LLVMInitializeAVRDisassembler();
+	LLVMInitializeBPFDisassembler();
+	LLVMInitializeHexagonDisassembler();
+	LLVMInitializeLanaiDisassembler();
+	LLVMInitializeLoongArchDisassembler();
+	LLVMInitializeMipsDisassembler();
+	LLVMInitializeMSP430Disassembler();
+	LLVMInitializePowerPCDisassembler();
+	LLVMInitializeRISCVDisassembler();
+	LLVMInitializeSparcDisassembler();
+	LLVMInitializeSystemZDisassembler();
+	LLVMInitializeVEDisassembler();
+	LLVMInitializeWebAssemblyDisassembler();
+	LLVMInitializeX86Disassembler();
+	LLVMInitializeXCoreDisassembler();
+	return;
+};
+
 extern LLVMModuleCreateWithName = (*i8) => *void;
 extern LLVMGetGlobalContext = () => *void;
 extern LLVMCreateBuilder = () => *void; /* TODO: Create types */