forked from NUDT-compiler/nudt-compiler-cpp
parent
2c43ea28f9
commit
39d1f8119f
@ -1,591 +1,358 @@
|
||||
.data
|
||||
.globl maxn
|
||||
.p2align 2
|
||||
maxn:
|
||||
.word 18
|
||||
.globl mod
|
||||
.p2align 2
|
||||
mod:
|
||||
.word 1000000007
|
||||
.bss
|
||||
.globl dp
|
||||
.globl A
|
||||
.p2align 2
|
||||
dp:
|
||||
.space 52907904
|
||||
.data
|
||||
.bss
|
||||
.globl list
|
||||
A:
|
||||
.space 4194304
|
||||
.globl B
|
||||
.p2align 2
|
||||
list:
|
||||
.space 800
|
||||
.data
|
||||
.bss
|
||||
.globl cns
|
||||
B:
|
||||
.space 4194304
|
||||
.globl C
|
||||
.p2align 2
|
||||
cns:
|
||||
.space 80
|
||||
.data
|
||||
C:
|
||||
.space 4194304
|
||||
|
||||
.text
|
||||
.globl equal
|
||||
.globl main
|
||||
.p2align 2
|
||||
equal:
|
||||
.L.equal.0:
|
||||
main:
|
||||
.L.main.0:
|
||||
stp x29, x30, [sp, #-16]!
|
||||
mov x29, sp
|
||||
mov w8, w0
|
||||
mov w9, w1
|
||||
cmp w8, w9
|
||||
b.eq .L.equal.1
|
||||
b .L.equal.2
|
||||
.L.equal.1:
|
||||
sub sp, sp, #48
|
||||
str x21, [sp, #0]
|
||||
str x19, [sp, #8]
|
||||
str x20, [sp, #16]
|
||||
bl getint
|
||||
mov w19, w0
|
||||
bl getint
|
||||
mov w20, w0
|
||||
mov w21, #0
|
||||
b .L.main.1
|
||||
.L.main.55:
|
||||
lsl w8, w11, #10
|
||||
add w8, w8, w10
|
||||
adrp x9, A
|
||||
add x9, x9, :lo12:A
|
||||
ldr w8, [x9, w8, uxtw #2]
|
||||
mul w9, w8, w8
|
||||
madd w21, w8, w8, w21
|
||||
mov w8, #1
|
||||
mov w0, w8
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
.L.equal.2:
|
||||
mov w8, #0
|
||||
mov w0, w8
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
|
||||
.text
|
||||
.globl dfs
|
||||
.p2align 2
|
||||
dfs:
|
||||
.L.dfs.0:
|
||||
stp x29, x30, [sp, #-16]!
|
||||
mov x29, sp
|
||||
sub sp, sp, #96
|
||||
str x25, [sp, #0]
|
||||
str x27, [sp, #8]
|
||||
str x26, [sp, #16]
|
||||
str x24, [sp, #24]
|
||||
str x22, [sp, #32]
|
||||
str x20, [sp, #40]
|
||||
str x23, [sp, #48]
|
||||
str x21, [sp, #56]
|
||||
str x19, [sp, #64]
|
||||
mov w24, w0
|
||||
mov w23, w1
|
||||
mov w22, w2
|
||||
mov w20, w3
|
||||
mov w21, w4
|
||||
mov w19, w5
|
||||
movz w8, #13936
|
||||
movk w8, #11, lsl #16
|
||||
mul w8, w24, w8
|
||||
mov w9, #40824
|
||||
mul w9, w23, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #2268
|
||||
mul w9, w22, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #126
|
||||
mul w9, w20, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #7
|
||||
mul w9, w21, w9
|
||||
add w8, w8, w9
|
||||
add w8, w8, w19
|
||||
adrp x9, dp
|
||||
add x9, x9, :lo12:dp
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
ldr w9, [x8]
|
||||
mov w8, #-1
|
||||
cmp w9, w8
|
||||
b.ne .L.dfs.1
|
||||
b .L.dfs.2
|
||||
.L.dfs.1:
|
||||
movz w8, #13936
|
||||
movk w8, #11, lsl #16
|
||||
mul w8, w24, w8
|
||||
mov w9, #40824
|
||||
mul w9, w23, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #2268
|
||||
mul w9, w22, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #126
|
||||
mul w9, w20, w9
|
||||
add w8, w8, w9
|
||||
mov w9, #7
|
||||
mul w9, w21, w9
|
||||
add w8, w8, w9
|
||||
add w8, w8, w19
|
||||
adrp x9, dp
|
||||
add x9, x9, :lo12:dp
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
ldr w8, [x8]
|
||||
mov w0, w8
|
||||
ldr x25, [sp, #0]
|
||||
ldr x27, [sp, #8]
|
||||
ldr x26, [sp, #16]
|
||||
ldr x24, [sp, #24]
|
||||
ldr x22, [sp, #32]
|
||||
ldr x20, [sp, #40]
|
||||
ldr x23, [sp, #48]
|
||||
ldr x21, [sp, #56]
|
||||
ldr x19, [sp, #64]
|
||||
add sp, sp, #96
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
.L.dfs.2:
|
||||
add w8, w24, w23
|
||||
add w8, w8, w22
|
||||
add w8, w8, w20
|
||||
add w8, w8, w21
|
||||
mov w9, #0
|
||||
cmp w8, w9
|
||||
b.eq .L.dfs.3
|
||||
b .L.dfs.4
|
||||
.L.dfs.3:
|
||||
add w10, w10, #1
|
||||
b .L.main.54
|
||||
.L.main.54:
|
||||
cmp w10, w19
|
||||
b.lt .L.main.55
|
||||
.L.main.56:
|
||||
mov w8, #1
|
||||
mov w0, w8
|
||||
ldr x25, [sp, #0]
|
||||
ldr x27, [sp, #8]
|
||||
ldr x26, [sp, #16]
|
||||
ldr x24, [sp, #24]
|
||||
ldr x22, [sp, #32]
|
||||
ldr x20, [sp, #40]
|
||||
ldr x23, [sp, #48]
|
||||
ldr x21, [sp, #56]
|
||||
ldr x19, [sp, #64]
|
||||
add sp, sp, #96
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
.L.dfs.4:
|
||||
mov w8, #0
|
||||
cmp w24, w8
|
||||
b.ne .L.dfs.5
|
||||
mov w8, #0
|
||||
mov w25, w8
|
||||
b .L.dfs.10
|
||||
.L.dfs.5:
|
||||
b .L.dfs.6
|
||||
.L.dfs.6:
|
||||
mov w8, #2
|
||||
cmp w19, w8
|
||||
b.eq .L.dfs.7
|
||||
b .L.dfs.8
|
||||
.L.dfs.7:
|
||||
add w9, w11, #1
|
||||
mov w8, w12
|
||||
b .L.main.51
|
||||
.L.main.51:
|
||||
cmp w9, w19
|
||||
b.ge .L.main.53
|
||||
.L.main.52:
|
||||
mov w10, #0
|
||||
mov w12, w8
|
||||
mov w11, w9
|
||||
b .L.main.54
|
||||
.L.main.46:
|
||||
lsl w8, w11, #10
|
||||
add w8, w8, w15
|
||||
adrp x9, C
|
||||
add x9, x9, :lo12:C
|
||||
ldr w8, [x9, w8, uxtw #2]
|
||||
lsl w9, w15, #10
|
||||
add w21, w9, w10
|
||||
adrp x9, A
|
||||
add x9, x9, :lo12:A
|
||||
ldr w21, [x9, w21, uxtw #2]
|
||||
mul w9, w8, w21
|
||||
madd w12, w8, w21, w12
|
||||
mov w8, #1
|
||||
b .L.dfs.9
|
||||
.L.dfs.8:
|
||||
mov w8, #0
|
||||
b .L.dfs.9
|
||||
.L.dfs.9:
|
||||
sub w25, w24, w8
|
||||
add w8, w15, #1
|
||||
mov w15, w8
|
||||
b .L.main.45
|
||||
.L.main.45:
|
||||
cmp w15, w19
|
||||
b.lt .L.main.46
|
||||
.L.main.47:
|
||||
lsl w8, w11, #10
|
||||
add w9, w8, w10
|
||||
adrp x8, A
|
||||
add x8, x8, :lo12:A
|
||||
str w12, [x8, w9, uxtw #2]
|
||||
mov w8, #1
|
||||
sub w9, w24, w8
|
||||
mov w0, w9
|
||||
mov w1, w23
|
||||
mov w2, w22
|
||||
mov w3, w20
|
||||
mov w4, w21
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w8, w0
|
||||
mul w8, w25, w8
|
||||
mov w9, #0
|
||||
add w8, w9, w8
|
||||
movz w9, #51719
|
||||
movk w9, #15258, lsl #16
|
||||
sdiv w14, w8, w9
|
||||
msub w8, w14, w9, w8
|
||||
mov w25, w8
|
||||
b .L.dfs.10
|
||||
.L.dfs.10:
|
||||
add w8, w10, #1
|
||||
mov w10, w8
|
||||
mov w9, w11
|
||||
b .L.main.42
|
||||
.L.main.42:
|
||||
cmp w10, w19
|
||||
b.ge .L.main.44
|
||||
.L.main.43:
|
||||
mov w8, #0
|
||||
cmp w23, w8
|
||||
b.ne .L.dfs.11
|
||||
mov w27, w25
|
||||
b .L.dfs.16
|
||||
.L.dfs.11:
|
||||
b .L.dfs.12
|
||||
.L.dfs.12:
|
||||
mov w12, w8
|
||||
mov w15, w8
|
||||
mov w11, w9
|
||||
b .L.main.45
|
||||
.L.main.53:
|
||||
mov w9, #1
|
||||
add w8, w8, #1
|
||||
mov w9, w8
|
||||
b .L.main.48
|
||||
.L.main.48:
|
||||
cmp w9, w20
|
||||
b.ge .L.main.50
|
||||
.L.main.49:
|
||||
mov w8, w9
|
||||
mov w9, #0
|
||||
b .L.main.51
|
||||
.L.main.37:
|
||||
lsl w8, w11, #10
|
||||
add w12, w8, w15
|
||||
adrp x10, C
|
||||
add x10, x10, :lo12:C
|
||||
ldr w9, [x10, w12, uxtw #2]
|
||||
mul w8, w9, w9
|
||||
mov w8, #7
|
||||
madd w9, w9, w9, w8
|
||||
mov w8, #3
|
||||
cmp w19, w8
|
||||
b.eq .L.dfs.13
|
||||
b .L.dfs.14
|
||||
.L.dfs.13:
|
||||
movz w8, #21846
|
||||
movk w8, #21845, lsl #16
|
||||
smull x8, w9, w8
|
||||
lsr x8, x8, #32
|
||||
asr w9, w9, #31
|
||||
sub w8, w8, w9
|
||||
str w8, [x10, w12, uxtw #2]
|
||||
mov w8, #1
|
||||
b .L.dfs.15
|
||||
.L.dfs.14:
|
||||
mov w8, #0
|
||||
b .L.dfs.15
|
||||
.L.dfs.15:
|
||||
sub w26, w23, w8
|
||||
mov w8, #1
|
||||
add w9, w24, w8
|
||||
sub w8, w23, w8
|
||||
mov w0, w9
|
||||
mov w1, w8
|
||||
mov w2, w22
|
||||
mov w3, w20
|
||||
mov w4, w21
|
||||
mov w8, #2
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w8, w0
|
||||
mul w8, w26, w8
|
||||
add w8, w25, w8
|
||||
movz w9, #51719
|
||||
movk w9, #15258, lsl #16
|
||||
sdiv w14, w8, w9
|
||||
msub w8, w14, w9, w8
|
||||
mov w27, w8
|
||||
b .L.dfs.16
|
||||
.L.dfs.16:
|
||||
mov w8, #0
|
||||
cmp w22, w8
|
||||
b.ne .L.dfs.17
|
||||
mov w26, w27
|
||||
b .L.dfs.22
|
||||
.L.dfs.17:
|
||||
b .L.dfs.18
|
||||
.L.dfs.18:
|
||||
mov w8, #4
|
||||
cmp w19, w8
|
||||
b.eq .L.dfs.19
|
||||
b .L.dfs.20
|
||||
.L.dfs.19:
|
||||
add w8, w15, #1
|
||||
mov w15, w8
|
||||
b .L.main.36
|
||||
.L.main.36:
|
||||
cmp w15, w19
|
||||
b.lt .L.main.37
|
||||
.L.main.38:
|
||||
mov w8, #1
|
||||
b .L.dfs.21
|
||||
.L.dfs.20:
|
||||
mov w8, #0
|
||||
b .L.dfs.21
|
||||
.L.dfs.21:
|
||||
sub w25, w22, w8
|
||||
add w8, w11, #1
|
||||
mov w11, w8
|
||||
b .L.main.33
|
||||
.L.main.33:
|
||||
cmp w11, w19
|
||||
b.ge .L.main.35
|
||||
.L.main.34:
|
||||
mov w15, #0
|
||||
b .L.main.36
|
||||
.L.main.44:
|
||||
mov w8, #1
|
||||
add w9, w23, w8
|
||||
sub w8, w22, w8
|
||||
mov w0, w24
|
||||
mov w1, w9
|
||||
mov w2, w8
|
||||
mov w3, w20
|
||||
mov w4, w21
|
||||
add w8, w9, #1
|
||||
mov w9, w8
|
||||
b .L.main.39
|
||||
.L.main.39:
|
||||
cmp w9, w19
|
||||
b.ge .L.main.41
|
||||
.L.main.40:
|
||||
mov w10, #0
|
||||
b .L.main.42
|
||||
.L.main.31:
|
||||
lsl w8, w12, #10
|
||||
add w11, w8, w15
|
||||
adrp x8, A
|
||||
add x8, x8, :lo12:A
|
||||
ldr w8, [x8, w11, uxtw #2]
|
||||
lsl w10, w8, #1
|
||||
adrp x8, B
|
||||
add x8, x8, :lo12:B
|
||||
ldr w9, [x8, w11, uxtw #2]
|
||||
mov w8, #3
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w8, w0
|
||||
mul w8, w25, w8
|
||||
add w9, w27, w8
|
||||
movz w8, #51719
|
||||
movk w8, #15258, lsl #16
|
||||
sdiv w14, w9, w8
|
||||
msub w8, w14, w8, w9
|
||||
mov w26, w8
|
||||
b .L.dfs.22
|
||||
.L.dfs.22:
|
||||
mov w8, #0
|
||||
cmp w20, w8
|
||||
b.ne .L.dfs.23
|
||||
mov w25, w26
|
||||
b .L.dfs.28
|
||||
.L.dfs.23:
|
||||
b .L.dfs.24
|
||||
.L.dfs.24:
|
||||
mov w8, #5
|
||||
cmp w19, w8
|
||||
b.eq .L.dfs.25
|
||||
b .L.dfs.26
|
||||
.L.dfs.25:
|
||||
mul w8, w9, w8
|
||||
add w9, w10, w8
|
||||
adrp x8, C
|
||||
add x8, x8, :lo12:C
|
||||
str w9, [x8, w11, uxtw #2]
|
||||
mov w8, #1
|
||||
b .L.dfs.27
|
||||
.L.dfs.26:
|
||||
mov w8, #0
|
||||
b .L.dfs.27
|
||||
.L.dfs.27:
|
||||
sub w25, w20, w8
|
||||
add w8, w15, #1
|
||||
mov w15, w8
|
||||
b .L.main.30
|
||||
.L.main.30:
|
||||
cmp w15, w19
|
||||
b.lt .L.main.31
|
||||
.L.main.32:
|
||||
mov w8, #1
|
||||
add w9, w22, w8
|
||||
sub w8, w20, w8
|
||||
mov w0, w24
|
||||
mov w1, w23
|
||||
mov w2, w9
|
||||
mov w3, w8
|
||||
mov w4, w21
|
||||
mov w8, #4
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w8, w0
|
||||
mul w8, w25, w8
|
||||
add w9, w26, w8
|
||||
movz w8, #51719
|
||||
movk w8, #15258, lsl #16
|
||||
sdiv w14, w9, w8
|
||||
msub w8, w14, w8, w9
|
||||
mov w25, w8
|
||||
b .L.dfs.28
|
||||
.L.dfs.28:
|
||||
add w8, w12, #1
|
||||
mov w12, w8
|
||||
b .L.main.27
|
||||
.L.main.27:
|
||||
cmp w12, w19
|
||||
b.ge .L.main.29
|
||||
.L.main.28:
|
||||
mov w15, #0
|
||||
b .L.main.30
|
||||
.L.main.50:
|
||||
mov w8, #105
|
||||
mov w0, w8
|
||||
bl _sysy_stoptime
|
||||
mov w0, w21
|
||||
bl putint
|
||||
mov w8, #10
|
||||
mov w0, w8
|
||||
bl putch
|
||||
mov w8, #0
|
||||
cmp w21, w8
|
||||
b.ne .L.dfs.29
|
||||
mov w10, w25
|
||||
b .L.dfs.30
|
||||
.L.dfs.29:
|
||||
mov w8, #1
|
||||
add w9, w20, w8
|
||||
sub w8, w21, w8
|
||||
mov w0, w24
|
||||
mov w1, w23
|
||||
mov w2, w22
|
||||
mov w3, w9
|
||||
mov w4, w8
|
||||
mov w8, #5
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w8, w0
|
||||
mul w8, w21, w8
|
||||
add w9, w25, w8
|
||||
movz w8, #51719
|
||||
movk w8, #15258, lsl #16
|
||||
sdiv w14, w9, w8
|
||||
msub w8, w14, w8, w9
|
||||
mov w10, w8
|
||||
b .L.dfs.30
|
||||
.L.dfs.30:
|
||||
movz w8, #13936
|
||||
movk w8, #11, lsl #16
|
||||
mul w9, w24, w8
|
||||
mov w8, #40824
|
||||
mul w8, w23, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #2268
|
||||
mul w8, w22, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #126
|
||||
mul w8, w20, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #7
|
||||
mul w8, w21, w8
|
||||
add w8, w9, w8
|
||||
add w8, w8, w19
|
||||
movz w9, #51719
|
||||
movk w9, #15258, lsl #16
|
||||
sdiv w14, w10, w9
|
||||
msub w9, w14, w9, w10
|
||||
adrp x10, dp
|
||||
add x10, x10, :lo12:dp
|
||||
sxtw x11, w8
|
||||
lsl x11, x11, #2
|
||||
add x11, x10, x11
|
||||
str w9, [x11]
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x8, x10, x8
|
||||
ldr w8, [x8]
|
||||
mov w0, w8
|
||||
ldr x25, [sp, #0]
|
||||
ldr x27, [sp, #8]
|
||||
ldr x26, [sp, #16]
|
||||
ldr x24, [sp, #24]
|
||||
ldr x22, [sp, #32]
|
||||
ldr x20, [sp, #40]
|
||||
ldr x23, [sp, #48]
|
||||
ldr x21, [sp, #56]
|
||||
ldr x19, [sp, #64]
|
||||
add sp, sp, #96
|
||||
ldr x21, [sp, #0]
|
||||
ldr x19, [sp, #8]
|
||||
ldr x20, [sp, #16]
|
||||
add sp, sp, #48
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
|
||||
.text
|
||||
.globl main
|
||||
.p2align 2
|
||||
main:
|
||||
.L.main.0:
|
||||
stp x29, x30, [sp, #-16]!
|
||||
mov x29, sp
|
||||
sub sp, sp, #48
|
||||
str x19, [sp, #0]
|
||||
str x20, [sp, #8]
|
||||
str x21, [sp, #16]
|
||||
str x22, [sp, #24]
|
||||
bl getint
|
||||
mov w19, w0
|
||||
mov w8, #0
|
||||
.L.main.25:
|
||||
lsl w10, w8, #10
|
||||
add w10, w10, w9
|
||||
adrp x11, B
|
||||
add x11, x11, :lo12:B
|
||||
mov w12, #-1
|
||||
str w12, [x11, w10, uxtw #2]
|
||||
mov w10, #1
|
||||
add w9, w9, #1
|
||||
b .L.main.24
|
||||
.L.main.24:
|
||||
cmp w9, w19
|
||||
b.lt .L.main.25
|
||||
.L.main.26:
|
||||
mov w9, w8
|
||||
b .L.main.1
|
||||
.L.main.3:
|
||||
mov w8, #0
|
||||
mov w20, w8
|
||||
b .L.main.23
|
||||
.L.main.23:
|
||||
mov w8, #1
|
||||
add w8, w9, #1
|
||||
b .L.main.19
|
||||
.L.main.19:
|
||||
cmp w20, w19
|
||||
b.lt .L.main.20
|
||||
b .L.main.21
|
||||
cmp w8, w19
|
||||
b.ge .L.main.21
|
||||
.L.main.20:
|
||||
bl getint
|
||||
mov w10, w0
|
||||
adrp x9, list
|
||||
add x9, x9, :lo12:list
|
||||
sxtw x8, w20
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
str w10, [x8]
|
||||
sxtw x8, w20
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
ldr w11, [x8]
|
||||
sxtw x8, w20
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
ldr w9, [x8]
|
||||
adrp x8, cns
|
||||
add x8, x8, :lo12:cns
|
||||
sxtw x9, w9
|
||||
lsl x9, x9, #2
|
||||
add x9, x8, x9
|
||||
ldr w9, [x9]
|
||||
mov w10, #1
|
||||
add w9, w9, w10
|
||||
sxtw x11, w11
|
||||
lsl x11, x11, #2
|
||||
add x8, x8, x11
|
||||
str w9, [x8]
|
||||
add w8, w20, w10
|
||||
mov w20, w8
|
||||
b .L.main.19
|
||||
.L.main.5:
|
||||
mov w10, #0
|
||||
mov w11, w10
|
||||
mov w10, w8
|
||||
b .L.main.7
|
||||
.L.main.9:
|
||||
mov w8, #1
|
||||
add w8, w10, w8
|
||||
.L.main.4:
|
||||
mov w10, #18
|
||||
cmp w8, w10
|
||||
b.lt .L.main.5
|
||||
.L.main.6:
|
||||
mov w8, #1
|
||||
add w8, w9, w8
|
||||
mov w9, #2
|
||||
add w9, w19, #1
|
||||
cmp w19, #0
|
||||
csel w9, w9, w19, lt
|
||||
asr w9, w9, #1
|
||||
cmp w8, w9
|
||||
b.lt .L.main.22
|
||||
mov w9, w8
|
||||
.L.main.1:
|
||||
mov w8, #18
|
||||
cmp w9, w8
|
||||
b.lt .L.main.2
|
||||
b .L.main.3
|
||||
.L.main.2:
|
||||
mov w8, #0
|
||||
b .L.main.4
|
||||
.L.main.12:
|
||||
mov w8, #1
|
||||
add w8, w11, w8
|
||||
mov w11, w8
|
||||
.L.main.7:
|
||||
mov w8, #18
|
||||
cmp w11, w8
|
||||
b.lt .L.main.8
|
||||
b .L.main.9
|
||||
.L.main.8:
|
||||
b .L.main.23
|
||||
.L.main.22:
|
||||
mov w9, #0
|
||||
b .L.main.24
|
||||
.L.main.41:
|
||||
mov w8, #0
|
||||
mov w9, w8
|
||||
mov w21, w8
|
||||
b .L.main.10
|
||||
.L.main.14:
|
||||
mov w8, #0
|
||||
mov w10, w8
|
||||
mov w11, w22
|
||||
mov w21, w9
|
||||
b .L.main.16
|
||||
b .L.main.48
|
||||
.L.main.17:
|
||||
movz w8, #13936
|
||||
movk w8, #11, lsl #16
|
||||
mul w9, w21, w8
|
||||
mov w8, #40824
|
||||
mul w8, w12, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #2268
|
||||
mul w8, w20, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #126
|
||||
mul w8, w11, w8
|
||||
add w9, w9, w8
|
||||
mov w8, #7
|
||||
mul w8, w15, w8
|
||||
add w8, w9, w8
|
||||
add w8, w8, w10
|
||||
adrp x9, dp
|
||||
add x9, x9, :lo12:dp
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x9, x9, x8
|
||||
mov w8, #-1
|
||||
str w8, [x9]
|
||||
mov w8, #1
|
||||
add w8, w10, w8
|
||||
mov w10, w8
|
||||
lsl w10, w8, #10
|
||||
add w10, w10, w9
|
||||
adrp x11, A
|
||||
add x11, x11, :lo12:A
|
||||
mov w12, #-1
|
||||
str w12, [x11, w10, uxtw #2]
|
||||
mov w10, #1
|
||||
add w9, w9, #1
|
||||
b .L.main.16
|
||||
.L.main.16:
|
||||
mov w8, #7
|
||||
cmp w10, w8
|
||||
cmp w9, w19
|
||||
b.lt .L.main.17
|
||||
.L.main.18:
|
||||
mov w8, #1
|
||||
add w8, w15, w8
|
||||
mov w15, w8
|
||||
mov w22, w11
|
||||
mov w9, w21
|
||||
.L.main.13:
|
||||
mov w8, #18
|
||||
cmp w15, w8
|
||||
b.lt .L.main.14
|
||||
mov w9, w8
|
||||
b .L.main.15
|
||||
.L.main.15:
|
||||
mov w8, #1
|
||||
add w8, w22, w8
|
||||
mov w21, w8
|
||||
mov w11, w20
|
||||
mov w10, w12
|
||||
add w8, w9, #1
|
||||
b .L.main.11
|
||||
.L.main.11:
|
||||
cmp w8, w19
|
||||
b.ge .L.main.13
|
||||
.L.main.12:
|
||||
mov w9, #2
|
||||
add w9, w19, #1
|
||||
cmp w19, #0
|
||||
csel w9, w9, w19, lt
|
||||
asr w9, w9, #1
|
||||
cmp w8, w9
|
||||
b.ge .L.main.14
|
||||
mov w9, w8
|
||||
b .L.main.15
|
||||
.L.main.14:
|
||||
mov w9, #0
|
||||
b .L.main.16
|
||||
.L.main.35:
|
||||
mov w9, #0
|
||||
b .L.main.39
|
||||
.L.main.29:
|
||||
mov w11, #0
|
||||
b .L.main.33
|
||||
.L.main.10:
|
||||
mov w8, #18
|
||||
mov w8, #1
|
||||
add w21, w21, #1
|
||||
b .L.main.6
|
||||
.L.main.6:
|
||||
cmp w21, w19
|
||||
b.ge .L.main.8
|
||||
.L.main.7:
|
||||
mov w8, #2
|
||||
add w8, w19, #1
|
||||
cmp w19, #0
|
||||
csel w8, w8, w19, lt
|
||||
asr w8, w8, #1
|
||||
cmp w21, w8
|
||||
b.lt .L.main.11
|
||||
b .L.main.12
|
||||
.L.main.11:
|
||||
mov w8, #0
|
||||
mov w15, w8
|
||||
mov w22, w21
|
||||
mov w20, w11
|
||||
mov w12, w10
|
||||
b .L.main.13
|
||||
b.lt .L.main.10
|
||||
.L.main.9:
|
||||
lsl w8, w21, #10
|
||||
adrp x9, B
|
||||
add x9, x9, :lo12:B
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
mov x0, x8
|
||||
bl getarray
|
||||
mov w8, w0
|
||||
b .L.main.10
|
||||
.L.main.21:
|
||||
adrp x8, cns
|
||||
add x8, x8, :lo12:cns
|
||||
mov x9, #4
|
||||
add x9, x8, x9
|
||||
ldr w9, [x9]
|
||||
mov x10, #8
|
||||
add x10, x8, x10
|
||||
ldr w15, [x10]
|
||||
mov x10, #12
|
||||
add x10, x8, x10
|
||||
ldr w12, [x10]
|
||||
mov x10, #16
|
||||
add x10, x8, x10
|
||||
ldr w11, [x10]
|
||||
mov x10, #20
|
||||
add x8, x8, x10
|
||||
ldr w8, [x8]
|
||||
mov w0, w9
|
||||
mov w1, w15
|
||||
mov w2, w12
|
||||
mov w3, w11
|
||||
mov w4, w8
|
||||
mov w12, #0
|
||||
b .L.main.27
|
||||
.L.main.13:
|
||||
mov w8, #0
|
||||
mov w5, w8
|
||||
bl dfs
|
||||
mov w19, w0
|
||||
mov w0, w19
|
||||
bl putint
|
||||
mov w0, w19
|
||||
ldr x19, [sp, #0]
|
||||
ldr x20, [sp, #8]
|
||||
ldr x21, [sp, #16]
|
||||
ldr x22, [sp, #24]
|
||||
add sp, sp, #48
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
b .L.main.19
|
||||
.L.main.8:
|
||||
mov w8, #25
|
||||
mov w0, w8
|
||||
bl _sysy_starttime
|
||||
mov w8, #0
|
||||
b .L.main.11
|
||||
.L.main.5:
|
||||
mov w8, #1
|
||||
add w8, w21, #1
|
||||
mov w21, w8
|
||||
b .L.main.1
|
||||
.L.main.1:
|
||||
cmp w21, w19
|
||||
b.ge .L.main.3
|
||||
.L.main.2:
|
||||
mov w8, #2
|
||||
add w8, w19, #1
|
||||
cmp w19, #0
|
||||
csel w8, w8, w19, lt
|
||||
asr w8, w8, #1
|
||||
cmp w21, w8
|
||||
b.ge .L.main.5
|
||||
.L.main.4:
|
||||
lsl w8, w21, #10
|
||||
adrp x9, A
|
||||
add x9, x9, :lo12:A
|
||||
sxtw x8, w8
|
||||
lsl x8, x8, #2
|
||||
add x8, x9, x8
|
||||
mov x0, x8
|
||||
bl getarray
|
||||
mov w8, w0
|
||||
b .L.main.5
|
||||
.L.main.3:
|
||||
mov w21, #0
|
||||
b .L.main.6
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,19 +1,14 @@
|
||||
.data
|
||||
.bss
|
||||
.globl a
|
||||
.p2align 2
|
||||
a:
|
||||
.space 400
|
||||
.data
|
||||
|
||||
.text
|
||||
.globl main
|
||||
.p2align 2
|
||||
main:
|
||||
.L.main.0:
|
||||
stp x29, x30, [sp, #-16]!
|
||||
mov x29, sp
|
||||
mov w8, #0
|
||||
mov w0, w8
|
||||
ldp x29, x30, [sp], #16
|
||||
ret
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue