@1ry/silly-grade-calc 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1985 @@
1
+ (module
2
+ (type $0 (func (param i32)))
3
+ (type $1 (func (param i32) (result i32)))
4
+ (type $2 (func))
5
+ (type $3 (func (param i32 i32)))
6
+ (type $4 (func (param i32 i32) (result i32)))
7
+ (type $5 (func (param f64 f64 f64) (result f64)))
8
+ (type $6 (func (param f64 f64) (result f64)))
9
+ (type $7 (func (param i32 i32 i32 i32) (result f32)))
10
+ (type $8 (func (param i32 i32 i32 i32)))
11
+ (type $9 (func (param i32 i32) (result f32)))
12
+ (type $10 (func (param i32 i32 i64)))
13
+ (type $11 (func (param i32 i32 i32)))
14
+ (type $12 (func (result i32)))
15
+ (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
16
+ (global $~argumentsLength (mut i32) (i32.const 0))
17
+ (global $~lib/rt/itcms/total (mut i32) (i32.const 0))
18
+ (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0))
19
+ (global $~lib/rt/itcms/state (mut i32) (i32.const 0))
20
+ (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0))
21
+ (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0))
22
+ (global $~lib/rt/itcms/iter (mut i32) (i32.const 0))
23
+ (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0))
24
+ (global $~lib/rt/itcms/white (mut i32) (i32.const 0))
25
+ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0))
26
+ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
27
+ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34836))
28
+ (memory $0 1)
29
+ (data $0 (i32.const 1036) "\1c")
30
+ (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01")
31
+ (data $1 (i32.const 1068) "\1c")
32
+ (data $1.1 (i32.const 1080) "\05\00\00\00\08\00\00\00\02")
33
+ (data $2 (i32.const 1100) "\9c")
34
+ (data $2.1 (i32.const 1112) "\02\00\00\00\8c\00\00\00i\00n\00v\00a\00l\00i\00d\00 \00a\00t\00t\00r\00i\00b\00u\00t\00e\00s\00:\00 \00t\00o\00t\00a\00l\00P\00o\00i\00n\00t\00s\00 \00a\00n\00d\00 \00r\00e\00a\00c\00h\00e\00d\00 \00p\00o\00i\00n\00t\00s\00 \00n\00e\00e\00d\00 \00t\00o\00 \00b\00e\00 \00p\00o\00s\00i\00t\00i\00v\00e")
35
+ (data $3 (i32.const 1260) "L")
36
+ (data $3.1 (i32.const 1272) "\02\00\00\004\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00c\00a\00l\00c\00u\00l\00a\00t\00e\00G\00r\00a\00d\00e\00.\00t\00s")
37
+ (data $4 (i32.const 1340) "\ac")
38
+ (data $4.1 (i32.const 1352) "\02\00\00\00\92\00\00\00i\00n\00v\00a\00l\00i\00d\00 \00a\00t\00t\00r\00i\00b\00u\00t\00e\00s\00:\00 \00p\00o\00i\00n\00t\00s\00 \00n\00e\00e\00d\00e\00d\00 \00t\00o\00 \00p\00a\00s\00s\00 \00c\00a\00n\00\'\00t\00 \00b\00e\00 \00m\00o\00r\00e\00 \00t\00h\00a\00n\00 \00t\00o\00t\00a\00l\00 \00p\00o\00i\00n\00t\00s")
39
+ (data $5 (i32.const 1516) "<")
40
+ (data $5.1 (i32.const 1528) "\01\00\00\00(\00\00\00\00\00\80?ff\a6?\9a\99\d9?\00\00\00@33\13@\cd\cc,@\00\00@@33S@\cd\ccl@\00\00\80@")
41
+ (data $6 (i32.const 1580) "<")
42
+ (data $6.1 (i32.const 1592) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
43
+ (data $7 (i32.const 1644) "<")
44
+ (data $7.1 (i32.const 1656) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s")
45
+ (data $10 (i32.const 1772) "<")
46
+ (data $10.1 (i32.const 1784) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
47
+ (data $11 (i32.const 1836) ",")
48
+ (data $11.1 (i32.const 1848) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
49
+ (data $13 (i32.const 1916) "<")
50
+ (data $13.1 (i32.const 1928) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s")
51
+ (data $14 (i32.const 1980) ",")
52
+ (data $14.1 (i32.const 1992) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
53
+ (data $15 (i32.const 2032) "\08\00\00\00 \00\00\00 \00\00\00 ")
54
+ (data $15.1 (i32.const 2060) "\02\19\00\00\02\t")
55
+ (table $0 3 3 funcref)
56
+ (elem $0 (i32.const 1) $start:assembly/formel~anonymous|0 $start:assembly/formel~anonymous|1)
57
+ (export "calculateGrade" (func $assembly/calculateGrade/calculateGrade@varargs))
58
+ (export "memory" (memory $0))
59
+ (export "__setArgumentsLength" (func $~setArgumentsLength))
60
+ (start $~start)
61
+ (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32)
62
+ local.get $0
63
+ i32.load offset=4
64
+ i32.const -4
65
+ i32.and
66
+ )
67
+ (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32)
68
+ local.get $0
69
+ i32.load offset=4
70
+ i32.const 3
71
+ i32.and
72
+ )
73
+ (func $~stack_check
74
+ global.get $~lib/memory/__stack_pointer
75
+ i32.const 2068
76
+ i32.lt_s
77
+ if
78
+ i32.const 34864
79
+ i32.const 34912
80
+ i32.const 1
81
+ i32.const 1
82
+ call $~lib/builtins/abort
83
+ unreachable
84
+ end
85
+ )
86
+ (func $~lib/rt/itcms/__visit (param $0 i32)
87
+ local.get $0
88
+ i32.eqz
89
+ if
90
+ return
91
+ end
92
+ local.get $0
93
+ i32.const 20
94
+ i32.sub
95
+ local.tee $0
96
+ call $~lib/rt/itcms/Object#get:color
97
+ global.get $~lib/rt/itcms/white
98
+ i32.eq
99
+ if
100
+ local.get $0
101
+ call $~lib/rt/itcms/Object#makeGray
102
+ global.get $~lib/rt/itcms/visitCount
103
+ i32.const 1
104
+ i32.add
105
+ global.set $~lib/rt/itcms/visitCount
106
+ end
107
+ )
108
+ (func $~lib/array/Array<f32>#__get (param $0 i32) (param $1 i32) (result f32)
109
+ (local $2 f32)
110
+ global.get $~lib/memory/__stack_pointer
111
+ i32.const 4
112
+ i32.sub
113
+ global.set $~lib/memory/__stack_pointer
114
+ call $~stack_check
115
+ global.get $~lib/memory/__stack_pointer
116
+ i32.const 0
117
+ i32.store
118
+ global.get $~lib/memory/__stack_pointer
119
+ local.get $0
120
+ i32.store
121
+ local.get $1
122
+ local.get $0
123
+ i32.load offset=12
124
+ i32.ge_u
125
+ if
126
+ i32.const 1792
127
+ i32.const 2000
128
+ i32.const 114
129
+ i32.const 42
130
+ call $~lib/builtins/abort
131
+ unreachable
132
+ end
133
+ global.get $~lib/memory/__stack_pointer
134
+ local.get $0
135
+ i32.store
136
+ local.get $0
137
+ i32.load offset=4
138
+ local.get $1
139
+ i32.const 2
140
+ i32.shl
141
+ i32.add
142
+ f32.load
143
+ global.get $~lib/memory/__stack_pointer
144
+ i32.const 4
145
+ i32.add
146
+ global.set $~lib/memory/__stack_pointer
147
+ )
148
+ (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32)
149
+ (local $2 i32)
150
+ (local $3 i32)
151
+ (local $4 i32)
152
+ (local $5 i32)
153
+ local.get $1
154
+ i32.load
155
+ local.tee $3
156
+ i32.const 1
157
+ i32.and
158
+ i32.eqz
159
+ if
160
+ i32.const 0
161
+ i32.const 1936
162
+ i32.const 268
163
+ i32.const 14
164
+ call $~lib/builtins/abort
165
+ unreachable
166
+ end
167
+ local.get $3
168
+ i32.const -4
169
+ i32.and
170
+ local.tee $3
171
+ i32.const 12
172
+ i32.lt_u
173
+ if
174
+ i32.const 0
175
+ i32.const 1936
176
+ i32.const 270
177
+ i32.const 14
178
+ call $~lib/builtins/abort
179
+ unreachable
180
+ end
181
+ local.get $3
182
+ i32.const 256
183
+ i32.lt_u
184
+ if (result i32)
185
+ local.get $3
186
+ i32.const 4
187
+ i32.shr_u
188
+ else
189
+ i32.const 31
190
+ i32.const 1073741820
191
+ local.get $3
192
+ local.get $3
193
+ i32.const 1073741820
194
+ i32.ge_u
195
+ select
196
+ local.tee $3
197
+ i32.clz
198
+ i32.sub
199
+ local.tee $4
200
+ i32.const 7
201
+ i32.sub
202
+ local.set $2
203
+ local.get $3
204
+ local.get $4
205
+ i32.const 4
206
+ i32.sub
207
+ i32.shr_u
208
+ i32.const 16
209
+ i32.xor
210
+ end
211
+ local.tee $3
212
+ i32.const 16
213
+ i32.lt_u
214
+ local.get $2
215
+ i32.const 23
216
+ i32.lt_u
217
+ i32.and
218
+ i32.eqz
219
+ if
220
+ i32.const 0
221
+ i32.const 1936
222
+ i32.const 284
223
+ i32.const 14
224
+ call $~lib/builtins/abort
225
+ unreachable
226
+ end
227
+ local.get $1
228
+ i32.load offset=8
229
+ local.set $5
230
+ local.get $1
231
+ i32.load offset=4
232
+ local.tee $4
233
+ if
234
+ local.get $4
235
+ local.get $5
236
+ i32.store offset=8
237
+ end
238
+ local.get $5
239
+ if
240
+ local.get $5
241
+ local.get $4
242
+ i32.store offset=4
243
+ end
244
+ local.get $1
245
+ local.get $0
246
+ local.get $2
247
+ i32.const 4
248
+ i32.shl
249
+ local.get $3
250
+ i32.add
251
+ i32.const 2
252
+ i32.shl
253
+ i32.add
254
+ local.tee $1
255
+ i32.load offset=96
256
+ i32.eq
257
+ if
258
+ local.get $1
259
+ local.get $5
260
+ i32.store offset=96
261
+ local.get $5
262
+ i32.eqz
263
+ if
264
+ local.get $0
265
+ local.get $2
266
+ i32.const 2
267
+ i32.shl
268
+ i32.add
269
+ local.tee $1
270
+ i32.load offset=4
271
+ i32.const -2
272
+ local.get $3
273
+ i32.rotl
274
+ i32.and
275
+ local.set $3
276
+ local.get $1
277
+ local.get $3
278
+ i32.store offset=4
279
+ local.get $3
280
+ i32.eqz
281
+ if
282
+ local.get $0
283
+ local.get $0
284
+ i32.load
285
+ i32.const -2
286
+ local.get $2
287
+ i32.rotl
288
+ i32.and
289
+ i32.store
290
+ end
291
+ end
292
+ end
293
+ )
294
+ (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32)
295
+ (local $2 i32)
296
+ (local $3 i32)
297
+ (local $4 i32)
298
+ (local $5 i32)
299
+ (local $6 i32)
300
+ local.get $1
301
+ i32.eqz
302
+ if
303
+ i32.const 0
304
+ i32.const 1936
305
+ i32.const 201
306
+ i32.const 14
307
+ call $~lib/builtins/abort
308
+ unreachable
309
+ end
310
+ local.get $1
311
+ i32.load
312
+ local.tee $3
313
+ i32.const 1
314
+ i32.and
315
+ i32.eqz
316
+ if
317
+ i32.const 0
318
+ i32.const 1936
319
+ i32.const 203
320
+ i32.const 14
321
+ call $~lib/builtins/abort
322
+ unreachable
323
+ end
324
+ local.get $1
325
+ i32.const 4
326
+ i32.add
327
+ local.get $1
328
+ i32.load
329
+ i32.const -4
330
+ i32.and
331
+ i32.add
332
+ local.tee $4
333
+ i32.load
334
+ local.tee $2
335
+ i32.const 1
336
+ i32.and
337
+ if
338
+ local.get $0
339
+ local.get $4
340
+ call $~lib/rt/tlsf/removeBlock
341
+ local.get $1
342
+ local.get $3
343
+ i32.const 4
344
+ i32.add
345
+ local.get $2
346
+ i32.const -4
347
+ i32.and
348
+ i32.add
349
+ local.tee $3
350
+ i32.store
351
+ local.get $1
352
+ i32.const 4
353
+ i32.add
354
+ local.get $1
355
+ i32.load
356
+ i32.const -4
357
+ i32.and
358
+ i32.add
359
+ local.tee $4
360
+ i32.load
361
+ local.set $2
362
+ end
363
+ local.get $3
364
+ i32.const 2
365
+ i32.and
366
+ if
367
+ local.get $1
368
+ i32.const 4
369
+ i32.sub
370
+ i32.load
371
+ local.tee $1
372
+ i32.load
373
+ local.tee $6
374
+ i32.const 1
375
+ i32.and
376
+ i32.eqz
377
+ if
378
+ i32.const 0
379
+ i32.const 1936
380
+ i32.const 221
381
+ i32.const 16
382
+ call $~lib/builtins/abort
383
+ unreachable
384
+ end
385
+ local.get $0
386
+ local.get $1
387
+ call $~lib/rt/tlsf/removeBlock
388
+ local.get $1
389
+ local.get $6
390
+ i32.const 4
391
+ i32.add
392
+ local.get $3
393
+ i32.const -4
394
+ i32.and
395
+ i32.add
396
+ local.tee $3
397
+ i32.store
398
+ end
399
+ local.get $4
400
+ local.get $2
401
+ i32.const 2
402
+ i32.or
403
+ i32.store
404
+ local.get $3
405
+ i32.const -4
406
+ i32.and
407
+ local.tee $2
408
+ i32.const 12
409
+ i32.lt_u
410
+ if
411
+ i32.const 0
412
+ i32.const 1936
413
+ i32.const 233
414
+ i32.const 14
415
+ call $~lib/builtins/abort
416
+ unreachable
417
+ end
418
+ local.get $4
419
+ local.get $1
420
+ i32.const 4
421
+ i32.add
422
+ local.get $2
423
+ i32.add
424
+ i32.ne
425
+ if
426
+ i32.const 0
427
+ i32.const 1936
428
+ i32.const 234
429
+ i32.const 14
430
+ call $~lib/builtins/abort
431
+ unreachable
432
+ end
433
+ local.get $4
434
+ i32.const 4
435
+ i32.sub
436
+ local.get $1
437
+ i32.store
438
+ local.get $2
439
+ i32.const 256
440
+ i32.lt_u
441
+ if (result i32)
442
+ local.get $2
443
+ i32.const 4
444
+ i32.shr_u
445
+ else
446
+ i32.const 31
447
+ i32.const 1073741820
448
+ local.get $2
449
+ local.get $2
450
+ i32.const 1073741820
451
+ i32.ge_u
452
+ select
453
+ local.tee $2
454
+ i32.clz
455
+ i32.sub
456
+ local.tee $3
457
+ i32.const 7
458
+ i32.sub
459
+ local.set $5
460
+ local.get $2
461
+ local.get $3
462
+ i32.const 4
463
+ i32.sub
464
+ i32.shr_u
465
+ i32.const 16
466
+ i32.xor
467
+ end
468
+ local.tee $2
469
+ i32.const 16
470
+ i32.lt_u
471
+ local.get $5
472
+ i32.const 23
473
+ i32.lt_u
474
+ i32.and
475
+ i32.eqz
476
+ if
477
+ i32.const 0
478
+ i32.const 1936
479
+ i32.const 251
480
+ i32.const 14
481
+ call $~lib/builtins/abort
482
+ unreachable
483
+ end
484
+ local.get $0
485
+ local.get $5
486
+ i32.const 4
487
+ i32.shl
488
+ local.get $2
489
+ i32.add
490
+ i32.const 2
491
+ i32.shl
492
+ i32.add
493
+ i32.load offset=96
494
+ local.set $3
495
+ local.get $1
496
+ i32.const 0
497
+ i32.store offset=4
498
+ local.get $1
499
+ local.get $3
500
+ i32.store offset=8
501
+ local.get $3
502
+ if
503
+ local.get $3
504
+ local.get $1
505
+ i32.store offset=4
506
+ end
507
+ local.get $0
508
+ local.get $5
509
+ i32.const 4
510
+ i32.shl
511
+ local.get $2
512
+ i32.add
513
+ i32.const 2
514
+ i32.shl
515
+ i32.add
516
+ local.get $1
517
+ i32.store offset=96
518
+ local.get $0
519
+ local.get $0
520
+ i32.load
521
+ i32.const 1
522
+ local.get $5
523
+ i32.shl
524
+ i32.or
525
+ i32.store
526
+ local.get $0
527
+ local.get $5
528
+ i32.const 2
529
+ i32.shl
530
+ i32.add
531
+ local.tee $0
532
+ local.get $0
533
+ i32.load offset=4
534
+ i32.const 1
535
+ local.get $2
536
+ i32.shl
537
+ i32.or
538
+ i32.store offset=4
539
+ )
540
+ (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32)
541
+ local.get $0
542
+ local.get $0
543
+ i32.store offset=4
544
+ local.get $0
545
+ local.get $0
546
+ i32.store offset=8
547
+ local.get $0
548
+ )
549
+ (func $~lib/rt/itcms/Object#makeGray (param $0 i32)
550
+ (local $1 i32)
551
+ (local $2 i32)
552
+ local.get $0
553
+ global.get $~lib/rt/itcms/iter
554
+ i32.eq
555
+ if
556
+ local.get $0
557
+ i32.load offset=8
558
+ local.tee $1
559
+ i32.eqz
560
+ if
561
+ i32.const 0
562
+ i32.const 1664
563
+ i32.const 148
564
+ i32.const 30
565
+ call $~lib/builtins/abort
566
+ unreachable
567
+ end
568
+ local.get $1
569
+ global.set $~lib/rt/itcms/iter
570
+ end
571
+ block $__inlined_func$~lib/rt/itcms/Object#unlink$82
572
+ local.get $0
573
+ call $~lib/rt/itcms/Object#get:next
574
+ local.tee $1
575
+ i32.eqz
576
+ if
577
+ local.get $0
578
+ i32.load offset=8
579
+ i32.eqz
580
+ local.get $0
581
+ i32.const 34836
582
+ i32.lt_u
583
+ i32.and
584
+ i32.eqz
585
+ if
586
+ i32.const 0
587
+ i32.const 1664
588
+ i32.const 128
589
+ i32.const 18
590
+ call $~lib/builtins/abort
591
+ unreachable
592
+ end
593
+ br $__inlined_func$~lib/rt/itcms/Object#unlink$82
594
+ end
595
+ local.get $0
596
+ i32.load offset=8
597
+ local.tee $2
598
+ i32.eqz
599
+ if
600
+ i32.const 0
601
+ i32.const 1664
602
+ i32.const 132
603
+ i32.const 16
604
+ call $~lib/builtins/abort
605
+ unreachable
606
+ end
607
+ local.get $1
608
+ local.get $2
609
+ i32.store offset=8
610
+ local.get $2
611
+ local.get $1
612
+ call $~lib/rt/itcms/Object#set:next
613
+ end
614
+ global.get $~lib/rt/itcms/toSpace
615
+ local.set $1
616
+ local.get $0
617
+ i32.load offset=12
618
+ local.tee $2
619
+ i32.const 2
620
+ i32.le_u
621
+ if (result i32)
622
+ i32.const 1
623
+ else
624
+ local.get $2
625
+ i32.const 2032
626
+ i32.load
627
+ i32.gt_u
628
+ if
629
+ i32.const 1792
630
+ i32.const 1856
631
+ i32.const 21
632
+ i32.const 28
633
+ call $~lib/builtins/abort
634
+ unreachable
635
+ end
636
+ local.get $2
637
+ i32.const 2
638
+ i32.shl
639
+ i32.const 2036
640
+ i32.add
641
+ i32.load
642
+ i32.const 32
643
+ i32.and
644
+ end
645
+ local.set $2
646
+ local.get $0
647
+ local.get $1
648
+ global.get $~lib/rt/itcms/white
649
+ i32.eqz
650
+ i32.const 2
651
+ local.get $2
652
+ select
653
+ call $~lib/rt/itcms/Object#linkTo
654
+ )
655
+ (func $~lib/rt/__visit_members (param $0 i32)
656
+ block $invalid
657
+ block $~lib/array/Array<i32>
658
+ block $~lib/array/Array<f32>
659
+ block $~lib/function/Function<%28f64%2Cf64%2Cf64%29=>f64>
660
+ block $~lib/function/Function<%28f64%2Cf64%29=>f64>
661
+ block $~lib/arraybuffer/ArrayBufferView
662
+ block $~lib/string/String
663
+ block $~lib/arraybuffer/ArrayBuffer
664
+ block $~lib/object/Object
665
+ local.get $0
666
+ i32.const 8
667
+ i32.sub
668
+ i32.load
669
+ br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28f64%2Cf64%29=>f64> $~lib/function/Function<%28f64%2Cf64%2Cf64%29=>f64> $~lib/array/Array<f32> $~lib/array/Array<i32> $invalid
670
+ end
671
+ return
672
+ end
673
+ return
674
+ end
675
+ return
676
+ end
677
+ local.get $0
678
+ i32.load
679
+ call $~lib/rt/itcms/__visit
680
+ return
681
+ end
682
+ local.get $0
683
+ call $~lib/function/Function<%28f64%2Cf64%29=>f64>~visit
684
+ return
685
+ end
686
+ local.get $0
687
+ call $~lib/function/Function<%28f64%2Cf64%29=>f64>~visit
688
+ return
689
+ end
690
+ local.get $0
691
+ call $~lib/array/Array<f32>~visit
692
+ return
693
+ end
694
+ local.get $0
695
+ call $~lib/array/Array<f32>~visit
696
+ return
697
+ end
698
+ unreachable
699
+ )
700
+ (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32)
701
+ (local $2 i32)
702
+ (local $3 i32)
703
+ local.get $1
704
+ i32.const 256
705
+ i32.lt_u
706
+ if (result i32)
707
+ local.get $1
708
+ i32.const 4
709
+ i32.shr_u
710
+ else
711
+ i32.const 31
712
+ local.get $1
713
+ call $~lib/rt/tlsf/roundSize
714
+ local.tee $1
715
+ i32.clz
716
+ i32.sub
717
+ local.tee $3
718
+ i32.const 7
719
+ i32.sub
720
+ local.set $2
721
+ local.get $1
722
+ local.get $3
723
+ i32.const 4
724
+ i32.sub
725
+ i32.shr_u
726
+ i32.const 16
727
+ i32.xor
728
+ end
729
+ local.tee $1
730
+ i32.const 16
731
+ i32.lt_u
732
+ local.get $2
733
+ i32.const 23
734
+ i32.lt_u
735
+ i32.and
736
+ i32.eqz
737
+ if
738
+ i32.const 0
739
+ i32.const 1936
740
+ i32.const 334
741
+ i32.const 14
742
+ call $~lib/builtins/abort
743
+ unreachable
744
+ end
745
+ local.get $0
746
+ local.get $2
747
+ i32.const 2
748
+ i32.shl
749
+ i32.add
750
+ i32.load offset=4
751
+ i32.const -1
752
+ local.get $1
753
+ i32.shl
754
+ i32.and
755
+ local.tee $1
756
+ if (result i32)
757
+ local.get $0
758
+ local.get $1
759
+ i32.ctz
760
+ local.get $2
761
+ i32.const 4
762
+ i32.shl
763
+ i32.add
764
+ i32.const 2
765
+ i32.shl
766
+ i32.add
767
+ i32.load offset=96
768
+ else
769
+ local.get $0
770
+ i32.load
771
+ i32.const -1
772
+ local.get $2
773
+ i32.const 1
774
+ i32.add
775
+ i32.shl
776
+ i32.and
777
+ local.tee $1
778
+ if (result i32)
779
+ local.get $0
780
+ local.get $1
781
+ i32.ctz
782
+ local.tee $1
783
+ i32.const 2
784
+ i32.shl
785
+ i32.add
786
+ i32.load offset=4
787
+ local.tee $2
788
+ i32.eqz
789
+ if
790
+ i32.const 0
791
+ i32.const 1936
792
+ i32.const 347
793
+ i32.const 18
794
+ call $~lib/builtins/abort
795
+ unreachable
796
+ end
797
+ local.get $0
798
+ local.get $2
799
+ i32.ctz
800
+ local.get $1
801
+ i32.const 4
802
+ i32.shl
803
+ i32.add
804
+ i32.const 2
805
+ i32.shl
806
+ i32.add
807
+ i32.load offset=96
808
+ else
809
+ i32.const 0
810
+ end
811
+ end
812
+ )
813
+ (func $~lib/rt/tlsf/roundSize (param $0 i32) (result i32)
814
+ local.get $0
815
+ i32.const 1
816
+ i32.const 27
817
+ local.get $0
818
+ i32.clz
819
+ i32.sub
820
+ i32.shl
821
+ i32.add
822
+ i32.const 1
823
+ i32.sub
824
+ local.get $0
825
+ local.get $0
826
+ i32.const 536870910
827
+ i32.lt_u
828
+ select
829
+ )
830
+ (func $~lib/rt/tlsf/initialize
831
+ (local $0 i32)
832
+ (local $1 i32)
833
+ memory.size
834
+ local.tee $1
835
+ i32.const 0
836
+ i32.le_s
837
+ if (result i32)
838
+ i32.const 1
839
+ local.get $1
840
+ i32.sub
841
+ memory.grow
842
+ i32.const 0
843
+ i32.lt_s
844
+ else
845
+ i32.const 0
846
+ end
847
+ if
848
+ unreachable
849
+ end
850
+ i32.const 34848
851
+ i32.const 0
852
+ i32.store
853
+ i32.const 36416
854
+ i32.const 0
855
+ i32.store
856
+ loop $for-loop|0
857
+ local.get $0
858
+ i32.const 23
859
+ i32.lt_u
860
+ if
861
+ local.get $0
862
+ i32.const 2
863
+ i32.shl
864
+ i32.const 34848
865
+ i32.add
866
+ i32.const 0
867
+ i32.store offset=4
868
+ i32.const 0
869
+ local.set $1
870
+ loop $for-loop|1
871
+ local.get $1
872
+ i32.const 16
873
+ i32.lt_u
874
+ if
875
+ local.get $0
876
+ i32.const 4
877
+ i32.shl
878
+ local.get $1
879
+ i32.add
880
+ i32.const 2
881
+ i32.shl
882
+ i32.const 34848
883
+ i32.add
884
+ i32.const 0
885
+ i32.store offset=96
886
+ local.get $1
887
+ i32.const 1
888
+ i32.add
889
+ local.set $1
890
+ br $for-loop|1
891
+ end
892
+ end
893
+ local.get $0
894
+ i32.const 1
895
+ i32.add
896
+ local.set $0
897
+ br $for-loop|0
898
+ end
899
+ end
900
+ i32.const 34848
901
+ i32.const 36420
902
+ memory.size
903
+ i64.extend_i32_s
904
+ i64.const 16
905
+ i64.shl
906
+ call $~lib/rt/tlsf/addMemory
907
+ i32.const 34848
908
+ global.set $~lib/rt/tlsf/ROOT
909
+ )
910
+ (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64)
911
+ (local $3 i32)
912
+ (local $4 i32)
913
+ (local $5 i32)
914
+ local.get $2
915
+ local.get $1
916
+ i64.extend_i32_u
917
+ i64.lt_u
918
+ if
919
+ i32.const 0
920
+ i32.const 1936
921
+ i32.const 382
922
+ i32.const 14
923
+ call $~lib/builtins/abort
924
+ unreachable
925
+ end
926
+ local.get $1
927
+ i32.const 19
928
+ i32.add
929
+ i32.const -16
930
+ i32.and
931
+ i32.const 4
932
+ i32.sub
933
+ local.set $1
934
+ local.get $0
935
+ i32.load offset=1568
936
+ local.tee $3
937
+ if
938
+ local.get $3
939
+ i32.const 4
940
+ i32.add
941
+ local.get $1
942
+ i32.gt_u
943
+ if
944
+ i32.const 0
945
+ i32.const 1936
946
+ i32.const 389
947
+ i32.const 16
948
+ call $~lib/builtins/abort
949
+ unreachable
950
+ end
951
+ local.get $3
952
+ local.get $1
953
+ i32.const 16
954
+ i32.sub
955
+ local.tee $5
956
+ i32.eq
957
+ if
958
+ local.get $3
959
+ i32.load
960
+ local.set $4
961
+ local.get $5
962
+ local.set $1
963
+ end
964
+ else
965
+ local.get $0
966
+ i32.const 1572
967
+ i32.add
968
+ local.get $1
969
+ i32.gt_u
970
+ if
971
+ i32.const 0
972
+ i32.const 1936
973
+ i32.const 402
974
+ i32.const 5
975
+ call $~lib/builtins/abort
976
+ unreachable
977
+ end
978
+ end
979
+ local.get $2
980
+ i32.wrap_i64
981
+ i32.const -16
982
+ i32.and
983
+ local.get $1
984
+ i32.sub
985
+ local.tee $3
986
+ i32.const 20
987
+ i32.lt_u
988
+ if
989
+ return
990
+ end
991
+ local.get $1
992
+ local.get $4
993
+ i32.const 2
994
+ i32.and
995
+ local.get $3
996
+ i32.const 8
997
+ i32.sub
998
+ local.tee $3
999
+ i32.const 1
1000
+ i32.or
1001
+ i32.or
1002
+ i32.store
1003
+ local.get $1
1004
+ i32.const 0
1005
+ i32.store offset=4
1006
+ local.get $1
1007
+ i32.const 0
1008
+ i32.store offset=8
1009
+ local.get $1
1010
+ i32.const 4
1011
+ i32.add
1012
+ local.get $3
1013
+ i32.add
1014
+ local.tee $3
1015
+ i32.const 2
1016
+ i32.store
1017
+ local.get $0
1018
+ local.get $3
1019
+ i32.store offset=1568
1020
+ local.get $0
1021
+ local.get $1
1022
+ call $~lib/rt/tlsf/insertBlock
1023
+ )
1024
+ (func $~lib/rt/itcms/visitRoots
1025
+ (local $0 i32)
1026
+ (local $1 i32)
1027
+ i32.const 1792
1028
+ call $~lib/rt/itcms/__visit
1029
+ i32.const 1600
1030
+ call $~lib/rt/itcms/__visit
1031
+ global.get $~lib/rt/itcms/pinSpace
1032
+ local.tee $1
1033
+ call $~lib/rt/itcms/Object#get:next
1034
+ local.set $0
1035
+ loop $while-continue|0
1036
+ local.get $0
1037
+ local.get $1
1038
+ i32.ne
1039
+ if
1040
+ local.get $0
1041
+ call $~lib/rt/itcms/Object#get:color
1042
+ i32.const 3
1043
+ i32.ne
1044
+ if
1045
+ i32.const 0
1046
+ i32.const 1664
1047
+ i32.const 160
1048
+ i32.const 16
1049
+ call $~lib/builtins/abort
1050
+ unreachable
1051
+ end
1052
+ local.get $0
1053
+ i32.const 20
1054
+ i32.add
1055
+ call $~lib/rt/__visit_members
1056
+ local.get $0
1057
+ call $~lib/rt/itcms/Object#get:next
1058
+ local.set $0
1059
+ br $while-continue|0
1060
+ end
1061
+ end
1062
+ )
1063
+ (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32)
1064
+ (local $2 i32)
1065
+ local.get $0
1066
+ i32.const 1073741804
1067
+ i32.ge_u
1068
+ if
1069
+ i32.const 1600
1070
+ i32.const 1664
1071
+ i32.const 261
1072
+ i32.const 31
1073
+ call $~lib/builtins/abort
1074
+ unreachable
1075
+ end
1076
+ global.get $~lib/rt/itcms/total
1077
+ global.get $~lib/rt/itcms/threshold
1078
+ i32.ge_u
1079
+ if
1080
+ block $__inlined_func$~lib/rt/itcms/interrupt$68
1081
+ i32.const 2048
1082
+ local.set $2
1083
+ loop $do-loop|0
1084
+ local.get $2
1085
+ call $~lib/rt/itcms/step
1086
+ i32.sub
1087
+ local.set $2
1088
+ global.get $~lib/rt/itcms/state
1089
+ i32.eqz
1090
+ if
1091
+ global.get $~lib/rt/itcms/total
1092
+ i32.const 1
1093
+ i32.shl
1094
+ i32.const 1024
1095
+ i32.add
1096
+ global.set $~lib/rt/itcms/threshold
1097
+ br $__inlined_func$~lib/rt/itcms/interrupt$68
1098
+ end
1099
+ local.get $2
1100
+ i32.const 0
1101
+ i32.gt_s
1102
+ br_if $do-loop|0
1103
+ end
1104
+ global.get $~lib/rt/itcms/total
1105
+ global.get $~lib/rt/itcms/total
1106
+ global.get $~lib/rt/itcms/threshold
1107
+ i32.sub
1108
+ i32.const 1024
1109
+ i32.lt_u
1110
+ i32.const 10
1111
+ i32.shl
1112
+ i32.add
1113
+ global.set $~lib/rt/itcms/threshold
1114
+ end
1115
+ end
1116
+ global.get $~lib/rt/tlsf/ROOT
1117
+ i32.eqz
1118
+ if
1119
+ call $~lib/rt/tlsf/initialize
1120
+ end
1121
+ global.get $~lib/rt/tlsf/ROOT
1122
+ local.get $0
1123
+ i32.const 16
1124
+ i32.add
1125
+ call $~lib/rt/tlsf/allocateBlock
1126
+ local.tee $2
1127
+ local.get $1
1128
+ i32.store offset=12
1129
+ local.get $2
1130
+ local.get $0
1131
+ i32.store offset=16
1132
+ local.get $2
1133
+ global.get $~lib/rt/itcms/fromSpace
1134
+ global.get $~lib/rt/itcms/white
1135
+ call $~lib/rt/itcms/Object#linkTo
1136
+ local.get $2
1137
+ call $~lib/rt/itcms/Object#get:size
1138
+ global.get $~lib/rt/itcms/total
1139
+ i32.add
1140
+ global.set $~lib/rt/itcms/total
1141
+ local.get $2
1142
+ i32.const 20
1143
+ i32.add
1144
+ local.tee $1
1145
+ i32.const 0
1146
+ local.get $0
1147
+ memory.fill
1148
+ local.get $1
1149
+ )
1150
+ (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32)
1151
+ local.get $0
1152
+ local.get $1
1153
+ local.get $0
1154
+ i32.load offset=4
1155
+ i32.const 3
1156
+ i32.and
1157
+ i32.or
1158
+ i32.store offset=4
1159
+ )
1160
+ (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32)
1161
+ local.get $0
1162
+ local.get $0
1163
+ i32.load offset=4
1164
+ i32.const -4
1165
+ i32.and
1166
+ local.get $1
1167
+ i32.or
1168
+ i32.store offset=4
1169
+ )
1170
+ (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32)
1171
+ (local $3 i32)
1172
+ local.get $1
1173
+ i32.load offset=8
1174
+ local.set $3
1175
+ local.get $0
1176
+ local.get $1
1177
+ local.get $2
1178
+ i32.or
1179
+ i32.store offset=4
1180
+ local.get $0
1181
+ local.get $3
1182
+ i32.store offset=8
1183
+ local.get $3
1184
+ local.get $0
1185
+ call $~lib/rt/itcms/Object#set:next
1186
+ local.get $1
1187
+ local.get $0
1188
+ i32.store offset=8
1189
+ )
1190
+ (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32)
1191
+ local.get $0
1192
+ i32.load
1193
+ i32.const -4
1194
+ i32.and
1195
+ i32.const 4
1196
+ i32.add
1197
+ )
1198
+ (func $~lib/function/Function<%28f64%2Cf64%29=>f64>~visit (param $0 i32)
1199
+ global.get $~lib/memory/__stack_pointer
1200
+ i32.const 4
1201
+ i32.sub
1202
+ global.set $~lib/memory/__stack_pointer
1203
+ call $~stack_check
1204
+ global.get $~lib/memory/__stack_pointer
1205
+ i32.const 0
1206
+ i32.store
1207
+ global.get $~lib/memory/__stack_pointer
1208
+ local.get $0
1209
+ i32.store
1210
+ local.get $0
1211
+ i32.load offset=4
1212
+ call $~lib/rt/itcms/__visit
1213
+ global.get $~lib/memory/__stack_pointer
1214
+ i32.const 4
1215
+ i32.add
1216
+ global.set $~lib/memory/__stack_pointer
1217
+ )
1218
+ (func $~lib/array/Array<f32>~visit (param $0 i32)
1219
+ global.get $~lib/memory/__stack_pointer
1220
+ i32.const 4
1221
+ i32.sub
1222
+ global.set $~lib/memory/__stack_pointer
1223
+ call $~stack_check
1224
+ global.get $~lib/memory/__stack_pointer
1225
+ i32.const 0
1226
+ i32.store
1227
+ global.get $~lib/memory/__stack_pointer
1228
+ local.get $0
1229
+ i32.store
1230
+ local.get $0
1231
+ i32.load
1232
+ call $~lib/rt/itcms/__visit
1233
+ global.get $~lib/memory/__stack_pointer
1234
+ i32.const 4
1235
+ i32.add
1236
+ global.set $~lib/memory/__stack_pointer
1237
+ )
1238
+ (func $~start
1239
+ memory.size
1240
+ i32.const 16
1241
+ i32.shl
1242
+ i32.const 34836
1243
+ i32.sub
1244
+ i32.const 1
1245
+ i32.shr_u
1246
+ global.set $~lib/rt/itcms/threshold
1247
+ i32.const 1712
1248
+ call $~lib/rt/itcms/initLazy
1249
+ global.set $~lib/rt/itcms/pinSpace
1250
+ i32.const 1744
1251
+ call $~lib/rt/itcms/initLazy
1252
+ global.set $~lib/rt/itcms/toSpace
1253
+ i32.const 1888
1254
+ call $~lib/rt/itcms/initLazy
1255
+ global.set $~lib/rt/itcms/fromSpace
1256
+ )
1257
+ (func $~setArgumentsLength (param $0 i32)
1258
+ local.get $0
1259
+ global.set $~argumentsLength
1260
+ )
1261
+ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32)
1262
+ (local $2 i32)
1263
+ (local $3 i32)
1264
+ (local $4 i32)
1265
+ local.get $1
1266
+ i32.const 1073741820
1267
+ i32.gt_u
1268
+ if
1269
+ i32.const 1600
1270
+ i32.const 1936
1271
+ i32.const 461
1272
+ i32.const 29
1273
+ call $~lib/builtins/abort
1274
+ unreachable
1275
+ end
1276
+ local.get $0
1277
+ i32.const 12
1278
+ local.get $1
1279
+ i32.const 19
1280
+ i32.add
1281
+ i32.const -16
1282
+ i32.and
1283
+ i32.const 4
1284
+ i32.sub
1285
+ local.get $1
1286
+ i32.const 12
1287
+ i32.le_u
1288
+ select
1289
+ local.tee $3
1290
+ call $~lib/rt/tlsf/searchBlock
1291
+ local.tee $1
1292
+ i32.eqz
1293
+ if
1294
+ i32.const 4
1295
+ local.get $0
1296
+ i32.load offset=1568
1297
+ memory.size
1298
+ local.tee $1
1299
+ i32.const 16
1300
+ i32.shl
1301
+ i32.const 4
1302
+ i32.sub
1303
+ i32.ne
1304
+ i32.shl
1305
+ local.get $3
1306
+ call $~lib/rt/tlsf/roundSize
1307
+ local.get $3
1308
+ local.get $3
1309
+ i32.const 256
1310
+ i32.ge_u
1311
+ select
1312
+ i32.add
1313
+ i32.const 65535
1314
+ i32.add
1315
+ i32.const -65536
1316
+ i32.and
1317
+ i32.const 16
1318
+ i32.shr_u
1319
+ local.set $2
1320
+ local.get $1
1321
+ local.get $2
1322
+ local.get $1
1323
+ local.get $2
1324
+ i32.gt_s
1325
+ select
1326
+ memory.grow
1327
+ i32.const 0
1328
+ i32.lt_s
1329
+ if
1330
+ local.get $2
1331
+ memory.grow
1332
+ i32.const 0
1333
+ i32.lt_s
1334
+ if
1335
+ unreachable
1336
+ end
1337
+ end
1338
+ local.get $0
1339
+ local.get $1
1340
+ i32.const 16
1341
+ i32.shl
1342
+ memory.size
1343
+ i64.extend_i32_s
1344
+ i64.const 16
1345
+ i64.shl
1346
+ call $~lib/rt/tlsf/addMemory
1347
+ local.get $0
1348
+ local.get $3
1349
+ call $~lib/rt/tlsf/searchBlock
1350
+ local.tee $1
1351
+ i32.eqz
1352
+ if
1353
+ i32.const 0
1354
+ i32.const 1936
1355
+ i32.const 499
1356
+ i32.const 16
1357
+ call $~lib/builtins/abort
1358
+ unreachable
1359
+ end
1360
+ end
1361
+ local.get $3
1362
+ local.get $1
1363
+ i32.load
1364
+ i32.const -4
1365
+ i32.and
1366
+ i32.gt_u
1367
+ if
1368
+ i32.const 0
1369
+ i32.const 1936
1370
+ i32.const 501
1371
+ i32.const 14
1372
+ call $~lib/builtins/abort
1373
+ unreachable
1374
+ end
1375
+ local.get $0
1376
+ local.get $1
1377
+ call $~lib/rt/tlsf/removeBlock
1378
+ local.get $1
1379
+ i32.load
1380
+ local.set $4
1381
+ local.get $3
1382
+ i32.const 4
1383
+ i32.add
1384
+ i32.const 15
1385
+ i32.and
1386
+ if
1387
+ i32.const 0
1388
+ i32.const 1936
1389
+ i32.const 361
1390
+ i32.const 14
1391
+ call $~lib/builtins/abort
1392
+ unreachable
1393
+ end
1394
+ local.get $4
1395
+ i32.const -4
1396
+ i32.and
1397
+ local.get $3
1398
+ i32.sub
1399
+ local.tee $2
1400
+ i32.const 16
1401
+ i32.ge_u
1402
+ if
1403
+ local.get $1
1404
+ local.get $3
1405
+ local.get $4
1406
+ i32.const 2
1407
+ i32.and
1408
+ i32.or
1409
+ i32.store
1410
+ local.get $1
1411
+ i32.const 4
1412
+ i32.add
1413
+ local.get $3
1414
+ i32.add
1415
+ local.tee $3
1416
+ local.get $2
1417
+ i32.const 4
1418
+ i32.sub
1419
+ i32.const 1
1420
+ i32.or
1421
+ i32.store
1422
+ local.get $0
1423
+ local.get $3
1424
+ call $~lib/rt/tlsf/insertBlock
1425
+ else
1426
+ local.get $1
1427
+ local.get $4
1428
+ i32.const -2
1429
+ i32.and
1430
+ i32.store
1431
+ local.get $1
1432
+ i32.const 4
1433
+ i32.add
1434
+ local.get $1
1435
+ i32.load
1436
+ i32.const -4
1437
+ i32.and
1438
+ i32.add
1439
+ local.tee $0
1440
+ local.get $0
1441
+ i32.load
1442
+ i32.const -3
1443
+ i32.and
1444
+ i32.store
1445
+ end
1446
+ local.get $1
1447
+ )
1448
+ (func $~lib/rt/itcms/step (result i32)
1449
+ (local $0 i32)
1450
+ (local $1 i32)
1451
+ (local $2 i32)
1452
+ block $break|0
1453
+ block $case2|0
1454
+ block $case1|0
1455
+ block $case0|0
1456
+ global.get $~lib/rt/itcms/state
1457
+ br_table $case0|0 $case1|0 $case2|0 $break|0
1458
+ end
1459
+ i32.const 1
1460
+ global.set $~lib/rt/itcms/state
1461
+ i32.const 0
1462
+ global.set $~lib/rt/itcms/visitCount
1463
+ call $~lib/rt/itcms/visitRoots
1464
+ global.get $~lib/rt/itcms/toSpace
1465
+ global.set $~lib/rt/itcms/iter
1466
+ global.get $~lib/rt/itcms/visitCount
1467
+ return
1468
+ end
1469
+ global.get $~lib/rt/itcms/white
1470
+ i32.eqz
1471
+ local.set $1
1472
+ global.get $~lib/rt/itcms/iter
1473
+ call $~lib/rt/itcms/Object#get:next
1474
+ local.set $0
1475
+ loop $while-continue|1
1476
+ local.get $0
1477
+ global.get $~lib/rt/itcms/toSpace
1478
+ i32.ne
1479
+ if
1480
+ local.get $0
1481
+ global.set $~lib/rt/itcms/iter
1482
+ local.get $0
1483
+ call $~lib/rt/itcms/Object#get:color
1484
+ local.get $1
1485
+ i32.ne
1486
+ if
1487
+ local.get $0
1488
+ local.get $1
1489
+ call $~lib/rt/itcms/Object#set:color
1490
+ i32.const 0
1491
+ global.set $~lib/rt/itcms/visitCount
1492
+ local.get $0
1493
+ i32.const 20
1494
+ i32.add
1495
+ call $~lib/rt/__visit_members
1496
+ global.get $~lib/rt/itcms/visitCount
1497
+ return
1498
+ end
1499
+ local.get $0
1500
+ call $~lib/rt/itcms/Object#get:next
1501
+ local.set $0
1502
+ br $while-continue|1
1503
+ end
1504
+ end
1505
+ i32.const 0
1506
+ global.set $~lib/rt/itcms/visitCount
1507
+ call $~lib/rt/itcms/visitRoots
1508
+ global.get $~lib/rt/itcms/iter
1509
+ call $~lib/rt/itcms/Object#get:next
1510
+ global.get $~lib/rt/itcms/toSpace
1511
+ i32.eq
1512
+ if
1513
+ global.get $~lib/memory/__stack_pointer
1514
+ local.set $0
1515
+ loop $while-continue|0
1516
+ local.get $0
1517
+ i32.const 34836
1518
+ i32.lt_u
1519
+ if
1520
+ local.get $0
1521
+ i32.load
1522
+ call $~lib/rt/itcms/__visit
1523
+ local.get $0
1524
+ i32.const 4
1525
+ i32.add
1526
+ local.set $0
1527
+ br $while-continue|0
1528
+ end
1529
+ end
1530
+ global.get $~lib/rt/itcms/iter
1531
+ call $~lib/rt/itcms/Object#get:next
1532
+ local.set $0
1533
+ loop $while-continue|2
1534
+ local.get $0
1535
+ global.get $~lib/rt/itcms/toSpace
1536
+ i32.ne
1537
+ if
1538
+ local.get $0
1539
+ call $~lib/rt/itcms/Object#get:color
1540
+ local.get $1
1541
+ i32.ne
1542
+ if
1543
+ local.get $0
1544
+ local.get $1
1545
+ call $~lib/rt/itcms/Object#set:color
1546
+ local.get $0
1547
+ i32.const 20
1548
+ i32.add
1549
+ call $~lib/rt/__visit_members
1550
+ end
1551
+ local.get $0
1552
+ call $~lib/rt/itcms/Object#get:next
1553
+ local.set $0
1554
+ br $while-continue|2
1555
+ end
1556
+ end
1557
+ global.get $~lib/rt/itcms/fromSpace
1558
+ local.set $0
1559
+ global.get $~lib/rt/itcms/toSpace
1560
+ global.set $~lib/rt/itcms/fromSpace
1561
+ local.get $0
1562
+ global.set $~lib/rt/itcms/toSpace
1563
+ local.get $1
1564
+ global.set $~lib/rt/itcms/white
1565
+ local.get $0
1566
+ call $~lib/rt/itcms/Object#get:next
1567
+ global.set $~lib/rt/itcms/iter
1568
+ i32.const 2
1569
+ global.set $~lib/rt/itcms/state
1570
+ end
1571
+ global.get $~lib/rt/itcms/visitCount
1572
+ return
1573
+ end
1574
+ global.get $~lib/rt/itcms/iter
1575
+ local.tee $0
1576
+ global.get $~lib/rt/itcms/toSpace
1577
+ i32.ne
1578
+ if
1579
+ local.get $0
1580
+ call $~lib/rt/itcms/Object#get:next
1581
+ global.set $~lib/rt/itcms/iter
1582
+ local.get $0
1583
+ call $~lib/rt/itcms/Object#get:color
1584
+ global.get $~lib/rt/itcms/white
1585
+ i32.eqz
1586
+ i32.ne
1587
+ if
1588
+ i32.const 0
1589
+ i32.const 1664
1590
+ i32.const 229
1591
+ i32.const 20
1592
+ call $~lib/builtins/abort
1593
+ unreachable
1594
+ end
1595
+ local.get $0
1596
+ i32.const 34836
1597
+ i32.lt_u
1598
+ if
1599
+ local.get $0
1600
+ i32.const 0
1601
+ i32.store offset=4
1602
+ local.get $0
1603
+ i32.const 0
1604
+ i32.store offset=8
1605
+ else
1606
+ global.get $~lib/rt/itcms/total
1607
+ local.get $0
1608
+ call $~lib/rt/itcms/Object#get:size
1609
+ i32.sub
1610
+ global.set $~lib/rt/itcms/total
1611
+ local.get $0
1612
+ i32.const 4
1613
+ i32.add
1614
+ local.tee $1
1615
+ i32.const 34836
1616
+ i32.ge_u
1617
+ if
1618
+ global.get $~lib/rt/tlsf/ROOT
1619
+ i32.eqz
1620
+ if
1621
+ call $~lib/rt/tlsf/initialize
1622
+ end
1623
+ global.get $~lib/rt/tlsf/ROOT
1624
+ local.get $1
1625
+ i32.const 4
1626
+ i32.sub
1627
+ local.set $0
1628
+ local.get $1
1629
+ i32.const 15
1630
+ i32.and
1631
+ i32.const 1
1632
+ local.get $1
1633
+ select
1634
+ if (result i32)
1635
+ i32.const 1
1636
+ else
1637
+ local.get $0
1638
+ i32.load
1639
+ i32.const 1
1640
+ i32.and
1641
+ end
1642
+ if
1643
+ i32.const 0
1644
+ i32.const 1936
1645
+ i32.const 562
1646
+ i32.const 3
1647
+ call $~lib/builtins/abort
1648
+ unreachable
1649
+ end
1650
+ local.get $0
1651
+ local.get $0
1652
+ i32.load
1653
+ i32.const 1
1654
+ i32.or
1655
+ i32.store
1656
+ local.get $0
1657
+ call $~lib/rt/tlsf/insertBlock
1658
+ end
1659
+ end
1660
+ i32.const 10
1661
+ return
1662
+ end
1663
+ global.get $~lib/rt/itcms/toSpace
1664
+ global.get $~lib/rt/itcms/toSpace
1665
+ i32.store offset=4
1666
+ global.get $~lib/rt/itcms/toSpace
1667
+ global.get $~lib/rt/itcms/toSpace
1668
+ i32.store offset=8
1669
+ i32.const 0
1670
+ global.set $~lib/rt/itcms/state
1671
+ end
1672
+ i32.const 0
1673
+ )
1674
+ (func $start:assembly/formel~anonymous|1 (param $0 f64) (param $1 f64) (param $2 f64) (result f64)
1675
+ local.get $1
1676
+ local.get $0
1677
+ f64.sub
1678
+ local.get $1
1679
+ local.get $2
1680
+ f64.sub
1681
+ f64.div
1682
+ f64.const 3
1683
+ f64.mul
1684
+ f64.const 1
1685
+ f64.add
1686
+ )
1687
+ (func $start:assembly/formel~anonymous|0 (param $0 f64) (param $1 f64) (result f64)
1688
+ f64.const 6
1689
+ local.get $0
1690
+ local.get $1
1691
+ f64.div
1692
+ f64.const 5
1693
+ f64.mul
1694
+ f64.sub
1695
+ )
1696
+ (func $assembly/calculateGrade/calculateGrade@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result f32)
1697
+ block $2of2
1698
+ block $1of2
1699
+ block $0of2
1700
+ block $outOfRange
1701
+ global.get $~argumentsLength
1702
+ i32.const 2
1703
+ i32.sub
1704
+ br_table $0of2 $1of2 $2of2 $outOfRange
1705
+ end
1706
+ unreachable
1707
+ end
1708
+ local.get $0
1709
+ i32.const 2
1710
+ i32.div_s
1711
+ local.set $2
1712
+ end
1713
+ i32.const 0
1714
+ local.set $3
1715
+ end
1716
+ local.get $0
1717
+ local.get $1
1718
+ local.get $2
1719
+ local.get $3
1720
+ call $assembly/calculateGrade/calculateGrade
1721
+ )
1722
+ (func $assembly/calculateGrade/calculateGrade (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result f32)
1723
+ (local $4 f32)
1724
+ (local $5 f32)
1725
+ (local $6 f32)
1726
+ (local $7 f32)
1727
+ (local $8 i32)
1728
+ global.get $~lib/memory/__stack_pointer
1729
+ i32.const 16
1730
+ i32.sub
1731
+ global.set $~lib/memory/__stack_pointer
1732
+ call $~stack_check
1733
+ global.get $~lib/memory/__stack_pointer
1734
+ i64.const 0
1735
+ i64.store
1736
+ global.get $~lib/memory/__stack_pointer
1737
+ i64.const 0
1738
+ i64.store offset=8
1739
+ local.get $1
1740
+ i32.const 0
1741
+ i32.lt_s
1742
+ local.get $0
1743
+ i32.const 0
1744
+ i32.le_s
1745
+ i32.or
1746
+ if
1747
+ i32.const 1120
1748
+ i32.const 1280
1749
+ i32.const 19
1750
+ i32.const 5
1751
+ call $~lib/builtins/abort
1752
+ unreachable
1753
+ end
1754
+ local.get $0
1755
+ local.get $2
1756
+ i32.le_s
1757
+ if
1758
+ i32.const 1360
1759
+ i32.const 1280
1760
+ i32.const 24
1761
+ i32.const 5
1762
+ call $~lib/builtins/abort
1763
+ unreachable
1764
+ end
1765
+ local.get $3
1766
+ i32.eqz
1767
+ local.set $3
1768
+ block $folding-inner0
1769
+ local.get $1
1770
+ local.get $2
1771
+ i32.lt_s
1772
+ br_if $folding-inner0
1773
+ local.get $3
1774
+ if (result f64)
1775
+ global.get $~lib/memory/__stack_pointer
1776
+ i32.const 1056
1777
+ i32.store
1778
+ i32.const 2
1779
+ global.set $~argumentsLength
1780
+ local.get $1
1781
+ f64.convert_i32_s
1782
+ local.get $0
1783
+ f64.convert_i32_s
1784
+ i32.const 1056
1785
+ i32.load
1786
+ call_indirect (type $6)
1787
+ else
1788
+ global.get $~lib/memory/__stack_pointer
1789
+ i32.const 1088
1790
+ i32.store offset=4
1791
+ i32.const 3
1792
+ global.set $~argumentsLength
1793
+ local.get $1
1794
+ f64.convert_i32_s
1795
+ local.get $0
1796
+ f64.convert_i32_s
1797
+ local.get $2
1798
+ f64.convert_i32_s
1799
+ i32.const 1088
1800
+ i32.load
1801
+ call_indirect (type $5)
1802
+ end
1803
+ f32.demote_f64
1804
+ local.set $6
1805
+ global.get $~lib/memory/__stack_pointer
1806
+ global.get $~lib/memory/__stack_pointer
1807
+ i32.const 4
1808
+ i32.sub
1809
+ global.set $~lib/memory/__stack_pointer
1810
+ call $~stack_check
1811
+ global.get $~lib/memory/__stack_pointer
1812
+ i32.const 0
1813
+ i32.store
1814
+ global.get $~lib/memory/__stack_pointer
1815
+ i32.const 40
1816
+ i32.const 1
1817
+ call $~lib/rt/itcms/__new
1818
+ local.tee $2
1819
+ i32.const 1536
1820
+ i32.const 40
1821
+ memory.copy
1822
+ local.get $2
1823
+ i32.store
1824
+ i32.const 16
1825
+ i32.const 6
1826
+ call $~lib/rt/itcms/__new
1827
+ local.tee $3
1828
+ local.get $2
1829
+ i32.store
1830
+ local.get $2
1831
+ if
1832
+ local.get $3
1833
+ i32.eqz
1834
+ if
1835
+ i32.const 0
1836
+ i32.const 1664
1837
+ i32.const 295
1838
+ i32.const 14
1839
+ call $~lib/builtins/abort
1840
+ unreachable
1841
+ end
1842
+ local.get $2
1843
+ i32.const 20
1844
+ i32.sub
1845
+ local.tee $8
1846
+ call $~lib/rt/itcms/Object#get:color
1847
+ global.get $~lib/rt/itcms/white
1848
+ i32.eq
1849
+ if
1850
+ local.get $3
1851
+ i32.const 20
1852
+ i32.sub
1853
+ call $~lib/rt/itcms/Object#get:color
1854
+ local.tee $0
1855
+ global.get $~lib/rt/itcms/white
1856
+ i32.eqz
1857
+ i32.eq
1858
+ if
1859
+ local.get $8
1860
+ call $~lib/rt/itcms/Object#makeGray
1861
+ else
1862
+ global.get $~lib/rt/itcms/state
1863
+ i32.const 1
1864
+ i32.eq
1865
+ local.get $0
1866
+ i32.const 3
1867
+ i32.eq
1868
+ i32.and
1869
+ if
1870
+ local.get $8
1871
+ call $~lib/rt/itcms/Object#makeGray
1872
+ end
1873
+ end
1874
+ end
1875
+ end
1876
+ local.get $3
1877
+ local.get $2
1878
+ i32.store offset=4
1879
+ local.get $3
1880
+ i32.const 40
1881
+ i32.store offset=8
1882
+ local.get $3
1883
+ i32.const 10
1884
+ i32.store offset=12
1885
+ global.get $~lib/memory/__stack_pointer
1886
+ i32.const 4
1887
+ i32.add
1888
+ global.set $~lib/memory/__stack_pointer
1889
+ local.get $3
1890
+ i32.store offset=8
1891
+ local.get $6
1892
+ f32.const 4
1893
+ f32.gt
1894
+ br_if $folding-inner0
1895
+ global.get $~lib/memory/__stack_pointer
1896
+ local.get $3
1897
+ i32.store offset=12
1898
+ local.get $3
1899
+ i32.const 0
1900
+ call $~lib/array/Array<f32>#__get
1901
+ local.set $7
1902
+ global.get $~lib/memory/__stack_pointer
1903
+ local.get $3
1904
+ i32.store offset=12
1905
+ local.get $3
1906
+ i32.const 0
1907
+ call $~lib/array/Array<f32>#__get
1908
+ local.get $6
1909
+ f32.sub
1910
+ f64.promote_f32
1911
+ f64.abs
1912
+ f32.demote_f64
1913
+ local.set $4
1914
+ i32.const 1
1915
+ local.set $1
1916
+ loop $for-loop|0
1917
+ global.get $~lib/memory/__stack_pointer
1918
+ local.get $3
1919
+ i32.store offset=12
1920
+ global.get $~lib/memory/__stack_pointer
1921
+ i32.const 4
1922
+ i32.sub
1923
+ global.set $~lib/memory/__stack_pointer
1924
+ call $~stack_check
1925
+ global.get $~lib/memory/__stack_pointer
1926
+ i32.const 0
1927
+ i32.store
1928
+ global.get $~lib/memory/__stack_pointer
1929
+ local.get $3
1930
+ i32.store
1931
+ local.get $3
1932
+ i32.load offset=12
1933
+ global.get $~lib/memory/__stack_pointer
1934
+ i32.const 4
1935
+ i32.add
1936
+ global.set $~lib/memory/__stack_pointer
1937
+ local.get $1
1938
+ i32.gt_s
1939
+ if
1940
+ global.get $~lib/memory/__stack_pointer
1941
+ local.get $3
1942
+ i32.store offset=12
1943
+ local.get $3
1944
+ local.get $1
1945
+ call $~lib/array/Array<f32>#__get
1946
+ local.get $6
1947
+ f32.sub
1948
+ f64.promote_f32
1949
+ f64.abs
1950
+ f32.demote_f64
1951
+ local.tee $5
1952
+ local.get $4
1953
+ f32.lt
1954
+ if
1955
+ global.get $~lib/memory/__stack_pointer
1956
+ local.get $3
1957
+ i32.store offset=12
1958
+ local.get $3
1959
+ local.get $1
1960
+ call $~lib/array/Array<f32>#__get
1961
+ local.set $7
1962
+ local.get $5
1963
+ local.set $4
1964
+ end
1965
+ local.get $1
1966
+ i32.const 1
1967
+ i32.add
1968
+ local.set $1
1969
+ br $for-loop|0
1970
+ end
1971
+ end
1972
+ global.get $~lib/memory/__stack_pointer
1973
+ i32.const 16
1974
+ i32.add
1975
+ global.set $~lib/memory/__stack_pointer
1976
+ local.get $7
1977
+ return
1978
+ end
1979
+ global.get $~lib/memory/__stack_pointer
1980
+ i32.const 16
1981
+ i32.add
1982
+ global.set $~lib/memory/__stack_pointer
1983
+ f32.const 5
1984
+ )
1985
+ )