X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-llvm-cpp.h;h=d021848e374f94ea1ca3a04b41913430dc46bd69;hb=b0e9fb6f6f4791e9c7684c2e9af17f9929ff6564;hp=8bb8111a305f24e5d7301051a46f3a060c0c1b2b;hpb=b291f31d3061adb6d75d3f477945775608daf751;p=mono.git diff --git a/mono/mini/mini-llvm-cpp.h b/mono/mini/mini-llvm-cpp.h index 8bb8111a305..d021848e374 100644 --- a/mono/mini/mini-llvm-cpp.h +++ b/mono/mini/mini-llvm-cpp.h @@ -17,12 +17,18 @@ G_BEGIN_DECLS +typedef enum { + LLVM_ATOMICRMW_OP_XCHG = 0, + LLVM_ATOMICRMW_OP_ADD = 1, +} AtomicRMWOp; + typedef unsigned char * (AllocCodeMemoryCb) (LLVMValueRef function, int size); typedef void (FunctionEmittedCb) (LLVMValueRef function, void *start, void *end); typedef void (ExceptionTableCb) (void *data); +typedef char* (DlSymCb) (const char *name, void **symbol); LLVMExecutionEngineRef -mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, FunctionEmittedCb *emitted_cb, ExceptionTableCb *exception_cb); +mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, FunctionEmittedCb *emitted_cb, ExceptionTableCb *exception_cb, DlSymCb *dlsym_cb); void mono_llvm_dispose_ee (LLVMExecutionEngineRef ee); @@ -50,9 +56,22 @@ LLVMValueRef mono_llvm_build_store (LLVMBuilderRef builder, LLVMValueRef Val, LLVMValueRef PointerVal, gboolean is_volatile); +LLVMValueRef +mono_llvm_build_aligned_store (LLVMBuilderRef builder, LLVMValueRef Val, LLVMValueRef PointerVal, + gboolean is_volatile, int alignment); + +LLVMValueRef +mono_llvm_build_atomic_rmw (LLVMBuilderRef builder, AtomicRMWOp op, LLVMValueRef ptr, LLVMValueRef val); + +LLVMValueRef +mono_llvm_build_fence (LLVMBuilderRef builder); + void mono_llvm_replace_uses_of (LLVMValueRef var, LLVMValueRef v); +LLVMValueRef +mono_llvm_build_cmpxchg (LLVMBuilderRef builder, LLVMValueRef addr, LLVMValueRef comparand, LLVMValueRef value); + G_END_DECLS #endif /* __MONO_MINI_LLVM_CPP_H__ */