.
arch armv8-a
.file "drystone.c"
.text
.align 2
.p2align 3,,7
.global Proc1
.type Proc1, %function
Proc1:
.LFB51:
.cfi_startproc
adrp x2, :got:PtrGlb
adrp x4, :got:IntGlob
ldr x3, [x0]
mov w5, 5
ldr x2, [x2, #:got_lo12:PtrGlb]
ldr x4, [x4, #:got_lo12:IntGlob]
ldr x1, [x2]
ldp x6, x7, [x1]
stp x6, x7, [x3]
ldr w6, [x4]
ldp x8, x9, [x1, 16]
stp x8, x9, [x3, 16]
add w7, w6, 12
ldp x8, x9, [x1, 32]
stp x8, x9, [x3, 32]
ldr x4, [x0]
ldr x8, [x1, 48]
str x8, [x3, 48]
str w5, [x0, 16]
str x4, [x4]
str w5, [x4, 16]
ldr x4, [x0]
ldr x3, [x1]
ldr x1, [x4]
str x3, [x1]
ldr x2, [x2]
ldr x1, [x0]
str w7, [x2, 16]
ldr w3, [x1, 8]
cbz w3, .L11
ldp x2, x3, [x1]
stp x2, x3, [x0]
ldp x2, x3, [x1, 16]
stp x2, x3, [x0, 16]
ldp x2, x3, [x1, 32]
stp x2, x3, [x0, 32]
ldr x1, [x1, 48]
str x1, [x0, 48]
mov w0, 0
ret
.p2align 2,,3
.L11:
mov w3, 6
str w3, [x1, 16]
ldr w3, [x0, 12]
cmp w3, 2
beq .L3
mov w4, 3
str w4, [x1, 12]
cmp w3, 1
beq .L4
bls .L9
cmp w3, 4
bne .L7
mov w3, 2
str w3, [x1, 12]
.L7:
ldr x2, [x2]
str x2, [x1]
ldr x1, [x0]
ldr w0, [x1, 16]
add w0, w0, 12
str w0, [x1, 16]
mov w0, 0
ret
.p2align 2,,3
.L4:
cmp w6, 100
ble .L7
.L9:
str wzr, [x1, 12]
b .L7
.p2align 2,,3
.L3:
mov w3, 1
str w3, [x1, 12]
b .L7
.cfi_endproc
.LFE51:
.size Proc1, .-Proc1
.section .rodata.str1.8,"aMS",@progbits,1
.align 3
.LC0:
.string "DHRYSTONE PROGRAM, SOME STRING"
.align 3
.LC2:
.string "Dhrystone time for %ld passes = %ld\n"
.align 3
.LC3:
.string "This machine benchmarks at %ld dhrystones/second\n"
.text
.align 2
.p2align 3,,7
.global Proc0
.type Proc0, %function
Proc0:
.LFB50:
.cfi_startproc
stp x29, x30, [sp, -240]!
.cfi_def_cfa_offset 240
.cfi_offset 29, -240
.cfi_offset 30, -232
adrp x1, :got:__stack_chk_guard
mov w0, 0
mov x29, sp
ldr x2, [x1, #:got_lo12:__stack_chk_guard]
stp x19, x20, [sp, 16]
.cfi_offset 19, -224
.cfi_offset 20, -216
adrp x20, :got:PtrGlb
ldr x1, [x2]
str x1, [sp, 232]
mov x1,0
stp x21, x22, [sp, 32]
mov w19, 61568
stp x23, x24, [sp, 48]
.cfi_offset 21, -208
.cfi_offset 22, -200
.cfi_offset 23, -192
.cfi_offset 24, -184
add x24, sp, 168
movk w19, 0x2fa, lsl 16
stp x25, x26, [sp, 64]
.cfi_offset 25, -176
.cfi_offset 26, -168
add x26, sp, 200
adrp x23, :got:Array1Glob
stp x27, x28, [sp, 80]
.cfi_offset 27, -160
.cfi_offset 28, -152
bl time
mov x21, x0
mov w0, 0
bl time
mov x2, x0
mov x0, 56
sub x1, x2, x21
str x1, [sp, 144]
adrp x28, :got:BoolGlob
adrp x22, :got:Array2Glob
adrp x21, :got:IntGlob
bl malloc
mov x25, x0
adrp x2, :got:PtrGlbNext
mov x0, 56
ldr x2, [x2, #:got_lo12:PtrGlbNext]
str x25, [x2]
bl malloc
adrp x3, .LC0
mov x2, x0
add x3, x3, :lo12:.LC0
adrp x1, .LC4
ldr x5, [x20, #:got_lo12:PtrGlb]
mov w6, 40
ldr d0, [x1, #:lo12:.LC4]
add x4, x0, 20
str w6, [x2, 16]
mov w0, 0
ldr x6, [x3, 16]
str x6, [x2, 36]
ldp x6, x7, [x3]
str x25, [x2]
str x2, [x5]
str d0, [x2, 8]
ldr x2, [x3, 23]
stp x6, x7, [x4]
str x2, [x4, 23]
bl time
str x0, [sp, 152]
adrp x2, .LC1
adrp x3, :got:Char1Glob
add x2, x2, :lo12:.LC1
ldrb w1, [sp, 169]
ldr x0, [x3, #:got_lo12:Char1Glob]
str w1, [sp, 100]
str x0, [sp, 104]
ldp x0, x1, [x2]
stp x0, x1, [sp, 112]
ldr x0, [x2, 16]
str x0, [sp, 128]
ldr x0, [x2, 23]
str x0, [sp, 136]
.p2align 3,,7
.L17:
adrp x1, :got:Char2Glob
mov w2, 65
ldr x27, [x28, #:got_lo12:BoolGlob]
ldr x25, [x1, #:got_lo12:Char2Glob]
ldr x1, [sp, 104]
str wzr, [x27]
ldr x0, [sp, 128]
str x0, [x26, 16]
mov w0, 66
strb w2, [x1]
strb w0, [x25]
ldp x2, x3, [sp, 112]
stp x2, x3, [x26]
ldr w1, [sp, 100]
ldr x0, [sp, 136]
str x0, [x26, 23]
cmp w1, 82
beq .L14
mov x1, x26
mov x0, x24
bl strcmp
cmp w0, 0
ldr x2, [x22, #:got_lo12:Array2Glob]
movi v0.2s, 0x7
ldr x4, [x20, #:got_lo12:PtrGlb]
cset w11, le
ldr x3, [x23, #:got_lo12:Array1Glob]
mov x9, 34359738376
ldr x0, [x4]
mov w8, 7
ldr w4, [x2, 1660]
mov w10, 8
ldr x5, [x21, #:got_lo12:IntGlob]
add w4, w4, 1
mov w7, 5
str w10, [x3, 152]
str x9, [x2, 1664]
str w7, [x5]
str w11, [x27]
str d0, [x3, 32]
str w4, [x2, 1660]
str w8, [x2, 5744]
bl Proc1
ldrb w3, [x25]
cmp w3, 64
bls .L15
mov w2, 65
.p2align 3,,7
.L16:
add w0, w2, 1
and w2, w0, 255
cmp w3, w0, uxtb
bcs .L16
.L15:
subs w19, w19, #1
bne .L17
mov w0, 0
bl time
ldr x1, [sp, 152]
mov x20, 61568
movk x20, 0x2fa, lsl 16
mov x2, x20
sub x19, x0, x1
adrp x1, .LC2
ldr x0, [sp, 144]
add x1, x1, :lo12:.LC2
sub x19, x19, x0
mov w0, 1
mov x3, x19
bl __printf_chk
adrp x1, .LC3
mov w0, 1
sdiv x2, x20, x19
add x1, x1, :lo12:.LC3
bl __printf_chk
adrp x0, :got:__stack_chk_guard
ldr x0, [x0, #:got_lo12:__stack_chk_guard]
ldr x1, [sp, 232]
ldr x2, [x0]
subs x1, x1, x2
mov x2, 0
bne .L22
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
ldp x25, x26, [sp, 64]
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 240
.cfi_remember_state
.cfi_restore 30
.cfi_restore 29
.cfi_restore 27
.cfi_restore 28
.cfi_restore 25
.cfi_restore 26
.cfi_restore 23
.cfi_restore 24
.cfi_restore 21
.cfi_restore 22
.cfi_restore 19
.cfi_restore 20
.cfi_def_cfa_offset 0
ret
.L14:
.cfi_restore_state
b .L14
.L22:
bl __stack_chk_fail
.cfi_endproc
.LFE50:
.size Proc0, .-Proc0
.section .rodata.str1.8
.align 3
.LC1:
.string "DHRYSTONE PROGRAM, 2'ND STRING"
.text
.align 2
.p2align 3,,7
.global Proc2
.type Proc2, %function
Proc2:
.LFB52:
.cfi_startproc
adrp x1, :got:Char1Glob
ldr x1, [x1, #:got_lo12:Char1Glob]
ldrb w1, [x1]
cmp w1, 65
bne .L24
adrp x2, :got:IntGlob
ldr w1, [x0]
ldr x2, [x2, #:got_lo12:IntGlob]
add w1, w1, 9
ldr w2, [x2]
sub w1, w1, w2
str w1, [x0]
.L24:
mov w0, 0
ret
.cfi_endproc
.LFE52:
.size Proc2, .-Proc2
.align 2
.p2align 3,,7
.global Proc3
.type Proc3, %function
Proc3:
.LFB53:
.cfi_startproc
adrp x1, :got:PtrGlb
ldr x1, [x1, #:got_lo12:PtrGlb]
ldr x2, [x1]
cbz x2, .L26
adrp x3, :got:IntGlob
ldr x2, [x2]
str x2, [x0]
ldr x0, [x3, #:got_lo12:IntGlob]
ldr x2, [x1]
ldr w1, [x0]
mov w0, 0
add w1, w1, 12
str w1, [x2, 16]
ret
.p2align 2,,3
.L26:
adrp x0, :got:IntGlob
mov w3, 100
mov w1, 112
str w1, [x2, 16]
ldr x0, [x0, #:got_lo12:IntGlob]
str w3, [x0]
mov w0, 0
ret
.cfi_endproc
.LFE53:
.size Proc3, .-Proc3
.align 2
.p2align 3,,7
.global Proc4
.type Proc4, %function
Proc4:
.LFB54:
.cfi_startproc
adrp x1, :got:Char2Glob
mov w2, 66
mov w0, 0
ldr x1, [x1, #:got_lo12:Char2Glob]
strb w2, [x1]
ret
.cfi_endproc
.LFE54:
.size Proc4, .-Proc4
.align 2
.p2align 3,,7
.global Proc5
.type Proc5, %function
Proc5:
.LFB55:
.cfi_startproc
adrp x2, :got:Char1Glob
adrp x1, :got:BoolGlob
mov w3, 65
mov w0, 0
ldr x2, [x2, #:got_lo12:Char1Glob]
ldr x1, [x1, #:got_lo12:BoolGlob]
strb w3, [x2]
str wzr, [x1]
ret
.cfi_endproc
.LFE55:
.size Proc5, .-Proc5
.align 2
.p2align 3,,7
.global Proc6
.type Proc6, %function
Proc6:
.LFB56:
.cfi_startproc
cmp w0, 2
beq .L31
mov w2, 3
str w2, [x1]
cmp w0, 1
beq .L32
bls .L36
cmp w0, 4
bne .L35
mov w0, 2
str w0, [x1]
.L35:
mov w0, 0
ret
.p2align 2,,3
.L32:
adrp x0, :got:IntGlob
ldr x0, [x0, #:got_lo12:IntGlob]
ldr w0, [x0]
cmp w0, 100
ble .L35
.L36:
mov w0, 0
str wzr, [x1]
ret
.p2align 2,,3
.L31:
mov w0, 1
str w0, [x1]
mov w0, 0
ret
.cfi_endproc
.LFE56:
.size Proc6, .-Proc6
.align 2
.p2align 3,,7
.global Proc7
.type Proc7, %function
Proc7:
.LFB57:
.cfi_startproc
add w0, w0, 2
add w1, w0, w1
mov w0, 0
str w1, [x2]
ret
.cfi_endproc
.LFE57:
.size Proc7, .-Proc7
.align 2
.p2align 3,,7
.global Proc8
.type Proc8, %function
Proc8:
.LFB58:
.cfi_startproc
add w4, w2, 5
mov w6, 204
dup v0.2s, w3
mov x5, x0
sbfiz x7, x4, 2, 32
sbfiz x2, x2, 2, 32
smull x0, w4, w6
add x8, x5, x7
adrp x6, :got:IntGlob
add x3, x2, x0
str d0, [x5, x7]
add x3, x1, x3
str w4, [x8, 120]
add x1, x1, x2
mov w7, 5
ldr x2, [x6, #:got_lo12:IntGlob]
add x1, x1, x0
ldr w6, [x3, 16]
mov w0, 0
str w4, [x3, 24]
add w6, w6, 1
stp w6, w4, [x3, 16]
ldr w3, [x5, w4, sxtw 2]
str w7, [x2]
str w3, [x1, 4100]
ret
.cfi_endproc
.LFE58:
.size Proc8, .-Proc8
.align 2
.p2align 3,,7
.global Func1
.type Func1, %function
Func1:
.LFB59:
.cfi_startproc
and w1, w1, 255
cmp w1, w0, uxtb
cset w0, eq
ret
.cfi_endproc
.LFE59:
.size Func1, .-Func1
.align 2
.p2align 3,,7
.global Func2
.type Func2, %function
Func2:
.LFB60:
.cfi_startproc
ldrb w3, [x0, 1]
ldrb w2, [x1, 2]
cmp w3, w2
beq .L42
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_offset 29, -16
.cfi_offset 30, -8
mov x29, sp
bl strcmp
cmp w0, 0
cset w0, gt
ldp x29, x30, [sp], 16
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.L42:
b .L42
.cfi_endproc
.LFE60:
.size Func2, .-Func2
.align 2
.p2align 3,,7
.global Func3
.type Func3, %function
Func3:
.LFB61:
.cfi_startproc
cmp w0, 2
cset w0, eq
ret
.cfi_endproc
.LFE61:
.size Func3, .-Func3
.section .[Link],"ax",@progbits
.align 2
.p2align 3,,7
.global main
.type main, %function
main:
.LFB62:
.cfi_startproc
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_offset 29, -16
.cfi_offset 30, -8
mov x29, sp
bl Proc0
mov w0, 0
bl exit
.cfi_endproc
.LFE62:
.size main, .-main
.comm PtrGlbNext,8,8
.comm PtrGlb,8,8
.comm Array2Glob,10404,8
.comm Array1Glob,204,8
.comm Char2Glob,1,1
.comm Char1Glob,1,1
.comm BoolGlob,4,4
.comm IntGlob,4,4
.section .rodata.cst8,"aM",@progbits,8
.align 3
.LC4:
.word 0
.word 2
.ident "GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
.section .[Link]-stack,"",@progbits