--- a/LLVM.st Sat Jul 11 06:38:54 2015 +0100
+++ b/LLVM.st Sat Jul 11 10:03:12 2015 +0100
@@ -99,8 +99,10 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMAddFunction" ( LLVMModule charPointer LLVMType ) >
- self primitiveFailed
+ <cdecl: LLVMFunction "LLVMAddFunction" ( LLVMModule charPointer LLVMType ) >
+ self primitiveFailed
+
+ "Modified: / 11-07-2015 / 07:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
AddFunctionAttr: Fn _: PA
@@ -170,6 +172,16 @@
self primitiveFailed
!
+AddMethod: M _: Name _: FunctionTy
+ "This is essentially AddFunction:_: but returns an instance
+ of LLVMStXMethod instead of LLVMFunction"
+
+ <cdecl: LLVMStXMethod "LLVMAddFunction" ( LLVMModule charPointer LLVMType ) >
+ self primitiveFailed
+
+ "Created: / 11-07-2015 / 08:54:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
AddModule: EE _: M
"@param EE: LLVMExecutionEngineRef
@param M: LLVMModuleRef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMFunction.st Sat Jul 11 10:03:12 2015 +0100
@@ -0,0 +1,41 @@
+"{ Package: 'jv:libllvms' }"
+
+"{ NameSpace: Smalltalk }"
+
+LLVMValue subclass:#LLVMFunction
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-Core'
+!
+
+!LLVMFunction methodsFor:'accessing'!
+
+numArgs
+ ^ LLVM GetNumOperands: self.
+
+ "Created: / 11-07-2015 / 09:42:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parameterAt: index
+ | value |
+
+ value := LLVM GetParam: self _: index - 1.
+ value name isEmptyOrNil ifTrue:[
+ value name: 'arg', index printString.
+ ].
+ ^ value
+
+ "Created: / 07-07-2015 / 22:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 11-07-2015 / 09:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMFunction methodsFor:'functions-adding'!
+
+addBasicBlockNamed: name
+ self assert: name isSingleByteString.
+ ^ LLVM AppendBasicBlock: self _: name
+
+ "Created: / 08-07-2015 / 23:09:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/LLVMModule.st Sat Jul 11 06:38:54 2015 +0100
+++ b/LLVMModule.st Sat Jul 11 10:03:12 2015 +0100
@@ -17,6 +17,14 @@
"Created: / 07-07-2015 / 20:22:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMModule methodsFor:'accessing'!
+
+dataLayoutString
+ ^ LLVM GetDataLayout: self.
+
+ "Created: / 11-07-2015 / 06:57:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!LLVMModule methodsFor:'adding & removing'!
addFunctionNamed: name type: type
@@ -25,6 +33,23 @@
^ LLVM AddFunction: self _: name _: type.
"Created: / 07-07-2015 / 21:59:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addMethodForClass: class selector: selector
+ | name type typeObj typeIlcPtr argTypes|
+
+ name := LLVMStXMethod llvmFunctionNameForClass: class selector: selector.
+ typeObj := LLVMType intptr.
+ typeIlcPtr := LLVMType intptr.
+ argTypes := LLVMObjectArray new: 4"receiver, selector, clsOrNil, pIlc" + selector numArgs.
+ 1 to: argTypes size do:[:i |
+ argTypes at: i put: typeObj.
+ ].
+ argTypes at: 4 put: typeIlcPtr.
+ type := LLVMType function: argTypes returning: typeObj.
+ ^ LLVM AddMethod: self _: name _: type.
+
+ "Created: / 11-07-2015 / 09:37:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMModule methodsFor:'debugging'!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMStXMethod.st Sat Jul 11 10:03:12 2015 +0100
@@ -0,0 +1,109 @@
+"{ Package: 'jv:libllvms' }"
+
+"{ NameSpace: Smalltalk }"
+
+LLVMFunction subclass:#LLVMStXMethod
+ instanceVariableNames:''
+ classVariableNames:'SelectorSpecialCharMappingTable'
+ poolDictionaries:''
+ category:'LLVM-StX'
+!
+
+!LLVMStXMethod class methodsFor:'initialization'!
+
+initialize
+ "Invoked at system start or when the class is dynamically loaded."
+
+ "/ please change as required (and remove this comment)
+
+ SelectorSpecialCharMappingTable := Dictionary withKeysAndValues:
+ #($+ 'pl'
+ $- 'mi'
+ $* 'mu'
+ $/ 'di'
+ $, 'co'
+ $@ 'at'
+ $< 'le'
+ $> 'gr'
+ $= 'eq'
+ $~ 'ne'
+ $| 'pi'
+ $\ 'mo'
+ $& 'am').
+
+ "Modified: / 11-07-2015 / 09:24:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMStXMethod class methodsFor:'utilities'!
+
+llvmFunctionNameForClass: class selector: selector
+ "For given class name and selector, returns the name
+ used by LLVM"
+
+ ^ String streamContents:[ :s|
+ s nextPutAll: '__M_L_'.
+ s nextPutAll: (class name copyReplaceAll: $: with: $_).
+ s nextPut: $_.
+ selector isBinarySelector ifTrue:[
+ selector do:[:c |
+ s nextPutAll: (SelectorSpecialCharMappingTable at: c)
+ ].
+ ] ifFalse:[
+ selector do:[:c |
+ c isAlphaNumeric ifTrue:[
+ s nextPut: c
+ ] ifFalse:[
+ c == $: ifTrue:[
+ s nextPut: $_
+ ] ifFalse:[
+ s nextPut: $_.
+ c codePoint printOn: s.
+ ]
+ ].
+ ]
+ ].
+ ].
+
+ "
+ LLVMStXMethod llvmFunctionNameForClass: LLVMStXMethod selector: #llvmFunctionNameForClass:selector:
+ LLVMStXMethod llvmFunctionNameForClass: SmallInteger selector: #+
+ LLVMStXMethod llvmFunctionNameForClass: Object selector: #~=
+
+ "
+
+ "Created: / 11-07-2015 / 09:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMStXMethod methodsFor:'accessing'!
+
+numArgs
+ ^ super numArgs - 4
+
+ "Created: / 11-07-2015 / 09:42:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parameterAt: index
+ ^ super parameterAt: 4 + index.
+
+ "Created: / 11-07-2015 / 09:39:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMStXMethod methodsFor:'initialization'!
+
+initialize
+ super initialize.
+
+ "Assign human readable names to parameters"
+ (super parameterAt: 1) name: 'self'.
+ (super parameterAt: 2) name: 'selector'.
+ (super parameterAt: 3) name: 'searchClass'.
+ (super parameterAt: 4) name: 'pIlc'.
+ 1 to: self numArgs do:[:numArg |
+ (super parameterAt: 4+numArg) name: 'marg', numArg printString.
+ ].
+
+ "Created: / 11-07-2015 / 09:41:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+
+LLVMStXMethod initialize!
--- a/LLVMTargetData.st Sat Jul 11 06:38:54 2015 +0100
+++ b/LLVMTargetData.st Sat Jul 11 10:03:12 2015 +0100
@@ -10,6 +10,21 @@
!
+!LLVMTargetData class methodsFor:'instance creation'!
+
+new
+ ^ self newFromDescription: ''
+
+ "Created: / 11-07-2015 / 07:04:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+newFromDescription: aString
+ self assert: aString isSingleByteString.
+ ^ LLVM CreateTargetData: aString
+
+ "Created: / 11-07-2015 / 07:03:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!LLVMTargetData methodsFor:'initialization & release'!
dispose
--- a/LLVMType.st Sat Jul 11 06:38:54 2015 +0100
+++ b/LLVMType.st Sat Jul 11 10:03:12 2015 +0100
@@ -4,8 +4,8 @@
LLVMObject subclass:#LLVMType
instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
+ classVariableNames:'Int1 Int16 Int32 Int64 IntPtr'
+ poolDictionaries:'LLVMTypeKind'
category:'LLVM-Core'
!
@@ -19,9 +19,13 @@
!
int1
- ^ LLVM Int1Type
+ Int64 isNil ifTrue:[
+ Int64 := LLVM Int64Type
+ ].
+ ^ Int64
"Created: / 07-07-2015 / 21:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 11-07-2015 / 07:01:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
int16
@@ -46,6 +50,15 @@
^ LLVM Int8Type
"Created: / 07-07-2015 / 21:21:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+intptr
+ IntPtr isNil ifTrue:[
+ IntPtr := LLVM IntPtrType: LLVMTargetData new.
+ ].
+ ^ IntPtr
+
+ "Created: / 11-07-2015 / 07:05:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType methodsFor:'accessing'!
@@ -56,14 +69,6 @@
"Created: / 07-07-2015 / 21:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!LLVMType methodsFor:'debugging'!
-
-dump
- LLVM DumpType: self.
-
- "Created: / 07-07-2015 / 22:03:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!LLVMType methodsFor:'debugging-dumping'!
dumpOn: aStream
@@ -81,5 +86,48 @@
^ str
"Created: / 10-07-2015 / 14:31:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+printOn: aStream
+ | kind |
+
+ super printOn: aStream.
+ aStream nextPutAll: self dumpString.
+ aStream nextPutAll: ' ['.
+ kind := self kind.
+ kind == LLVMVoidTypeKind ifTrue:[
+ aStream nextPutAll:'void'
+ ] ifFalse:[ kind == LLVMHalfTypeKind ifTrue:[
+ aStream nextPutAll:'half'
+ ] ifFalse:[ kind == LLVMFloatTypeKind ifTrue:[
+ aStream nextPutAll:'float'
+ ] ifFalse:[ kind == LLVMDoubleTypeKind ifTrue:[
+ aStream nextPutAll:'double'
+ ] ifFalse:[ kind == LLVMX86_FP80TypeKind ifTrue:[
+ aStream nextPutAll:'x86-fp80'
+ ] ifFalse:[ kind == LLVMFP128TypeKind ifTrue:[
+ aStream nextPutAll:'fp128'
+ ] ifFalse:[ kind == LLVMLabelTypeKind ifTrue:[
+ aStream nextPutAll:'label'
+ ] ifFalse:[ kind == LLVMIntegerTypeKind ifTrue:[
+ aStream nextPutAll:'int'
+ ] ifFalse:[ kind == LLVMFunctionTypeKind ifTrue:[
+ aStream nextPutAll:'funct'
+ ] ifFalse:[ kind == LLVMStructTypeKind ifTrue:[
+ aStream nextPutAll:'struct'
+ ] ifFalse:[ kind == LLVMArrayTypeKind ifTrue:[
+ aStream nextPutAll:'array'
+ ] ifFalse:[ kind == LLVMPointerTypeKind ifTrue:[
+ aStream nextPutAll:'ptr'
+ ] ifFalse:[ kind == LLVMVectorTypeKind ifTrue:[
+ aStream nextPutAll:'vector'
+ ] ifFalse:[ kind == LLVMMetadataTypeKind ifTrue:[
+ aStream nextPutAll:'md'
+ ] ifFalse:[ kind == LLVMX86_MMXTypeKind ifTrue:[
+ aStream nextPutAll:'x86-mmx'
+ ]]]]]]]]]]]]]]].
+ aStream nextPutAll: ']'.
+
+ "Created: / 11-07-2015 / 07:08:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/LLVMValue.st Sat Jul 11 06:38:54 2015 +0100
+++ b/LLVMValue.st Sat Jul 11 10:03:12 2015 +0100
@@ -9,6 +9,20 @@
category:'LLVM-Core'
!
+!LLVMValue methodsFor:'accessing'!
+
+name
+ ^ LLVM GetValueName: self
+
+ "Created: / 11-07-2015 / 07:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name: aString
+ ^ LLVM SetValueName: self _: aString
+
+ "Created: / 11-07-2015 / 07:31:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!LLVMValue methodsFor:'debugging'!
inspectorExtraAttributes
@@ -38,22 +52,13 @@
^ str
"Created: / 10-07-2015 / 14:31:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!LLVMValue methodsFor:'functions-accessing'!
+!
-parameterAt: index
- ^ LLVM GetParam: self _: index - 1
+printOn: aStream
+ super printOn: aStream.
+ aStream nextPutAll: ' - '.
+ aStream nextPutAll: self dumpString
- "Created: / 07-07-2015 / 22:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 11-07-2015 / 07:09:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!LLVMValue methodsFor:'functions-adding'!
-
-addBasicBlockNamed: name
- self assert: name isSingleByteString.
- ^ LLVM AppendBasicBlock: self _: name
-
- "Created: / 08-07-2015 / 23:09:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
--- a/Make.proto Sat Jul 11 06:38:54 2015 +0100
+++ b/Make.proto Sat Jul 11 10:03:12 2015 +0100
@@ -148,17 +148,19 @@
$(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetLibraryInfo.$(O) LLVMTargetLibraryInfo.$(H): LLVMTargetLibraryInfo.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMValue.$(O) LLVMValue.$(H): LLVMValue.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMBuilder.$(O) LLVMBuilder.$(H): LLVMBuilder.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMMCJITMemoryManager.$(O) LLVMMCJITMemoryManager.$(H): LLVMMCJITMemoryManager.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMModule.$(O) LLVMModule.$(H): LLVMModule.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassManager.$(O) LLVMPassManager.$(H): LLVMPassManager.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetData.$(O) LLVMTargetData.$(H): LLVMTargetData.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)/jv/libllvms/LLVMFunction.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec Sat Jul 11 06:38:54 2015 +0100
+++ b/Make.spec Sat Jul 11 10:03:12 2015 +0100
@@ -83,12 +83,14 @@
LLVMValue \
LLVMBuilder \
LLVMExecutionEngine \
+ LLVMFunction \
LLVMGenericValue \
LLVMMCJITMemoryManager \
LLVMModule \
LLVMModuleProvider \
LLVMPassManager \
LLVMTargetData \
+ LLVMStXMethod \
@@ -126,12 +128,14 @@
$(OUTDIR_SLASH)LLVMValue.$(O) \
$(OUTDIR_SLASH)LLVMBuilder.$(O) \
$(OUTDIR_SLASH)LLVMExecutionEngine.$(O) \
+ $(OUTDIR_SLASH)LLVMFunction.$(O) \
$(OUTDIR_SLASH)LLVMGenericValue.$(O) \
$(OUTDIR_SLASH)LLVMMCJITMemoryManager.$(O) \
$(OUTDIR_SLASH)LLVMModule.$(O) \
$(OUTDIR_SLASH)LLVMModuleProvider.$(O) \
$(OUTDIR_SLASH)LLVMPassManager.$(O) \
$(OUTDIR_SLASH)LLVMTargetData.$(O) \
+ $(OUTDIR_SLASH)LLVMStXMethod.$(O) \
$(OUTDIR_SLASH)extensions.$(O) \
--- a/abbrev.stc Sat Jul 11 06:38:54 2015 +0100
+++ b/abbrev.stc Sat Jul 11 10:03:12 2015 +0100
@@ -33,9 +33,11 @@
LLVMValue LLVMValue jv:libllvms 'LLVM-Core' 0
LLVMBuilder LLVMBuilder jv:libllvms 'LLVM-Core' 0
LLVMExecutionEngine LLVMExecutionEngine jv:libllvms 'LLVM-Core' 0
+LLVMFunction LLVMFunction jv:libllvms 'LLVM-Core' 0
LLVMGenericValue LLVMGenericValue jv:libllvms 'LLVM-Core' 0
LLVMMCJITMemoryManager LLVMMCJITMemoryManager jv:libllvms 'LLVM-Core' 0
LLVMModule LLVMModule jv:libllvms 'LLVM-Core' 0
LLVMModuleProvider LLVMModuleProvider jv:libllvms 'LLVM-Core' 0
LLVMPassManager LLVMPassManager jv:libllvms 'LLVM-Core' 0
LLVMTargetData LLVMTargetData jv:libllvms 'LLVM-Core' 0
+LLVMStXMethod LLVMStXMethod jv:libllvms 'LLVM-StX' 0
--- a/bc.mak Sat Jul 11 06:38:54 2015 +0100
+++ b/bc.mak Sat Jul 11 10:03:12 2015 +0100
@@ -95,17 +95,19 @@
$(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetLibraryInfo.$(O) LLVMTargetLibraryInfo.$(H): LLVMTargetLibraryInfo.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMValue.$(O) LLVMValue.$(H): LLVMValue.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMBuilder.$(O) LLVMBuilder.$(H): LLVMBuilder.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMMCJITMemoryManager.$(O) LLVMMCJITMemoryManager.$(H): LLVMMCJITMemoryManager.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMModule.$(O) LLVMModule.$(H): LLVMModule.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassManager.$(O) LLVMPassManager.$(H): LLVMPassManager.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetData.$(O) LLVMTargetData.$(H): LLVMTargetData.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)\jv\libllvms\LLVMFunction.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/jv_libllvms.st Sat Jul 11 06:38:54 2015 +0100
+++ b/jv_libllvms.st Sat Jul 11 10:03:12 2015 +0100
@@ -100,12 +100,14 @@
LLVMValue
LLVMBuilder
LLVMExecutionEngine
+ LLVMFunction
LLVMGenericValue
LLVMMCJITMemoryManager
LLVMModule
LLVMModuleProvider
LLVMPassManager
LLVMTargetData
+ LLVMStXMethod
)
!
--- a/libInit.cc Sat Jul 11 06:38:54 2015 +0100
+++ b/libInit.cc Sat Jul 11 10:03:12 2015 +0100
@@ -59,12 +59,14 @@
_LLVMValue_Init(pass,__pRT__,snd);
_LLVMBuilder_Init(pass,__pRT__,snd);
_LLVMExecutionEngine_Init(pass,__pRT__,snd);
+_LLVMFunction_Init(pass,__pRT__,snd);
_LLVMGenericValue_Init(pass,__pRT__,snd);
_LLVMMCJITMemoryManager_Init(pass,__pRT__,snd);
_LLVMModule_Init(pass,__pRT__,snd);
_LLVMModuleProvider_Init(pass,__pRT__,snd);
_LLVMPassManager_Init(pass,__pRT__,snd);
_LLVMTargetData_Init(pass,__pRT__,snd);
+_LLVMStXMethod_Init(pass,__pRT__,snd);
_jv_137libllvms_extensions_Init(pass,__pRT__,snd);
__END_PACKAGE__();