mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 14:58: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
|
@ -62,11 +62,12 @@ imp() {
|
|||
thunk() {
|
||||
printf '
|
||||
.text.windows
|
||||
.ftrace1
|
||||
%s:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %%rbp
|
||||
mov %%rsp,%%rbp
|
||||
.profilable
|
||||
mov __imp_%s(%%rip),%%rax
|
||||
jmp %s
|
||||
#elif defined(__aarch64__)
|
||||
|
@ -81,11 +82,12 @@ thunk() {
|
|||
thunk0() {
|
||||
printf '
|
||||
.text.windows
|
||||
.ftrace1
|
||||
%s:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %%rbp
|
||||
mov %%rsp,%%rbp
|
||||
.profilable
|
||||
sub $32,%%rsp
|
||||
call *__imp_%s(%%rip)
|
||||
leave
|
||||
|
@ -101,11 +103,12 @@ thunk0() {
|
|||
thunk1() {
|
||||
printf '
|
||||
.text.windows
|
||||
.ftrace1
|
||||
%s:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %%rbp
|
||||
mov %%rsp,%%rbp
|
||||
.profilable
|
||||
mov %%rdi,%%rcx
|
||||
sub $32,%%rsp
|
||||
call *__imp_%s(%%rip)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue