mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-03 09:48:29 +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
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_AddIPAddress,AddIPAddress,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
AddIPAddress:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_AddIPAddress(%rip),%rax
|
||||
jmp __sysv2nt6
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_AllocateAndGetTcpExTableFromStack,AllocateAndGetTcpExTableFromStack,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
AllocateAndGetTcpExTableFromStack:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_AllocateAndGetTcpExTableFromStack(%rip),%rax
|
||||
jmp __sysv2nt6
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_AllocateAndGetUdpExTableFromStack,AllocateAndGetUdpExTableFromStack,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
AllocateAndGetUdpExTableFromStack:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_AllocateAndGetUdpExTableFromStack(%rip),%rax
|
||||
jmp __sysv2nt6
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_CancelIPChangeNotify,CancelIPChangeNotify,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
CancelIPChangeNotify:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov %rdi,%rcx
|
||||
sub $32,%rsp
|
||||
call *__imp_CancelIPChangeNotify(%rip)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_CaptureInterfaceHardwareCrossTimestamp,CaptureInterfaceHardwareCrossTimestamp,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
CaptureInterfaceHardwareCrossTimestamp:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_CaptureInterfaceHardwareCrossTimestamp(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_CreateIpForwardEntry,CreateIpForwardEntry,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
CreateIpForwardEntry:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov %rdi,%rcx
|
||||
sub $32,%rsp
|
||||
call *__imp_CreateIpForwardEntry(%rip)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_FlushIpNetTable,FlushIpNetTable,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
FlushIpNetTable:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov %rdi,%rcx
|
||||
sub $32,%rsp
|
||||
call *__imp_FlushIpNetTable(%rip)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetAdapterIndex,GetAdapterIndex,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetAdapterIndex:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetAdapterIndex(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetAdapterOrderMap,GetAdapterOrderMap,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetAdapterOrderMap:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
sub $32,%rsp
|
||||
call *__imp_GetAdapterOrderMap(%rip)
|
||||
leave
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetAdaptersAddresses,GetAdaptersAddresses,67
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetAdaptersAddresses:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetAdaptersAddresses(%rip),%rax
|
||||
jmp __sysv2nt6
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetAdaptersInfo,GetAdaptersInfo,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetAdaptersInfo:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetAdaptersInfo(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetBestInterface,GetBestInterface,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetBestInterface:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetBestInterface(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetBestInterfaceEx,GetBestInterfaceEx,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetBestInterfaceEx:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetBestInterfaceEx(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetBestRoute,GetBestRoute,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetBestRoute:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetBestRoute(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetNumberOfInterfaces,GetNumberOfInterfaces,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetNumberOfInterfaces:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov %rdi,%rcx
|
||||
sub $32,%rsp
|
||||
call *__imp_GetNumberOfInterfaces(%rip)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetTcpTable,GetTcpTable,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetTcpTable:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetTcpTable(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
.imp iphlpapi,__imp_GetTcpTable2,GetTcpTable2,0
|
||||
|
||||
.text.windows
|
||||
.ftrace1
|
||||
GetTcpTable2:
|
||||
.ftrace2
|
||||
#ifdef __x86_64__
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_GetTcpTable2(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
#elif defined(__aarch64__)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue