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

@ -2,11 +2,12 @@
.imp gdi32,__imp_BitBlt,BitBlt,1034
.text.windows
.ftrace1
BitBlt:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_BitBlt(%rip),%rax
jmp __sysv2nt10
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_ChoosePixelFormat,ChoosePixelFormat,1040
.text.windows
.ftrace1
ChoosePixelFormat:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_ChoosePixelFormat(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_CreateBitmap,CreateBitmap,1056
.text.windows
.ftrace1
CreateBitmap:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateBitmap(%rip),%rax
jmp __sysv2nt6
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_CreateCompatibleBitmap,CreateCompatibleBitmap,1063
.text.windows
.ftrace1
CreateCompatibleBitmap:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateCompatibleBitmap(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_CreateCompatibleDC,CreateCompatibleDC,1064
.text.windows
.ftrace1
CreateCompatibleDC:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_CreateCompatibleDC(%rip)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_CreateDIBSection,CreateDIBSection,1069
.text.windows
.ftrace1
CreateDIBSection:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateDIBSection(%rip),%rax
jmp __sysv2nt6
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_CreateRectRgn,CreateRectRgn,1097
.text.windows
.ftrace1
CreateRectRgn:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateRectRgn(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_DeleteDC,DeleteDC,1384
.text.windows
.ftrace1
DeleteDC:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_DeleteDC(%rip)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_DeleteObject,DeleteObject,1387
.text.windows
.ftrace1
DeleteObject:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_DeleteObject(%rip)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_GetPixel,GetPixel,1691
.text.windows
.ftrace1
GetPixel:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_GetPixel(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_RestoreDC,RestoreDC,1808
.text.windows
.ftrace1
RestoreDC:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_RestoreDC(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SaveDC,SaveDC,1815
.text.windows
.ftrace1
SaveDC:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_SaveDC(%rip)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SelectObject,SelectObject,1864
.text.windows
.ftrace1
SelectObject:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SelectObject(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetBkMode,SetBkMode,1872
.text.windows
.ftrace1
SetBkMode:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetBkMode(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetPixel,SetPixel,1901
.text.windows
.ftrace1
SetPixel:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetPixel(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetPixelFormat,SetPixelFormat,1902
.text.windows
.ftrace1
SetPixelFormat:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetPixelFormat(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetTextAlign,SetTextAlign,1910
.text.windows
.ftrace1
SetTextAlign:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetTextAlign(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetTextColor,SetTextColor,1912
.text.windows
.ftrace1
SetTextColor:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetTextColor(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SetTextJustification,SetTextJustification,1913
.text.windows
.ftrace1
SetTextJustification:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetTextJustification(%rip),%rax
jmp __sysv2nt
#elif defined(__aarch64__)

View file

@ -2,11 +2,12 @@
.imp gdi32,__imp_SwapBuffers,SwapBuffers,1929
.text.windows
.ftrace1
SwapBuffers:
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_SwapBuffers(%rip)