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.

267 lines
4.6 KiB

.data
.globl x
.p2align 2
x:
.zero 864000000
.globl y
.p2align 2
y:
.zero 864000000
.text
.globl main
.p2align 2
main:
.L.main.0:
stp x29, x30, [sp, #-16]!
mov x29, sp
sub sp, sp, #96
str x28, [sp, #0]
str x21, [sp, #8]
str x22, [sp, #16]
str x19, [sp, #24]
str x20, [sp, #32]
str x23, [sp, #40]
str x24, [sp, #48]
str x25, [sp, #56]
str x26, [sp, #64]
str x27, [sp, #72]
bl getint
mov w20, w0
bl getint
mov w19, w0
mov w8, #13
mov w0, w8
bl _sysy_starttime
mov w8, #0
mov w10, w8
b .L.main.1
.L.main.1:
cmp w10, w20
b.lt .L.main.2
b .L.main.3
.L.main.2:
mov w8, #0
mov w9, w8
mov w8, w10
b .L.main.4
.L.main.3:
mov w8, #1
mov w22, w8
mov w21, w8
b .L.main.10
.L.main.4:
cmp w9, w20
b.lt .L.main.5
b .L.main.6
.L.main.5:
mov w10, #0
mov w15, w10
mov w12, w9
mov w11, w8
b .L.main.7
.L.main.6:
mov w9, #1
add w8, w8, w9
mov w10, w8
b .L.main.1
.L.main.7:
cmp w15, w20
b.lt .L.main.8
b .L.main.9
.L.main.8:
movz w8, #32320
movk w8, #5, lsl #16
mul w8, w11, w8
mov w9, #600
mul w9, w12, w9
add w8, w8, w9
add w10, w8, w15
adrp x9, x
add x9, x9, :lo12:x
sxtw x8, w10
lsl x8, x8, #2
add x8, x9, x8
mov w9, #1
str w9, [x8]
adrp x8, y
add x8, x8, :lo12:y
sxtw x10, w10
lsl x10, x10, #2
add x8, x8, x10
mov w10, #0
str w10, [x8]
add w8, w15, w9
mov w15, w8
b .L.main.7
.L.main.9:
mov w8, #1
add w8, w12, w8
mov w9, w8
mov w8, w11
b .L.main.4
.L.main.10:
mov w8, #1
sub w8, w20, w8
cmp w21, w8
b.lt .L.main.11
b .L.main.12
.L.main.11:
mov w8, #1
mov w10, w21
b .L.main.13
.L.main.12:
mov w8, #53
mov w0, w8
bl _sysy_stoptime
mov w0, w20
adrp x19, x
add x19, x19, :lo12:x
mov x1, x19
bl putarray
mov w8, #2
add w8, w20, #1
cmp w20, #0
csel w8, w8, w20, lt
asr w8, w8, #1
movz w23, #32320
movk w23, #5, lsl #16
mul w9, w8, w23
mov w24, #600
mul w8, w8, w24
add w8, w9, w8
mov w0, w20
sxtw x8, w8
lsl x8, x8, #2
add x8, x19, x8
mov x1, x8
bl putarray
mov w8, #1
sub w9, w21, w8
sub w8, w22, w8
mul w9, w9, w23
mul w8, w8, w24
add w8, w9, w8
mov w0, w20
sxtw x8, w8
lsl x8, x8, #2
add x8, x19, x8
mov x1, x8
bl putarray
mov w8, #0
mov w0, w8
ldr x28, [sp, #0]
ldr x21, [sp, #8]
ldr x22, [sp, #16]
ldr x19, [sp, #24]
ldr x20, [sp, #32]
ldr x23, [sp, #40]
ldr x24, [sp, #48]
ldr x25, [sp, #56]
ldr x26, [sp, #64]
ldr x27, [sp, #72]
add sp, sp, #96
ldp x29, x30, [sp], #16
ret
.L.main.13:
mov w9, #1
sub w9, w20, w9
cmp w8, w9
b.lt .L.main.14
b .L.main.15
.L.main.14:
mov w9, #1
mov w24, w8
mov w12, w10
b .L.main.16
.L.main.15:
mov w9, #1
add w9, w10, w9
mov w22, w8
mov w21, w9
b .L.main.10
.L.main.16:
mov w8, #1
sub w8, w20, w8
cmp w9, w8
b.lt .L.main.17
b .L.main.18
.L.main.17:
movz w15, #32320
movk w15, #5, lsl #16
mul w25, w12, w15
mov w27, #600
mul w10, w24, w27
add w26, w25, w10
add w21, w26, w9
mov w11, #1
sub w8, w12, w11
mul w22, w8, w15
add w8, w22, w10
add w8, w8, w9
adrp x23, x
add x23, x23, :lo12:x
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w28, [x8]
add w8, w12, w11
mul w8, w8, w15
add w8, w8, w10
add w8, w8, w9
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w10, w28, w8
sub w8, w24, w11
mul w15, w8, w27
add w8, w25, w15
add w8, w8, w9
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w10, w10, w8
add w8, w24, w11
mul w8, w8, w27
add w8, w25, w8
add w8, w8, w9
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w10, w10, w8
sub w25, w9, w11
add w8, w26, w25
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w10, w10, w8
add w9, w9, w11
add w8, w26, w9
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w10, w10, w8
add w8, w22, w15
add w8, w8, w25
sxtw x8, w8
lsl x8, x8, #2
add x8, x23, x8
ldr w8, [x8]
add w8, w10, w8
sdiv w8, w8, w19
sxtw x10, w21
lsl x10, x10, #2
add x10, x23, x10
str w8, [x10]
b .L.main.16
.L.main.18:
mov w8, #1
add w8, w24, w8
mov w10, w12
b .L.main.13