idk what i am commiting lol

This commit is contained in:
Slendi 2024-02-28 17:28:33 +02:00
parent ed1491d6dd
commit 10ae992a7b
3 changed files with 64 additions and 0 deletions

BIN
LLVM-C.dll Normal file

Binary file not shown.

BIN
src/LLVM-C.lib Normal file

Binary file not shown.

64
src/llvmc.odin Normal file
View File

@ -0,0 +1,64 @@
package main
foreign import llvmc "LLVM-C.lib"
LLVMBool :: distinct int
LLVMMemoryBufferRef :: distinct rawptr
LLVMContextRef :: distinct rawptr
LLVMModuleRef :: distinct rawptr
LLVMTypeRef :: distinct rawptr
LLVMValueRef :: distinct rawptr
LLVMBasicBlockRef :: distinct rawptr
LLVMMetadataRef :: distinct rawptr
LLVMNamedMDNodeRef :: distinct rawptr
LLVMBuilderRef :: distinct rawptr
LLVMDIBuilderRef :: distinct rawptr
LLVMModuleProviderRef :: distinct rawptr
LLVMPassManagerRef :: distinct rawptr
LLVMUseRef :: distinct rawptr
LLVMAttributeRef :: distinct rawptr
LLVMDiagnosticInfoRef :: distinct rawptr
LLVMComdatRef :: distinct rawptr
LLVMJITEventListenerRef :: distinct rawptr
LLVMBinaryRef :: distinct rawptr
@(default_calling_convention = "std")
foreign llvmc {
LLVMContextCreate :: proc() -> LLVMContextRef ---
LLVMModuleCreateWithName :: proc(name: cstring) -> LLVMModuleRef ---
LLVMModuleCreateWithNameInContext :: proc(name: cstring, C: LLVMContextRef) -> LLVMModuleRef ---
LLVMCreateBuilderInContext :: proc(C: LLVMContextRef) -> LLVMBuilderRef ---
LLVMPositionBuilderAtEnd :: proc(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef) ---
LLVMBuildPointerCast :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, DestTy: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
LLVMBuildGlobalString :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
LLVMBuildGlobalStringPtr :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
LLVMBuildCall2 :: proc(Builder: LLVMBuilderRef, Type: LLVMTypeRef, Fn: LLVMValueRef, Args: [^]LLVMValueRef, NumArgs: uint, Name: cstring) -> LLVMValueRef ---
LLVMBuildRetVoid :: proc(Builder: LLVMBuilderRef) -> LLVMValueRef ---
LLVMBuildRet :: proc(Builder: LLVMBuilderRef, V: LLVMValueRef) -> LLVMValueRef ---
LLVMInt1TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
LLVMInt8TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
LLVMInt16TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
LLVMInt32TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
LLVMInt64TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
LLVMIntTypeInContext :: proc(C: LLVMContextRef, n: uint) -> LLVMTypeRef ---
LLVMPointerType :: proc(ElementType: LLVMTypeRef, AddressSpace: uint) -> LLVMTypeRef ---
LLVMConstInt :: proc(IntTy: LLVMTypeRef, N: u64, SignExtend: LLVMBool) -> LLVMValueRef ---
LLVMFunctionType :: proc(ReturnType: LLVMTypeRef, ParamTypes: [^]LLVMTypeRef, ParamCount: uint, IsVarArg: LLVMBool) -> LLVMTypeRef ---
LLVMAddFunction :: proc(M: LLVMModuleRef, Name: cstring, FunctionType: LLVMTypeRef) -> LLVMValueRef ---
LLVMAppendBasicBlockInContext :: proc(C: LLVMContextRef, Fn: LLVMValueRef, Name: cstring) -> LLVMBasicBlockRef ---
LLVMPrintModuleToFile :: proc(M: LLVMModuleRef, Filename: cstring, ErrorMessage: ^cstring) -> LLVMBool ---
LLVMDisposeBuilder :: proc(Builder: LLVMBuilderRef) ---
LLVMDisposeModule :: proc(M: LLVMModuleRef) ---
LLVMContextDispose :: proc(C: LLVMContextRef) ---
}