163 |
163 |
164 acceptMethodNode: aMethodNode |
164 acceptMethodNode: aMethodNode |
165 | binding | |
165 | binding | |
166 |
166 |
167 binding := aMethodNode binding. |
167 binding := aMethodNode binding. |
168 function := context module |
168 binding mclass isMetaclass ifTrue:[ |
169 addFunctionNamed: (self class llvmFunctionNameForClass: currentClass selector: currentMethod selector) |
169 function := context module |
170 type: (LLVMType |
170 addFunctionNamed: (self class llvmFunctionNameForClass: currentClass selector: currentMethod selector) |
171 function: { binding receiverType asLLVMTypeInModule: context module } , |
171 type: (LLVMType |
172 (binding parameterTypes collect:[:t|t asLLVMTypeInModule: context module]) |
172 function: (binding parameterTypes collect:[:t|t asLLVMTypeInModule: context module]) |
173 returning: (binding returnType asLLVMTypeInModule: context module)). |
173 returning: (binding returnType asLLVMTypeInModule: context module)). |
|
174 ] ifFalse:[ |
|
175 function := context module |
|
176 addFunctionNamed: (self class llvmFunctionNameForClass: currentClass selector: currentMethod selector) |
|
177 type: (LLVMType |
|
178 function: {binding receiverType asLLVMTypeInModule: context module } , |
|
179 (binding parameterTypes collect:[:t|t asLLVMTypeInModule: context module]) |
|
180 returning: (binding returnType asLLVMTypeInModule: context module)). |
|
181 (function parameterAt: 1) name: 'self'. |
|
182 ]. |
174 asm := function builder. |
183 asm := function builder. |
175 (function parameterAt: 1) name: 'self'. |
|
176 super acceptMethodNode: aMethodNode |
184 super acceptMethodNode: aMethodNode |
177 |
185 |
178 "Created: / 31-08-2015 / 09:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
186 "Created: / 31-08-2015 / 09:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
179 "Modified: / 02-09-2015 / 21:31:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
187 "Modified: / 14-09-2015 / 15:37:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
180 ! |
188 ! |
181 |
189 |
182 acceptOptimizedNode: anOptimizedNode |
190 acceptOptimizedNode: anOptimizedNode |
183 self notYetImplemented |
191 self notYetImplemented |
184 |
192 |