You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

696 lines
13 KiB

.text
.globl main
.p2align 2
main:
stp x29, x30, [sp, #-16]!
mov x29, sp
sub sp, sp, #368
mov w8, #0
stur w8, [x29, #-4]
mov w8, #0
stur w8, [x29, #-8]
mov w8, #0
stur w8, [x29, #-12]
mov w8, #0
stur w8, [x29, #-16]
mov w8, #0
stur w8, [x29, #-20]
ldur w8, [x29, #-24]
mov w9, #0
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-52]
mov w8, #1
stur w8, [x29, #-52]
ldur w8, [x29, #-24]
mov w9, #1
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-56]
mov w8, #2
stur w8, [x29, #-56]
ldur w8, [x29, #-24]
mov w9, #2
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-60]
mov w8, #3
stur w8, [x29, #-60]
ldur w8, [x29, #-24]
mov w9, #3
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-64]
mov w8, #4
stur w8, [x29, #-64]
ldur w8, [x29, #-24]
mov w9, #4
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-68]
mov w8, #5
stur w8, [x29, #-68]
ldur w8, [x29, #-24]
mov w9, #5
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-72]
mov w8, #6
stur w8, [x29, #-72]
ldur w8, [x29, #-24]
mov w9, #6
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-76]
mov w8, #7
stur w8, [x29, #-76]
ldur w8, [x29, #-24]
mov w9, #7
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-80]
mov w8, #8
stur w8, [x29, #-80]
ldur w8, [x29, #-24]
mov w9, #8
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-84]
mov w8, #9
stur w8, [x29, #-84]
ldur w8, [x29, #-24]
mov w9, #9
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-88]
mov w8, #0
stur w8, [x29, #-88]
ldur w8, [x29, #-24]
mov w9, #10
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-92]
mov w8, #1
stur w8, [x29, #-92]
ldur w8, [x29, #-24]
mov w9, #11
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-96]
mov w8, #2
stur w8, [x29, #-96]
ldur w8, [x29, #-24]
mov w9, #12
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-100]
mov w8, #3
stur w8, [x29, #-100]
ldur w8, [x29, #-24]
mov w9, #13
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-104]
mov w8, #4
stur w8, [x29, #-104]
ldur w8, [x29, #-24]
mov w9, #14
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-108]
mov w8, #5
stur w8, [x29, #-108]
ldur w8, [x29, #-24]
mov w9, #15
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-112]
mov w8, #6
stur w8, [x29, #-112]
ldur w8, [x29, #-24]
mov w9, #16
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-116]
mov w8, #7
stur w8, [x29, #-116]
ldur w8, [x29, #-24]
mov w9, #17
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-120]
mov w8, #8
stur w8, [x29, #-120]
ldur w8, [x29, #-24]
mov w9, #18
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-124]
mov w8, #9
stur w8, [x29, #-124]
ldur w8, [x29, #-24]
mov w9, #19
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-128]
mov w8, #0
stur w8, [x29, #-128]
ldur w8, [x29, #-28]
mov w9, #0
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-132]
mov w8, #2
stur w8, [x29, #-132]
ldur w8, [x29, #-28]
mov w9, #1
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-136]
mov w8, #3
stur w8, [x29, #-136]
ldur w8, [x29, #-28]
mov w9, #2
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-140]
mov w8, #4
stur w8, [x29, #-140]
ldur w8, [x29, #-28]
mov w9, #3
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-144]
mov w8, #2
stur w8, [x29, #-144]
ldur w8, [x29, #-28]
mov w9, #4
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-148]
mov w8, #5
stur w8, [x29, #-148]
ldur w8, [x29, #-28]
mov w9, #5
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-152]
mov w8, #7
stur w8, [x29, #-152]
ldur w8, [x29, #-28]
mov w9, #6
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-156]
mov w8, #9
stur w8, [x29, #-156]
ldur w8, [x29, #-28]
mov w9, #7
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-160]
mov w8, #9
stur w8, [x29, #-160]
ldur w8, [x29, #-28]
mov w9, #8
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-164]
mov w8, #0
stur w8, [x29, #-164]
ldur w8, [x29, #-28]
mov w9, #9
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-168]
mov w8, #1
stur w8, [x29, #-168]
ldur w8, [x29, #-28]
mov w9, #10
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-172]
mov w8, #9
stur w8, [x29, #-172]
ldur w8, [x29, #-28]
mov w9, #11
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-176]
mov w8, #8
stur w8, [x29, #-176]
ldur w8, [x29, #-28]
mov w9, #12
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-180]
mov w8, #7
stur w8, [x29, #-180]
ldur w8, [x29, #-28]
mov w9, #13
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-184]
mov w8, #6
stur w8, [x29, #-184]
ldur w8, [x29, #-28]
mov w9, #14
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-188]
mov w8, #4
stur w8, [x29, #-188]
ldur w8, [x29, #-28]
mov w9, #15
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-192]
mov w8, #3
stur w8, [x29, #-192]
ldur w8, [x29, #-28]
mov w9, #16
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-196]
mov w8, #2
stur w8, [x29, #-196]
ldur w8, [x29, #-28]
mov w9, #17
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-200]
mov w8, #1
stur w8, [x29, #-200]
ldur w8, [x29, #-28]
mov w9, #18
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-204]
mov w8, #2
stur w8, [x29, #-204]
ldur w8, [x29, #-28]
mov w9, #19
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-208]
mov w8, #2
stur w8, [x29, #-208]
mov w8, #20
stur w8, [x29, #-32]
mov w8, #20
stur w8, [x29, #-36]
ldur w8, [x29, #-48]
mov w9, #0
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-212]
mov w8, #0
stur w8, [x29, #-212]
ldur w8, [x29, #-48]
mov w9, #1
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-216]
mov w8, #0
stur w8, [x29, #-216]
ldur w8, [x29, #-48]
mov w9, #2
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-220]
mov w8, #0
stur w8, [x29, #-220]
ldur w8, [x29, #-48]
mov w9, #3
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-224]
mov w8, #0
stur w8, [x29, #-224]
ldur w8, [x29, #-48]
mov w9, #4
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-228]
mov w8, #0
stur w8, [x29, #-228]
ldur w8, [x29, #-48]
mov w9, #5
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-232]
mov w8, #0
stur w8, [x29, #-232]
ldur w8, [x29, #-48]
mov w9, #6
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-236]
mov w8, #0
stur w8, [x29, #-236]
ldur w8, [x29, #-48]
mov w9, #7
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-240]
mov w8, #0
stur w8, [x29, #-240]
ldur w8, [x29, #-48]
mov w9, #8
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-244]
mov w8, #0
stur w8, [x29, #-244]
ldur w8, [x29, #-48]
mov w9, #9
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-248]
mov w8, #0
stur w8, [x29, #-248]
ldur w8, [x29, #-48]
mov w9, #10
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-252]
mov w8, #0
stur w8, [x29, #-252]
ldur w8, [x29, #-48]
mov w9, #11
lsl w9, w9, #2
add w8, w8, w9
stur w8, [x29, #-256]
mov w8, #0
stur w8, [x29, #-256]
ldur w8, [x29, #-48]
mov w9, #12
lsl w9, w9, #2
add w8, w8, w9
mov x9, #260
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #260
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #13
lsl w9, w9, #2
add w8, w8, w9
mov x9, #264
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #264
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #14
lsl w9, w9, #2
add w8, w8, w9
mov x9, #268
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #268
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #15
lsl w9, w9, #2
add w8, w8, w9
mov x9, #272
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #272
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #16
lsl w9, w9, #2
add w8, w8, w9
mov x9, #276
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #276
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #17
lsl w9, w9, #2
add w8, w8, w9
mov x9, #280
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #280
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #18
lsl w9, w9, #2
add w8, w8, w9
mov x9, #284
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #284
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #19
lsl w9, w9, #2
add w8, w8, w9
mov x9, #288
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #288
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #20
lsl w9, w9, #2
add w8, w8, w9
mov x9, #292
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #292
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #21
lsl w9, w9, #2
add w8, w8, w9
mov x9, #296
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #296
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #22
lsl w9, w9, #2
add w8, w8, w9
mov x9, #300
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #300
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #23
lsl w9, w9, #2
add w8, w8, w9
mov x9, #304
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #304
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #24
lsl w9, w9, #2
add w8, w8, w9
mov x9, #308
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #308
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #25
lsl w9, w9, #2
add w8, w8, w9
mov x9, #312
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #312
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #26
lsl w9, w9, #2
add w8, w8, w9
mov x9, #316
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #316
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #27
lsl w9, w9, #2
add w8, w8, w9
mov x9, #320
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #320
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #28
lsl w9, w9, #2
add w8, w8, w9
mov x9, #324
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #324
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #29
lsl w9, w9, #2
add w8, w8, w9
mov x9, #328
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #328
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #30
lsl w9, w9, #2
add w8, w8, w9
mov x9, #332
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #332
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #31
lsl w9, w9, #2
add w8, w8, w9
mov x9, #336
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #336
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #32
lsl w9, w9, #2
add w8, w8, w9
mov x9, #340
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #340
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #33
lsl w9, w9, #2
add w8, w8, w9
mov x9, #344
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #344
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #34
lsl w9, w9, #2
add w8, w8, w9
mov x9, #348
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #348
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #35
lsl w9, w9, #2
add w8, w8, w9
mov x9, #352
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #352
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #36
lsl w9, w9, #2
add w8, w8, w9
mov x9, #356
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #356
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #37
lsl w9, w9, #2
add w8, w8, w9
mov x9, #360
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #360
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #38
lsl w9, w9, #2
add w8, w8, w9
mov x9, #364
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #364
sub x9, x29, x9
str w8, [x9]
ldur w8, [x29, #-48]
mov w9, #39
lsl w9, w9, #2
add w8, w8, w9
mov x9, #368
sub x9, x29, x9
str w8, [x9]
mov w8, #0
mov x9, #368
sub x9, x29, x9
str w8, [x9]
mov w8, #0
stur w8, [x29, #-4]