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:
Justine Tunney 2023-06-05 23:35:31 -07:00
parent 5b908bc756
commit eb40cb371d
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
934 changed files with 2259 additions and 1268 deletions

View file

@ -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)