83 lines
1.6 KiB
ArmAsm
83 lines
1.6 KiB
ArmAsm
.text
|
|
.p2align 4
|
|
.globl protected_func_1b
|
|
.type protected_func_1b, @function
|
|
protected_func_1b:
|
|
.LFB11:
|
|
.cfi_startproc
|
|
movl $3, %eax
|
|
ret
|
|
.cfi_endproc
|
|
.LFE11:
|
|
.size protected_func_1b, .-protected_func_1b
|
|
.section .rodata.str1.8,"aMS",@progbits,1
|
|
.align 8
|
|
.LC0:
|
|
.string "'protected_func_1a' in main and shared library doesn't have same address"
|
|
.align 8
|
|
.LC1:
|
|
.string "'protected_func_1a' doesn't return the correct value"
|
|
.align 8
|
|
.LC2:
|
|
.string "'protected_func_1b' in main and shared library has same address"
|
|
.section .rodata.str1.1,"aMS",@progbits,1
|
|
.LC3:
|
|
.string "PASS"
|
|
.section .text.startup,"ax",@progbits
|
|
.p2align 4
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
.LFB12:
|
|
.cfi_startproc
|
|
pushq %r12
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 12, -16
|
|
xorl %r12d, %r12d
|
|
call protected_func_1a_p
|
|
cmpq protected_func_1a@GOTPCREL(%rip), %rax
|
|
je .L4
|
|
leaq .LC0(%rip), %rdi
|
|
movl $1, %r12d
|
|
call puts
|
|
.L4:
|
|
call protected_func_1a
|
|
cmpl $1, %eax
|
|
jne .L13
|
|
call protected_func_1b_p
|
|
leaq protected_func_1b(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
je .L6
|
|
testl %r12d, %r12d
|
|
jne .L12
|
|
leaq .LC3(%rip), %rdi
|
|
call puts
|
|
movl %r12d, %eax
|
|
popq %r12
|
|
.cfi_remember_state
|
|
.cfi_def_cfa_offset 8
|
|
ret
|
|
.L13:
|
|
.cfi_restore_state
|
|
leaq .LC1(%rip), %rdi
|
|
call puts
|
|
call protected_func_1b_p
|
|
leaq protected_func_1b(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
je .L6
|
|
.L12:
|
|
movl $1, %r12d
|
|
movl %r12d, %eax
|
|
popq %r12
|
|
.cfi_remember_state
|
|
.cfi_def_cfa_offset 8
|
|
ret
|
|
.L6:
|
|
.cfi_restore_state
|
|
leaq .LC2(%rip), %rdi
|
|
call puts
|
|
jmp .L12
|
|
.cfi_endproc
|
|
.LFE12:
|
|
.size main, .-main
|
|
.section .note.GNU-stack,"",@progbits
|