forked from OSchip/llvm-project
26 lines
640 B
ArmAsm
26 lines
640 B
ArmAsm
.text
|
|
.globl asm_main
|
|
asm_main:
|
|
sub $0x8, %rsp
|
|
movq $0, (%rsp)
|
|
push %rsp
|
|
jmp nonstandard_stub
|
|
|
|
# Takes a single pointer argument via the stack, which is nonstandard for x64.
|
|
# Executing 'thread step-out' here will initially attempt to write a
|
|
# breakpoint to that stack address, but should fail because of the executable
|
|
# memory check.
|
|
.globl nonstandard_stub
|
|
nonstandard_stub:
|
|
mov (%rsp), %rdi
|
|
mov (%rdi), %rsi
|
|
add $1, %rsi
|
|
mov %rsi, (%rdi)
|
|
|
|
add $0x10, %rsp
|
|
ret
|
|
|
|
#ifdef __linux__
|
|
.section .note.GNU-stack,"",@progbits
|
|
#endif
|