--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMExamples.st Fri Jul 17 12:40:26 2015 +0100
@@ -0,0 +1,45 @@
+"{ Package: 'jv:libllvms' }"
+
+"{ NameSpace: Smalltalk }"
+
+Object subclass:#LLVMExamples
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-Core-Examples'
+!
+
+
+!LLVMExamples class methodsFor:'examples'!
+
+example1_sum
+ | module functionType function functionEntry asm jit externalFunction |
+
+ module := LLVMModule newWithName: thisContext selector.
+ functionType := LLVMType function: { LLVMType intptr . LLVMType intptr } returning: LLVMType intptr.
+ function := module addFunctionNamed: 'sum' type: functionType.
+
+ functionEntry := function addBasicBlockNamed: 'entry'.
+ asm := LLVMBuilder new.
+ asm positionAtEnd: functionEntry.
+ asm ret: (asm add: (function parameterAt: 1) and: (function parameterAt: 2)).
+
+ jit := LLVMExecutionEngine newForModule: module.
+ externalFunction := jit externalOfFunction: function.
+
+ ^ externalFunction callWith: 3 with: 4.
+
+ "
+ LLVMExamples example1_sum
+ "
+
+ "Created: / 17-07-2015 / 11:47:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMExamples class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/Make.proto Fri Jul 17 12:38:30 2015 +0100
+++ b/Make.proto Fri Jul 17 12:40:26 2015 +0100
@@ -129,6 +129,7 @@
$(OUTDIR)LLVMCallConv.$(O) LLVMCallConv.$(H): LLVMCallConv.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDLLStorageClass.$(O) LLVMDLLStorageClass.$(H): LLVMDLLStorageClass.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDiagnosticSeverity.$(O) LLVMDiagnosticSeverity.$(H): LLVMDiagnosticSeverity.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMExamples.$(O) LLVMExamples.$(H): LLVMExamples.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMIntPredicate.$(O) LLVMIntPredicate.$(H): LLVMIntPredicate.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLandingPadClauseTy.$(O) LLVMLandingPadClauseTy.$(H): LLVMLandingPadClauseTy.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLinkage.$(O) LLVMLinkage.$(H): LLVMLinkage.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
--- a/Make.spec Fri Jul 17 12:38:30 2015 +0100
+++ b/Make.spec Fri Jul 17 12:40:26 2015 +0100
@@ -59,6 +59,7 @@
LLVMCallConv \
LLVMDLLStorageClass \
LLVMDiagnosticSeverity \
+ LLVMExamples \
LLVMIntPredicate \
LLVMLandingPadClauseTy \
LLVMLinkage \
@@ -104,6 +105,7 @@
$(OUTDIR_SLASH)LLVMCallConv.$(O) \
$(OUTDIR_SLASH)LLVMDLLStorageClass.$(O) \
$(OUTDIR_SLASH)LLVMDiagnosticSeverity.$(O) \
+ $(OUTDIR_SLASH)LLVMExamples.$(O) \
$(OUTDIR_SLASH)LLVMIntPredicate.$(O) \
$(OUTDIR_SLASH)LLVMLandingPadClauseTy.$(O) \
$(OUTDIR_SLASH)LLVMLinkage.$(O) \
--- a/abbrev.stc Fri Jul 17 12:38:30 2015 +0100
+++ b/abbrev.stc Fri Jul 17 12:40:26 2015 +0100
@@ -9,6 +9,7 @@
LLVMCallConv LLVMCallConv jv:libllvms 'LLVM-Core-Constants' 0
LLVMDLLStorageClass LLVMDLLStorageClass jv:libllvms 'LLVM-Core-Constants' 0
LLVMDiagnosticSeverity LLVMDiagnosticSeverity jv:libllvms 'LLVM-Core-Constants' 0
+LLVMExamples LLVMExamples jv:libllvms 'LLVM-Core-Examples' 0
LLVMIntPredicate LLVMIntPredicate jv:libllvms 'LLVM-Core-Constants' 0
LLVMLandingPadClauseTy LLVMLandingPadClauseTy jv:libllvms 'LLVM-Core-Constants' 0
LLVMLinkage LLVMLinkage jv:libllvms 'LLVM-Core-Constants' 0
--- a/bc.mak Fri Jul 17 12:38:30 2015 +0100
+++ b/bc.mak Fri Jul 17 12:40:26 2015 +0100
@@ -76,6 +76,7 @@
$(OUTDIR)LLVMCallConv.$(O) LLVMCallConv.$(H): LLVMCallConv.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDLLStorageClass.$(O) LLVMDLLStorageClass.$(H): LLVMDLLStorageClass.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDiagnosticSeverity.$(O) LLVMDiagnosticSeverity.$(H): LLVMDiagnosticSeverity.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMExamples.$(O) LLVMExamples.$(H): LLVMExamples.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMIntPredicate.$(O) LLVMIntPredicate.$(H): LLVMIntPredicate.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLandingPadClauseTy.$(O) LLVMLandingPadClauseTy.$(H): LLVMLandingPadClauseTy.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLinkage.$(O) LLVMLinkage.$(H): LLVMLinkage.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
--- a/jv_libllvms.st Fri Jul 17 12:38:30 2015 +0100
+++ b/jv_libllvms.st Fri Jul 17 12:40:26 2015 +0100
@@ -76,6 +76,7 @@
LLVMCallConv
LLVMDLLStorageClass
LLVMDiagnosticSeverity
+ LLVMExamples
LLVMIntPredicate
LLVMLandingPadClauseTy
LLVMLinkage
--- a/libInit.cc Fri Jul 17 12:38:30 2015 +0100
+++ b/libInit.cc Fri Jul 17 12:40:26 2015 +0100
@@ -35,6 +35,7 @@
_LLVMCallConv_Init(pass,__pRT__,snd);
_LLVMDLLStorageClass_Init(pass,__pRT__,snd);
_LLVMDiagnosticSeverity_Init(pass,__pRT__,snd);
+_LLVMExamples_Init(pass,__pRT__,snd);
_LLVMIntPredicate_Init(pass,__pRT__,snd);
_LLVMLandingPadClauseTy_Init(pass,__pRT__,snd);
_LLVMLinkage_Init(pass,__pRT__,snd);