Ticket #2179: js-opcodes-loops.txt

File js-opcodes-loops.txt, 6.6 KB (added by agentx, 10 years ago)
Line 
1function loopForOf(){
2 var i;
3 for (i of a){ #3 #18 #4 #6 #10 #12 #13 #17
4Block #3 -> #4 :: 85212 hits
5[Label]
6[InterruptCheckImplicit]
7[OsiPoint]
8[Goto]
9
10Block #18 -> #3 :: 85126 hits
11[Label]
12[LoadFixedSlotV]
13movl 0x10(%edx), %eax
14movl 0x14(%edx), %ecx
15[Unbox:Int32]
16cmpl $0xffffff81, %ecx
17jne ((1990))
18[Pointer:GC_THING]
19movl $0x8e794160, %ecx
20[Slots]
21movl 0x8(%ecx), %ecx
22[LoadSlotT]
23movl 0x670(%ecx), %ebx
24[LoadSlotT]
25movl 0x668(%ecx), %ebp
26[MoveGroup]
27movl %eax, %esi
28[SubI:OverflowCheck]
29subl $0x1, %esi
30jo ((2021))
31[Elements]
32movl 0xc(%ebp), %edi
33[MoveGroup]
34movl %eax, 0x58(%esp)
35[InitializedLength]
36movl -0xc(%edi), %eax
37[BoundsCheck]
38cmpl %esi, %eax
39jbe ((2039))
40[LoadElementT]
41movl 0(%edi,%esi,8), %eax
42[AddI:OverflowCheck]
43addl %eax, %ebx
44jo ((2050))
45[StoreSlotT]
46movl %ebx, 0x670(%ecx)
47[MoveGroup]
48movl 0x6c(%esp), %ebx
49movl 0x68(%esp), %eax
50movl 0x70(%esp), %ecx
51movl 0x74(%esp), %edx
52[Goto]
53jmp ((2077))
54##link ((2077)) jumps to ((2077))
55
56Block #4 -> #6 -> #9 :: 85212 hits
57[Label]
58[TestIAndBranch]
59testl %ebx, %ebx
60je ((515))
61
62Block #6 -> #10 -> #9 :: 85212 hits
63[Label]
64[StackArgT]
65movl $0xffffff82, 0x34(%esp)
66movl $0x0, 0x30(%esp)
67[StackArgT]
68movl $0xffffff88, 0x3c(%esp)
69movl %eax, 0x38(%esp)
70[CallNative]
71addl $0x30, %esp
72push -$0x78
73push -$0x71866c60
74movl 0xaeee90a0, %edi
75movl $0x1, %eax
76movl %esp, %ebx
77push %eax
78movl $0xffffffff, %ecx
79push $0x5c0
80push %ecx
81movl %esp, 0xaeee909c
82push $0x0
83push $0x0
84movl %esp, %ecx
85andl $0xfffffff0, %esp
86push %ecx
87subl $0xc, %esp
88movl %ebx, 0x8(%esp)
89movl %eax, 0x4(%esp)
90movl %edi, 0x0(%esp)
91call ((642))
92addl $0xc, %esp
93pop %esp
94testb $0xff, %al
95je ((655))
96movl 0x14(%esp), %edx
97movl 0x18(%esp), %ecx
98subl $0x14, %esp
99[Nop]
100[OsiPoint]
101[MoveGroup]
102movl %edx, %eax
103[Unbox:Bool]
104cmpl $0xffffff83, %ecx
105jne ((677))
106[TestIAndBranch]
107testl %eax, %eax
108jne ((685))
109
110Block #10 -> #11 -> #12 :: 85212 hits
111[Label]
112[MoveGroup]
113movl 0x68(%esp), %eax
114[LoadFixedSlotV]
115movl 0x10(%eax), %ecx
116movl 0x14(%eax), %edx
117[Unbox:Object]
118cmpl $0xffffff88, %edx
119jne ((1169))
120[MoveGroup]
121movl %ecx, 0x58(%esp)
122[TypeBarrierO]
123movl 0x4(%ecx), %edx
124cmpl $0x8d30f040, %edx
125jne ((1188))
126[LoadFixedSlotV]
127movl 0x18(%eax), %edx
128movl 0x1c(%eax), %ebx
129[Unbox:Int32]
130cmpl $0xffffff81, %ebx
131jne ((1203))
132[MoveGroup]
133movl %edx, 0x5c(%esp)
134[LoadFixedSlotV]
135movl 0x20(%eax), %ebx
136movl 0x24(%eax), %ebp
137[Unbox:Int32]
138cmpl $0xffffff81, %ebp
139jne ((1222))
140[Pointer:GC_THING]
141movl $0x8d306860, %ebp
142[NewObject]
143movl 0xaeee91cc, %ebp
144leal 0x20(%ebp), %esi
145cmpl %esi, 0xaeee91d4
146jb ((1248))
147movl %esi, 0xaeee91cc
148movl $0xad029868, 0x0(%ebp)
149movl $0x8e7e7420, 0x4(%ebp)
150movl $0x0, 0x8(%ebp)
151movl $0xb58bb9fc, 0xc(%ebp)
152[OsiPoint]
153[StoreFixedSlotT]
154movl $0xffffff82, 0x14(%ebp)
155movl $0x0, 0x10(%ebp)
156[StoreFixedSlotT]
157movl $0xffffff83, 0x1c(%ebp)
158movl $0x0, 0x18(%ebp)
159[Elements]
160movl 0xc(%ecx), %esi
161[ArrayLength]
162movl -0x4(%esi), %edi
163[ShiftI:ursh]
164[CompareAndBranch:ge]
165cmpl %edi, %edx
166jl ((1324))
167
168Block #12 -> #13 -> #14 :: 85126 hits
169[Label]
170[MoveGroup]
171movl %edx, %edi
172[AddI]
173addl $0x1, %edi
174[StoreFixedSlotT]
175movl $0xffffff81, 0x1c(%eax)
176movl %edi, 0x18(%eax)
177[CompareAndBranch:stricteq]
178testl %ebx, %ebx
179jne ((1430))
180
181Block #13 -> #17 :: 85126 hits
182[Label]
183[InitializedLength]
184movl -0xc(%esi), %edi
185[BoundsCheck]
186cmpl %edx, %edi
187jbe ((1461))
188[LoadElementT]
189movl 0(%esi,%edx,8), %ecx
190[StoreFixedSlotT]
191movl $0xffffff81, 0x14(%ebp)
192movl %ecx, 0x10(%ebp)
193[MoveGroup]
194movl %ebp, %edx
195[Goto]
196jmp ((1481))
197
198Block #17 -> #19 -> #18 :: 85212 hits
199[Label]
200[LoadFixedSlotT]
201movl 0x18(%edx), %eax
202[TestIAndBranch]
203testl %eax, %eax
204jne ((1955))
205
206 counter += a[i -1];
207 }
208 }
209
210
211loopForIn : file:///Daten/Projects/empty.html# (line 46)function loopForIn(){
212 var i;
213 for (i in a){ #1 #2
214Block #1 -> #2 -> #3 :: 96096 hits
215[Label]
216[InterruptCheckImplicit]
217[OsiPoint]
218[IteratorMore]
219movl 0x4(%eax), %ecx
220cmpl $0xb6dec2a0, 0x0(%ecx)
221jne ((246))
222movl 0x18(%eax), %ecx
223testl $0x2, 0x20(%ecx)
224jne ((262))
225movl 0x10(%ecx), %edx
226cmpl %edx, 0xc(%ecx)
227setl %cl
228movzbl %cl, %ecx
229[OsiPoint]
230[TestIAndBranch]
231testl %ecx, %ecx
232je ((282))
233
234Block #2 -> #1 :: 96000 hits
235[Label]
236[IteratorNext]
237movl 0x4(%eax), %ebx
238cmpl $0xb6dec2a0, 0x0(%ebx)
239jne ((317))
240movl 0x18(%eax), %ebx
241testl $0x2, 0x20(%ebx)
242jne ((333))
243movl 0xc(%ebx), %ecx
244movl 0x0(%ecx), %ecx
245movl $0xffffff85, %edx
246addl $4, 0xc(%ebx)
247[OsiPoint]
248[MoveGroup]
249movl %ecx, %ebx
250[Unbox:String]
251cmpl $0xffffff85, %edx
252jne ((358))
253[Pointer:GC_THING]
254movl $0x8e794160, %ebp
255[Slots]
256movl 0x8(%ebp), %ebp
257[LoadSlotT]
258movl 0x670(%ebp), %esi
259[LoadSlotT]
260movl 0x668(%ebp), %edi
261[MoveGroup]
262movl %ebx, 0x7c(%esp)
263[GetElementCacheV]
264jmp ((387))
265[OsiPoint]
266[MoveGroup]
267movl %ebp, %ecx
268[Unbox:Int32]
269cmpl $0xffffff81, %ebx
270jne ((398))
271[AddI:OverflowCheck]
272addl %ecx, %esi
273jo ((406))
274[Pointer:GC_THING]
275movl $0x8e794160, %ecx
276[Slots]
277movl 0x8(%ecx), %ecx
278[StoreSlotT]
279movl %esi, 0x670(%ecx)
280[Goto]
281jmp ((425))
282##link ((425)) jumps to ((425))
283
284 counter += a[i];
285 }
286 }
287
288
289loopFor : file:///Daten/Projects/empty.html# (line 31)function loopFor(){
290 var i, len = a.length;
291 counter = 0;
292 for (i=0; i<len; i++){ #3
293Block #3 -> #4 -> #5 :: 83275 hits
294[Label]
295[InterruptCheckImplicit]
296[OsiPoint]
297[CompareAndBranch:lt]
298cmpl %ecx, %ebx
299jge ((352))
300
301 counter += a[i]; #4
302Block #4 -> #3 :: 83191 hits
303[Label]
304[LoadSlotT]
305movl 0x670(%ebp), %edi
306[LoadElementT]
307movl 0(%esi,%ebx,8), %ecx
308[AddI:OverflowCheck]
309addl %ecx, %edi
310jo ((389))
311[StoreSlotT]
312movl %edi, 0x670(%ebp)
313[AddI]
314addl $0x1, %ebx
315[MoveGroup]
316movl 0x6c(%esp), %ecx
317[Goto]
318jmp ((407))
319##link ((407)) jumps to ((407))
320
321 }
322 }
323 next : self-hosted (line 451)
324
325
326
327
328
329
330
331
332
333
334
335
336