mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-28 15:28:30 +00:00
Get --ftrace working on aarch64
This change implements a new approach to function call logging, that's based on the GCC flag: -fpatchable-function-entry. Read the commentary in build/config.mk to learn how it works.
This commit is contained in:
parent
5b908bc756
commit
eb40cb371d
934 changed files with 2259 additions and 1268 deletions
|
@ -67,43 +67,30 @@ ftrace_hook:
|
|||
movaps 0x60(%rsp),%xmm6
|
||||
movaps 0x70(%rsp),%xmm7
|
||||
leave
|
||||
ret
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
stp x0,x1,[sp,#-16]!
|
||||
stp x2,x3,[sp,#-16]!
|
||||
stp x4,x5,[sp,#-16]!
|
||||
stp x6,x7,[sp,#-16]!
|
||||
stp x8,x9,[sp,#-16]!
|
||||
stp x10,x11,[sp,#-16]!
|
||||
stp x12,x13,[sp,#-16]!
|
||||
stp x14,x15,[sp,#-16]!
|
||||
stp x16,x17,[sp,#-16]!
|
||||
stp x18,x19,[sp,#-16]!
|
||||
stp x20,x21,[sp,#-16]!
|
||||
stp x22,x23,[sp,#-16]!
|
||||
stp x24,x25,[sp,#-16]!
|
||||
stp x26,x27,[sp,#-16]!
|
||||
stp x28,x29,[sp,#-16]!
|
||||
str x30,[sp,#-16]!
|
||||
adrp x9,__ftrace
|
||||
ldr w9,[x9,#:lo12:__ftrace]
|
||||
cmp w9,1
|
||||
bge 1f
|
||||
ret
|
||||
1: stp x29,x30,[sp,-96]!
|
||||
mov x29,sp
|
||||
stp x0,x1,[sp,16]
|
||||
stp x2,x3,[sp,32]
|
||||
stp x4,x5,[sp,48]
|
||||
stp x6,x7,[sp,64]
|
||||
str x8,[sp,80]
|
||||
bl ftracer
|
||||
ldr x30,[sp,#16]!
|
||||
ldp x28,x29,[sp,#16]!
|
||||
ldp x26,x27,[sp,#16]!
|
||||
ldp x24,x25,[sp,#16]!
|
||||
ldp x22,x23,[sp,#16]!
|
||||
ldp x20,x21,[sp,#16]!
|
||||
ldp x18,x19,[sp,#16]!
|
||||
ldp x16,x17,[sp,#16]!
|
||||
ldp x14,x15,[sp,#16]!
|
||||
ldp x12,x13,[sp,#16]!
|
||||
ldp x10,x11,[sp,#16]!
|
||||
ldp x8,x9,[sp,#16]!
|
||||
ldp x6,x7,[sp,#16]!
|
||||
ldp x4,x5,[sp,#16]!
|
||||
ldp x2,x3,[sp,#16]!
|
||||
ldp x0,x1,[sp,#16]!
|
||||
ldr x8,[sp,80]
|
||||
ldp x6,x7,[sp,64]
|
||||
ldp x4,x5,[sp,48]
|
||||
ldp x2,x3,[sp,32]
|
||||
ldp x0,x1,[sp,16]
|
||||
ldp x29,x30,[sp],96
|
||||
ret
|
||||
|
||||
#endif /* __x86_64__ */
|
||||
ret
|
||||
.endfn ftrace_hook,globl
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue