116 lines
1.7 KiB
ArmAsm
116 lines
1.7 KiB
ArmAsm
.file "alpha_lib.c"
|
|
.section .rodata
|
|
.LC0:
|
|
.string "%d"
|
|
|
|
.text
|
|
.globl printInteger
|
|
.type printInteger, @function
|
|
printInteger:
|
|
.LFB2:
|
|
pushq %rbp # push old base pointer
|
|
movq %rsp, %rbp # move base pointer
|
|
|
|
subq $16, %rsp # make room on stack
|
|
movl %edi, -4(%rbp) # spill arg to stack
|
|
movl -4(%rbp), %eax # move argument to %eax
|
|
movl %eax, %esi
|
|
movl $.LC0, %edi
|
|
movl $0, %eax
|
|
call printf
|
|
movl $0, %eax
|
|
leave
|
|
ret
|
|
.LFE2:
|
|
.size printInteger, .-printInteger
|
|
|
|
.globl printCharacter
|
|
.type printCharacter, @function
|
|
printCharacter:
|
|
.LFB4:
|
|
pushq %rbp
|
|
movq %rsp, %rbp
|
|
|
|
subq $16, %rsp
|
|
movb %dil, %al
|
|
movb %al, -4(%rbp)
|
|
movsbl -4(%rbp), %eax
|
|
movl %eax, %edi
|
|
call putchar
|
|
movl $0, %eax
|
|
leave
|
|
ret
|
|
.LFE4:
|
|
.size printCharacter, .-printCharacter
|
|
|
|
.section .rodata
|
|
.LC2:
|
|
.string "false"
|
|
.LC3:
|
|
.string "true"
|
|
.LC4:
|
|
.string "%s"
|
|
|
|
.text
|
|
.globl printBoolean
|
|
.type printBoolean, @function
|
|
printBoolean:
|
|
.LFB5:
|
|
pushq %rbp
|
|
movq %rsp, %rbp
|
|
subq $16, %rsp
|
|
movb %dil, -4(%rbp)
|
|
cmpb $0, -4(%rbp)
|
|
jne .L8
|
|
movl $.LC2, %eax
|
|
jmp .L9
|
|
.L8:
|
|
movl $.LC3, %eax
|
|
.L9:
|
|
movq %rax, %rsi
|
|
movl $.LC4, %edi
|
|
movl $0, %eax
|
|
call printf
|
|
movl $0, %eax
|
|
leave
|
|
ret
|
|
.LFE5:
|
|
.size printBoolean, .-printBoolean
|
|
|
|
.globl reserve
|
|
.type reserve, @function
|
|
reserve:
|
|
.LFB8:
|
|
pushq %rbp
|
|
movq %rsp, %rbp
|
|
subq $16, %rsp
|
|
movl %edi, -4(%rbp)
|
|
movl -4(%rbp), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call malloc
|
|
leave
|
|
ret
|
|
.LFE8:
|
|
.size reserve, .-reserve
|
|
|
|
.globl release
|
|
.type release, @function
|
|
release:
|
|
.LFB9:
|
|
pushq %rbp
|
|
movq %rsp, %rbp
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call free
|
|
movl $0, %eax
|
|
leave
|
|
ret
|
|
.LFE9:
|
|
.size release, .-release
|
|
|
|
.ident "GCC: (GNU) 6.4.0"
|
|
.section .note.GNU-stack,"",@progbits
|