author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 23 Jun 2016 22:26:37 +0100 | |
changeset 29 | 5693302d4e24 |
parent 28 | 4bdee0ee3d83 |
child 37 | ec41dca68283 |
permissions | -rw-r--r-- |
23
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
1 |
" |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
2 |
Copyright (C) 2016-now Jan Vrany |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
3 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
4 |
This code is not an open-source (yet). You may use this code |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
5 |
for your own experiments and projects, given that: |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
6 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
7 |
* all modification to the code will be sent to the |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
8 |
original author for inclusion in future releases |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
9 |
* this is not used in any commercial software |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
10 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
11 |
This license is provisional and may (will) change in |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
12 |
a future. |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
13 |
" |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
"{ Package: 'jv:dragonfly/c1' }" |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
"{ NameSpace: DragonFly }" |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
18 |
SharedPool subclass:#C1LLVMTypes |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
instanceVariableNames:'' |
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
20 |
classVariableNames:'TyInstance TyInstanceFields TyInstanceFieldIndexClass |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
21 |
TyInstanceFieldIndexSize TyInstanceFieldIndexSpace |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
22 |
TyInstanceFieldIndexFlags TyInstanceFieldIndexAge |
28
4bdee0ee3d83
Initial support for literals
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
27
diff
changeset
|
23 |
TyInstanceFieldIndexHashLow TyOBJ TyOBJVec TyInlineCache |
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
24 |
TyInlineCacheIndexFunc TyInlineCacheIndexClass |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
25 |
TyInlineCacheIndexLineNo TyInlineCachePtr TyOBJFUNC TyOBJFUNCs |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
26 |
TyContextFields TyContextFieldIndexStack TyContexts |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
27 |
TyContextFieldIndexFlags TyContextFieldIndexSenderS |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
28 |
TyContextFieldIndexHome TyContextFieldIndexReceiver |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
29 |
TyContextFieldIndexSelector TyContextFieldIndexSearchClass |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
30 |
TyContextFieldIndexMethod TyContextFieldIndexLineNr |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
31 |
TyContextFieldIndexRetvalTemp TyContextFieldIndexHandleS |
29
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
32 |
TyMKREALCONTEXT5 TySSENDSs' |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
poolDictionaries:'' |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
category:'DragonFly-C1' |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
! |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
|
26 | 37 |
!C1LLVMTypes class methodsFor:'documentation'! |
23
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
38 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
39 |
copyright |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
40 |
" |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
41 |
Copyright (C) 2016-now Jan Vrany |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
42 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
43 |
This code is not an open-source (yet). You may use this code |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
44 |
for your own experiments and projects, given that: |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
45 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
46 |
* all modification to the code will be sent to the |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
47 |
original author for inclusion in future releases |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
48 |
* this is not used in any commercial software |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
49 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
50 |
This license is provisional and may (will) change in |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
51 |
a future. |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
52 |
|
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
53 |
" |
d2d9a2d4d6bf
Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
54 |
! ! |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
56 |
!C1LLVMTypes class methodsFor:'initialization'! |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
initialize |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
"Invoked at system start or when the class is dynamically loaded." |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
"/ please change as required (and remove this comment) |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
TyInstance := LLVMType named: '__instance'. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
TyOBJ := TyInstance pointer. |
28
4bdee0ee3d83
Initial support for literals
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
27
diff
changeset
|
65 |
TyOBJVec := TyOBJ pointer. |
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
66 |
TyInstanceFields := { |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
67 |
TyOBJ. "/ o_class |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
68 |
LLVMType int32. "/ o_size |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
69 |
LLVMType int8. "/ o_space |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
70 |
LLVMType int8. "/ o_flags |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
71 |
LLVMType int8. "/ o_age |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
72 |
LLVMType int8. "/ o_hashLow |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
}. |
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
74 |
TyInstance elementTypes: TyInstanceFields. |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
75 |
|
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
TyInstanceFieldIndexClass := 0. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
TyInstanceFieldIndexSize := 1. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
TyInstanceFieldIndexSpace := 2. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
TyInstanceFieldIndexFlags := 3. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
TyInstanceFieldIndexAge := 4. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
TyInstanceFieldIndexHashLow := 5. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
83 |
TyContextFields := TyInstanceFields , (Context instVarNames collect: [ :nm | nm last == $* ifTrue:[ LLVMType intptr pointer ] ifFalse:[ TyOBJ ] ]). |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
84 |
TyContextFieldIndexFlags := TyInstanceFields size - 1 + (Context instVarIndexFor: #flags). |
26 | 85 |
TyContextFieldIndexSenderS := TyInstanceFields size - 1 + (Context instVarIndexFor: #'sender*'). |
86 |
TyContextFieldIndexHome := TyInstanceFields size - 1 + (Context instVarIndexFor: #home). |
|
87 |
TyContextFieldIndexReceiver := TyInstanceFields size - 1 + (Context instVarIndexFor: #receiver). |
|
88 |
TyContextFieldIndexSelector := TyInstanceFields size - 1 + (Context instVarIndexFor: #selector). |
|
89 |
TyContextFieldIndexSearchClass := TyInstanceFields size - 1 + (Context instVarIndexFor: #searchClass). |
|
90 |
TyContextFieldIndexMethod := TyInstanceFields size - 1 + (Context instVarIndexFor: #method). |
|
91 |
TyContextFieldIndexLineNr := TyInstanceFields size - 1 + (Context instVarIndexFor: #lineNr). |
|
92 |
TyContextFieldIndexRetvalTemp := TyInstanceFields size - 1 + (Context instVarIndexFor: #retvalTemp). |
|
93 |
TyContextFieldIndexHandleS := TyInstanceFields size - 1 + (Context instVarIndexFor: #'handle*'). |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
94 |
TyContextFieldIndexStack := TyInstanceFields size + Context instSize. |
26 | 95 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
96 |
TyContexts := #(). |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
97 |
|
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
TyInlineCache := LLVMType named: 'inlineCache'. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
TyInlineCachePtr := TyInlineCache pointer. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
TyOBJFUNC := LLVMType function: { |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
101 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
102 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
103 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
104 |
TyInlineCachePtr . "/ pIlc |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
} varargs: true returning: TyOBJ. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
TyInlineCache elementTypes: { |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
108 |
TyOBJFUNC pointer . "/ ilc_func |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
109 |
TyOBJ. "/ ilc_class |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
110 |
TyInlineCachePtr . "/ ilc_link |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
111 |
TyOBJ . "/ ilc_lineNo |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
112 |
LLVMType char pointer . "/ ilc_poly |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
}. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
114 |
TyInlineCacheIndexFunc := 0. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
TyInlineCacheIndexClass := 1. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
TyInlineCacheIndexLineNo := 3. |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
117 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
TyOBJFUNCs := { |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
119 |
"/ 0 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
120 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
121 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
122 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
123 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
124 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
125 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
126 |
"/ 1 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
127 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
128 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
129 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
130 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
131 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
132 |
TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
133 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
134 |
"/ 2 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
135 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
136 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
137 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
138 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
139 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
140 |
TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
141 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
142 |
"/ 3 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
143 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
144 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
145 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
146 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
147 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
148 |
TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
149 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
150 |
"/ 4 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
151 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
152 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
153 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
154 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
155 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
156 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
157 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
158 |
"/ 5 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
159 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
160 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
161 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
162 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
163 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
164 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
165 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
166 |
"/ 6 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
167 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
168 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
169 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
170 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
171 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
172 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
173 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
174 |
"/ 7 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
175 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
176 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
177 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
178 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
179 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
180 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
181 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
182 |
"/ 8 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
183 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
184 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
185 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
186 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
187 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
188 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
189 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
190 |
"/ 9 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
191 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
192 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
193 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
194 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
195 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
196 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
197 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
198 |
"/ 10 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
199 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
200 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
201 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
202 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
203 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
204 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
205 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
206 |
"/ 11 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
207 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
208 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
209 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
210 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
211 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
212 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
213 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
214 |
"/ 12 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
215 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
216 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
217 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
218 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
219 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
220 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
221 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
222 |
"/ 13 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
223 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
224 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
225 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
226 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
227 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
228 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
229 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
230 |
"/ 14 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
231 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
232 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
233 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
234 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
235 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
236 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
237 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
238 |
"/ 16 args |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
239 |
LLVMType function: { |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
240 |
TyOBJ. "/ self |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
241 |
TyOBJ. "/ selector |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
242 |
TyOBJ. "/ searchClass or nil |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
243 |
TyInlineCachePtr . "/ pIlc |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
244 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
245 |
} returning: TyOBJ . |
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
246 |
}. |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
247 |
|
29
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
248 |
TyMKREALCONTEXT5 := LLVMType function: { TyOBJ } returning: TyOBJ. |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
249 |
|
29
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
250 |
TySSENDSs := { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
251 |
"/ 0 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
252 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
253 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
254 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
255 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
256 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
257 |
"/ 1 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
258 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
259 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
260 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
261 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
262 |
TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
263 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
264 |
"/ 2 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
265 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
266 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
267 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
268 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
269 |
TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
270 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
271 |
"/ 3 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
272 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
273 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
274 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
275 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
276 |
TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
277 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
278 |
"/ 4 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
279 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
280 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
281 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
282 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
283 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
284 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
285 |
"/ 5 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
286 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
287 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
288 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
289 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
290 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
291 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
292 |
"/ 6 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
293 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
294 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
295 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
296 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
297 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
298 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
299 |
"/ 7 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
300 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
301 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
302 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
303 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
304 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
305 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
306 |
"/ 8 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
307 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
308 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
309 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
310 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
311 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
312 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
313 |
"/ 9 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
314 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
315 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
316 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
317 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
318 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
319 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
320 |
"/ 10 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
321 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
322 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
323 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
324 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
325 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
326 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
327 |
"/ 11 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
328 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
329 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
330 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
331 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
332 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
333 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
334 |
"/ 12 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
335 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
336 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
337 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
338 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
339 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
340 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
341 |
"/ 13 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
342 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
343 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
344 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
345 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
346 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
347 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
348 |
"/ 14 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
349 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
350 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
351 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
352 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
353 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
354 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
355 |
"/ 16 args |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
356 |
LLVMType function: { |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
357 |
TyOBJ. "/ self |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
358 |
TyOBJ. "/ selector |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
359 |
LLVMType int32. "/ lineNr |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
360 |
TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
361 |
} returning: TyOBJ . |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
362 |
}. |
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
363 |
|
5693302d4e24
Initial support for message sends.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
364 |
"Modified: / 23-06-2016 / 22:08:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
365 |
! ! |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
366 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
367 |
!C1LLVMTypes class methodsFor:'accessing'! |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
368 |
|
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
369 |
tyContext: size |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
370 |
"Return a type for context with given `size`. Size should |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
371 |
be numArgs + numVars + numTemps" |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
372 |
|
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
373 |
| tyContext | |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
374 |
|
26 | 375 |
TyContexts size < (size + 1) ifTrue:[ |
376 |
| tmp | |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
377 |
|
26 | 378 |
tmp := Array new: size + 1. |
379 |
tmp replaceFrom: 1 to: TyContexts size with: TyContexts. |
|
380 |
TyContexts := tmp. |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
381 |
]. |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
382 |
tyContext := TyContexts at: size + 1. |
26 | 383 |
tyContext isNil ifTrue:[ |
384 |
tyContext := LLVMType named: '__context' , size printString. |
|
385 |
size == 0 ifTrue:[ |
|
386 |
tyContext elementTypes: TyContextFields |
|
387 |
] ifFalse:[ |
|
388 |
tyContext elementTypes: (TyContextFields copyWith: (LLVMType arrayOf: TyOBJ size: size)) |
|
389 |
]. |
|
390 |
TyContexts at: size + 1 put: tyContext. |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
391 |
]. |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
392 |
^ tyContext |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
393 |
|
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
394 |
" |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
395 |
DragonFly::C1LLVMTypes tyContext: 3 |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
396 |
" |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
397 |
|
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
398 |
"Created: / 20-04-2016 / 23:06:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
399 |
"Modified (comment): / 21-04-2016 / 08:41:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
400 |
! ! |
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
401 |
|
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
402 |
!C1LLVMTypes class methodsFor:'documentation'! |
27
73e7acbd16ff
Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
403 |
|
17
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
404 |
version_HG |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
405 |
^ '$Changeset: <not expanded> $' |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
406 |
! ! |
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
407 |
|
54798ae989cc
Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
408 |
|
18
81ed8ce0852f
C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
409 |
C1LLVMTypes initialize! |