From eb40cb371d05cb1cb9fd76ee258de6e69b9687cb Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Mon, 5 Jun 2023 23:35:31 -0700 Subject: [PATCH] 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. --- ape/aarch64.lds | 6 + ape/ape.mk | 2 +- build/bootstrap/fixupobj.com | Bin 53248 -> 53248 bytes build/config.mk | 84 ++++++++- build/definitions.mk | 3 - dsp/bmp/bmp.mk | 4 +- dsp/core/core.mk | 6 +- dsp/mpeg/mpeg.mk | 2 +- dsp/scale/scale.mk | 2 +- dsp/tty/tty.mk | 4 +- dsp/tty/windex-avx2.S | 3 +- dsp/tty/windex-sse4.S | 3 +- examples/clock.c | 2 + examples/examples.mk | 4 +- libc/calls/calls.mk | 30 +-- libc/calls/fmodl.S | 5 +- libc/elf/struct/sym.h | 2 + libc/fmt/fmt.mk | 8 +- .../aarch64/{asmdefs.h => asmdefs.internal.h} | 3 + libc/intrin/aarch64/memchr.S | 2 +- libc/intrin/aarch64/memcmp.S | 2 +- libc/intrin/aarch64/memcpy.S | 2 +- libc/intrin/aarch64/memrchr.S | 2 +- libc/intrin/aarch64/memset.S | 2 +- libc/intrin/aarch64/stpcpy.S | 2 +- libc/intrin/aarch64/strchr.S | 2 +- libc/intrin/aarch64/strchrnul.S | 2 +- libc/intrin/aarch64/strcmp.S | 2 +- libc/intrin/aarch64/strcpy.S | 2 +- libc/intrin/aarch64/strlen.S | 2 +- libc/intrin/aarch64/strncmp.S | 2 +- libc/intrin/aarch64/strnlen.S | 2 +- libc/intrin/aarch64/strrchr.S | 2 +- libc/intrin/assertfail.greg.c | 3 +- libc/intrin/bsr128.S | 3 +- libc/intrin/bzero.c | 4 +- libc/intrin/intrin.mk | 32 ++-- libc/intrin/kprintf.greg.c | 2 +- libc/intrin/sched_yield.S | 3 +- libc/intrin/strcmp.c | 5 +- libc/intrin/sys_gettid.greg.c | 2 +- libc/intrin/tpenc.S | 25 +-- libc/log/log.mk | 8 +- libc/macros.internal.h | 57 +++--- libc/nexgen32e/gclongjmp.S | 3 +- libc/nexgen32e/longjmp.S | 2 + libc/nexgen32e/mul4x4adx.S | 3 +- libc/nexgen32e/mul6x6adx.S | 3 +- libc/nexgen32e/mul8x8adx.S | 3 +- libc/nexgen32e/nexgen32e.mk | 2 +- libc/nexgen32e/nt2sysv.S | 3 +- libc/nexgen32e/rldecode.S | 3 +- libc/nexgen32e/setjmp.S | 3 +- libc/nexgen32e/sha1.S | 3 +- libc/nexgen32e/sha1ni.S | 3 +- libc/nexgen32e/sha256.S | 3 +- libc/nexgen32e/sha256ni.S | 3 +- libc/nexgen32e/sha512.S | 3 +- libc/nexgen32e/tinywcslen.greg.S | 3 +- libc/nexgen32e/tinywcsnlen.greg.S | 3 +- .../WaitOnAddress.S | 3 +- .../WakeByAddressAll.S | 3 +- .../WakeByAddressSingle.S | 3 +- libc/nt/MsWSock/AcceptEx.S | 3 +- libc/nt/MsWSock/DisconnectEx.S | 3 +- libc/nt/MsWSock/GetAcceptExSockaddrs.S | 3 +- libc/nt/MsWSock/TransmitFile.S | 3 +- libc/nt/MsWSock/WSARecvEx.S | 3 +- libc/nt/PowrProf/SetSuspendState.S | 3 +- libc/nt/advapi32/AccessCheck.S | 3 +- libc/nt/advapi32/AdjustTokenPrivileges.S | 3 +- libc/nt/advapi32/CreateProcessAsUserW.S | 3 +- libc/nt/advapi32/DeregisterEventSource.S | 3 +- libc/nt/advapi32/DuplicateToken.S | 3 +- libc/nt/advapi32/DuplicateTokenEx.S | 3 +- libc/nt/advapi32/GetFileSecurityW.S | 3 +- libc/nt/advapi32/GetUserNameW.S | 3 +- libc/nt/advapi32/ImpersonateSelf.S | 3 +- libc/nt/advapi32/InitiateShutdownW.S | 3 +- libc/nt/advapi32/LookupPrivilegeValueW.S | 3 +- libc/nt/advapi32/MapGenericMask.S | 3 +- libc/nt/advapi32/OpenProcessToken.S | 3 +- libc/nt/advapi32/OpenThreadToken.S | 3 +- libc/nt/advapi32/RegCloseKey.S | 3 +- libc/nt/advapi32/RegConnectRegistryW.S | 3 +- libc/nt/advapi32/RegCreateKeyExW.S | 3 +- libc/nt/advapi32/RegCreateKeyW.S | 3 +- libc/nt/advapi32/RegDeleteKeyExW.S | 3 +- libc/nt/advapi32/RegDeleteKeyW.S | 3 +- libc/nt/advapi32/RegDeleteTreeW.S | 3 +- libc/nt/advapi32/RegDeleteValueW.S | 3 +- libc/nt/advapi32/RegDisablePredefinedCache.S | 3 +- libc/nt/advapi32/RegDisableReflectionKey.S | 3 +- libc/nt/advapi32/RegEnableReflectionKey.S | 3 +- libc/nt/advapi32/RegEnumKeyExW.S | 3 +- libc/nt/advapi32/RegEnumKeyW.S | 3 +- libc/nt/advapi32/RegEnumValueW.S | 3 +- libc/nt/advapi32/RegFlushKey.S | 3 +- libc/nt/advapi32/RegGetKeySecurity.S | 3 +- libc/nt/advapi32/RegGetValueW.S | 3 +- libc/nt/advapi32/RegLoadKeyW.S | 3 +- libc/nt/advapi32/RegNotifyChangeKeyValue.S | 3 +- libc/nt/advapi32/RegOpenCurrentUser.S | 3 +- libc/nt/advapi32/RegOpenKeyExW.S | 3 +- libc/nt/advapi32/RegOpenUserClassesRoot.S | 3 +- libc/nt/advapi32/RegOverridePredefKey.S | 3 +- libc/nt/advapi32/RegQueryInfoKeyW.S | 3 +- libc/nt/advapi32/RegQueryMultipleValuesW.S | 3 +- libc/nt/advapi32/RegQueryReflectionKey.S | 3 +- libc/nt/advapi32/RegQueryValueExW.S | 3 +- libc/nt/advapi32/RegQueryValueW.S | 3 +- libc/nt/advapi32/RegReplaceKeyW.S | 3 +- libc/nt/advapi32/RegRestoreKeyW.S | 3 +- libc/nt/advapi32/RegSaveKeyW.S | 3 +- libc/nt/advapi32/RegSetKeySecurity.S | 3 +- libc/nt/advapi32/RegSetValueExW.S | 3 +- libc/nt/advapi32/RegSetValueW.S | 3 +- libc/nt/advapi32/RegUnLoadKeyW.S | 3 +- libc/nt/advapi32/RegisterEventSourceW.S | 3 +- libc/nt/advapi32/ReportEventA.S | 3 +- libc/nt/advapi32/ReportEventW.S | 3 +- libc/nt/advapi32/RevertToSelf.S | 3 +- libc/nt/advapi32/SystemFunction036.S | 3 +- libc/nt/codegen.sh | 9 +- libc/nt/comdlg32/ChooseColorW.S | 3 +- libc/nt/comdlg32/ChooseFontW.S | 3 +- libc/nt/comdlg32/GetFileTitleW.S | 3 +- libc/nt/comdlg32/GetOpenFileNameW.S | 3 +- libc/nt/comdlg32/GetSaveFileNameW.S | 3 +- libc/nt/comdlg32/PrintDlgW.S | 3 +- libc/nt/comdlg32/ReplaceTextW.S | 3 +- libc/nt/gdi32/BitBlt.S | 3 +- libc/nt/gdi32/ChoosePixelFormat.S | 3 +- libc/nt/gdi32/CreateBitmap.S | 3 +- libc/nt/gdi32/CreateCompatibleBitmap.S | 3 +- libc/nt/gdi32/CreateCompatibleDC.S | 3 +- libc/nt/gdi32/CreateDIBSection.S | 3 +- libc/nt/gdi32/CreateRectRgn.S | 3 +- libc/nt/gdi32/DeleteDC.S | 3 +- libc/nt/gdi32/DeleteObject.S | 3 +- libc/nt/gdi32/GetPixel.S | 3 +- libc/nt/gdi32/RestoreDC.S | 3 +- libc/nt/gdi32/SaveDC.S | 3 +- libc/nt/gdi32/SelectObject.S | 3 +- libc/nt/gdi32/SetBkMode.S | 3 +- libc/nt/gdi32/SetPixel.S | 3 +- libc/nt/gdi32/SetPixelFormat.S | 3 +- libc/nt/gdi32/SetTextAlign.S | 3 +- libc/nt/gdi32/SetTextColor.S | 3 +- libc/nt/gdi32/SetTextJustification.S | 3 +- libc/nt/gdi32/SwapBuffers.S | 3 +- libc/nt/iphlpapi/AddIPAddress.S | 3 +- .../AllocateAndGetTcpExTableFromStack.S | 3 +- .../AllocateAndGetUdpExTableFromStack.S | 3 +- libc/nt/iphlpapi/CancelIPChangeNotify.S | 3 +- .../CaptureInterfaceHardwareCrossTimestamp.S | 3 +- libc/nt/iphlpapi/CreateIpForwardEntry.S | 3 +- libc/nt/iphlpapi/FlushIpNetTable.S | 3 +- libc/nt/iphlpapi/GetAdapterIndex.S | 3 +- libc/nt/iphlpapi/GetAdapterOrderMap.S | 3 +- libc/nt/iphlpapi/GetAdaptersAddresses.S | 3 +- libc/nt/iphlpapi/GetAdaptersInfo.S | 3 +- libc/nt/iphlpapi/GetBestInterface.S | 3 +- libc/nt/iphlpapi/GetBestInterfaceEx.S | 3 +- libc/nt/iphlpapi/GetBestRoute.S | 3 +- libc/nt/iphlpapi/GetNumberOfInterfaces.S | 3 +- libc/nt/iphlpapi/GetTcpTable.S | 3 +- libc/nt/iphlpapi/GetTcpTable2.S | 3 +- libc/nt/kernel32/AcquireSRWLockExclusive.S | 3 +- libc/nt/kernel32/AcquireSRWLockShared.S | 3 +- libc/nt/kernel32/AddVectoredContinueHandler.S | 3 +- .../nt/kernel32/AddVectoredExceptionHandler.S | 3 +- libc/nt/kernel32/AllocConsole.S | 3 +- libc/nt/kernel32/AttachConsole.S | 3 +- libc/nt/kernel32/CallNamedPipeA.S | 3 +- libc/nt/kernel32/CallNamedPipeW.S | 3 +- libc/nt/kernel32/CancelIo.S | 3 +- libc/nt/kernel32/CancelIoEx.S | 3 +- libc/nt/kernel32/CancelSynchronousIo.S | 3 +- libc/nt/kernel32/CheckRemoteDebuggerPresent.S | 3 +- libc/nt/kernel32/ClearCommBreak.S | 3 +- libc/nt/kernel32/CloseHandle.S | 3 +- libc/nt/kernel32/ConnectNamedPipe.S | 3 +- libc/nt/kernel32/ContinueDebugEvent.S | 3 +- libc/nt/kernel32/CopyFileW.S | 3 +- libc/nt/kernel32/CreateDirectoryW.S | 3 +- libc/nt/kernel32/CreateEventExW.S | 3 +- libc/nt/kernel32/CreateEventW.S | 3 +- libc/nt/kernel32/CreateFileMappingNumaW.S | 3 +- libc/nt/kernel32/CreateFileMappingW.S | 3 +- libc/nt/kernel32/CreateFileW.S | 3 +- libc/nt/kernel32/CreateHardLinkW.S | 3 +- libc/nt/kernel32/CreateIoCompletionPort.S | 3 +- libc/nt/kernel32/CreateNamedPipeW.S | 3 +- libc/nt/kernel32/CreatePipe.S | 3 +- libc/nt/kernel32/CreateProcessW.S | 3 +- libc/nt/kernel32/CreateSemaphoreW.S | 3 +- libc/nt/kernel32/CreateSymbolicLinkW.S | 3 +- libc/nt/kernel32/CreateThread.S | 3 +- libc/nt/kernel32/CreateToolhelp32Snapshot.S | 3 +- libc/nt/kernel32/CreateWaitableTimerExW.S | 3 +- libc/nt/kernel32/CreateWaitableTimerW.S | 3 +- libc/nt/kernel32/DebugActiveProcess.S | 3 +- libc/nt/kernel32/DebugActiveProcessStop.S | 3 +- libc/nt/kernel32/DebugBreakProcess.S | 3 +- libc/nt/kernel32/DeleteCriticalSection.S | 3 +- libc/nt/kernel32/DeleteFileW.S | 3 +- .../kernel32/DeleteProcThreadAttributeList.S | 3 +- libc/nt/kernel32/DeviceIoControl.S | 3 +- libc/nt/kernel32/DisconnectNamedPipe.S | 3 +- libc/nt/kernel32/DuplicateHandle.S | 3 +- libc/nt/kernel32/EnterCriticalSection.S | 3 +- libc/nt/kernel32/ExitProcess.S | 3 +- libc/nt/kernel32/ExitThread.S | 3 +- libc/nt/kernel32/FatalExit.S | 3 +- libc/nt/kernel32/FillConsoleOutputAttribute.S | 3 +- .../nt/kernel32/FillConsoleOutputCharacterW.S | 3 +- libc/nt/kernel32/FindClose.S | 3 +- libc/nt/kernel32/FindFirstFileExW.S | 3 +- libc/nt/kernel32/FindFirstFileW.S | 3 +- libc/nt/kernel32/FindFirstVolumeW.S | 3 +- libc/nt/kernel32/FindNextFileW.S | 3 +- libc/nt/kernel32/FindNextVolumeW.S | 3 +- libc/nt/kernel32/FindVolumeClose.S | 3 +- libc/nt/kernel32/FlushConsoleInputBuffer.S | 3 +- libc/nt/kernel32/FlushFileBuffers.S | 3 +- libc/nt/kernel32/FlushViewOfFile.S | 3 +- libc/nt/kernel32/FormatMessageW.S | 3 +- libc/nt/kernel32/FreeConsole.S | 3 +- libc/nt/kernel32/FreeEnvironmentStringsW.S | 3 +- libc/nt/kernel32/FreeLibrary.S | 3 +- libc/nt/kernel32/FreeResource.S | 3 +- libc/nt/kernel32/GenerateConsoleCtrlEvent.S | 3 +- libc/nt/kernel32/GetCommandLineW.S | 3 +- libc/nt/kernel32/GetCompressedFileSizeW.S | 3 +- libc/nt/kernel32/GetComputerNameExW.S | 3 +- libc/nt/kernel32/GetConsoleCP.S | 3 +- libc/nt/kernel32/GetConsoleCursorInfo.S | 3 +- libc/nt/kernel32/GetConsoleMode.S | 3 +- libc/nt/kernel32/GetConsoleOutputCP.S | 3 +- libc/nt/kernel32/GetConsoleScreenBufferInfo.S | 3 +- .../kernel32/GetConsoleScreenBufferInfoEx.S | 3 +- libc/nt/kernel32/GetConsoleSelectionInfo.S | 3 +- libc/nt/kernel32/GetConsoleTitleW.S | 3 +- libc/nt/kernel32/GetConsoleWindow.S | 3 +- libc/nt/kernel32/GetCurrentDirectoryW.S | 3 +- libc/nt/kernel32/GetCurrentProcess.S | 3 +- libc/nt/kernel32/GetCurrentProcessId.S | 3 +- libc/nt/kernel32/GetCurrentThread.S | 3 +- libc/nt/kernel32/GetCurrentThreadId.S | 3 +- libc/nt/kernel32/GetEnvironmentStringsW.S | 3 +- libc/nt/kernel32/GetEnvironmentVariableW.S | 3 +- libc/nt/kernel32/GetExitCodeProcess.S | 3 +- libc/nt/kernel32/GetExitCodeThread.S | 3 +- libc/nt/kernel32/GetFileAttributesExW.S | 3 +- libc/nt/kernel32/GetFileAttributesW.S | 3 +- libc/nt/kernel32/GetFileInformationByHandle.S | 3 +- .../kernel32/GetFileInformationByHandleEx.S | 3 +- libc/nt/kernel32/GetFileSize.S | 3 +- libc/nt/kernel32/GetFileSizeEx.S | 3 +- libc/nt/kernel32/GetFileTime.S | 3 +- libc/nt/kernel32/GetFileType.S | 3 +- libc/nt/kernel32/GetFinalPathNameByHandleW.S | 3 +- libc/nt/kernel32/GetFullPathNameW.S | 3 +- libc/nt/kernel32/GetHandleInformation.S | 3 +- .../nt/kernel32/GetLargestConsoleWindowSize.S | 3 +- libc/nt/kernel32/GetLastError.S | 3 +- libc/nt/kernel32/GetLogicalDrives.S | 3 +- libc/nt/kernel32/GetMaximumProcessorCount.S | 3 +- libc/nt/kernel32/GetModuleFileNameW.S | 3 +- libc/nt/kernel32/GetModuleHandleA.S | 3 +- libc/nt/kernel32/GetModuleHandleExW.S | 3 +- libc/nt/kernel32/GetModuleHandleW.S | 3 +- .../kernel32/GetNumberOfConsoleInputEvents.S | 3 +- .../kernel32/GetNumberOfConsoleMouseButtons.S | 3 +- libc/nt/kernel32/GetOverlappedResult.S | 3 +- libc/nt/kernel32/GetOverlappedResultEx.S | 3 +- libc/nt/kernel32/GetPriorityClass.S | 3 +- libc/nt/kernel32/GetProcAddress.S | 3 +- libc/nt/kernel32/GetProcessAffinityMask.S | 3 +- libc/nt/kernel32/GetProcessHandleCount.S | 3 +- libc/nt/kernel32/GetProcessHeap.S | 3 +- libc/nt/kernel32/GetProcessHeaps.S | 3 +- libc/nt/kernel32/GetProcessId.S | 3 +- libc/nt/kernel32/GetProcessIdOfThread.S | 3 +- libc/nt/kernel32/GetProcessInformation.S | 3 +- libc/nt/kernel32/GetProcessIoCounters.S | 3 +- libc/nt/kernel32/GetProcessPriorityBoost.S | 3 +- libc/nt/kernel32/GetProcessTimes.S | 3 +- libc/nt/kernel32/GetProcessWorkingSetSize.S | 3 +- libc/nt/kernel32/GetProcessWorkingSetSizeEx.S | 3 +- libc/nt/kernel32/GetQueuedCompletionStatus.S | 3 +- .../nt/kernel32/GetQueuedCompletionStatusEx.S | 3 +- libc/nt/kernel32/GetStartupInfoW.S | 3 +- libc/nt/kernel32/GetStdHandle.S | 3 +- libc/nt/kernel32/GetSystemDirectoryA.S | 3 +- libc/nt/kernel32/GetSystemDirectoryW.S | 3 +- libc/nt/kernel32/GetSystemInfo.S | 3 +- libc/nt/kernel32/GetSystemTime.S | 3 +- libc/nt/kernel32/GetSystemTimeAdjustment.S | 3 +- libc/nt/kernel32/GetSystemTimeAsFileTime.S | 3 +- .../kernel32/GetSystemTimePreciseAsFileTime.S | 3 +- libc/nt/kernel32/GetSystemTimes.S | 3 +- libc/nt/kernel32/GetTempPathA.S | 3 +- libc/nt/kernel32/GetTempPathW.S | 3 +- libc/nt/kernel32/GetThreadIOPendingFlag.S | 3 +- libc/nt/kernel32/GetThreadId.S | 3 +- libc/nt/kernel32/GetThreadPriority.S | 3 +- libc/nt/kernel32/GetThreadPriorityBoost.S | 3 +- libc/nt/kernel32/GetThreadTimes.S | 3 +- libc/nt/kernel32/GetTickCount64.S | 3 +- libc/nt/kernel32/GetVersionExW.S | 3 +- .../kernel32/GetVolumeInformationByHandleW.S | 3 +- libc/nt/kernel32/GetVolumePathNameW.S | 3 +- libc/nt/kernel32/GetWindowsDirectoryA.S | 3 +- libc/nt/kernel32/GetWindowsDirectoryW.S | 3 +- libc/nt/kernel32/GlobalAlloc.S | 3 +- libc/nt/kernel32/GlobalFree.S | 3 +- libc/nt/kernel32/GlobalMemoryStatusEx.S | 3 +- libc/nt/kernel32/HeapAlloc.S | 3 +- libc/nt/kernel32/HeapCompact.S | 3 +- libc/nt/kernel32/HeapCreate.S | 3 +- libc/nt/kernel32/HeapDestroy.S | 3 +- libc/nt/kernel32/HeapFree.S | 3 +- libc/nt/kernel32/HeapReAlloc.S | 3 +- libc/nt/kernel32/InitializeCriticalSection.S | 3 +- .../InitializeCriticalSectionAndSpinCount.S | 3 +- .../InitializeProcThreadAttributeList.S | 3 +- libc/nt/kernel32/InitializeSRWLock.S | 3 +- libc/nt/kernel32/LeaveCriticalSection.S | 3 +- libc/nt/kernel32/LoadLibraryExW.S | 3 +- libc/nt/kernel32/LoadLibraryW.S | 3 +- libc/nt/kernel32/LoadResource.S | 3 +- libc/nt/kernel32/LocalFree.S | 3 +- libc/nt/kernel32/LockFile.S | 3 +- libc/nt/kernel32/LockFileEx.S | 3 +- libc/nt/kernel32/LockResource.S | 3 +- libc/nt/kernel32/MapViewOfFileEx.S | 3 +- libc/nt/kernel32/MapViewOfFileExNuma.S | 3 +- libc/nt/kernel32/MoveFileExW.S | 3 +- libc/nt/kernel32/MoveFileW.S | 3 +- libc/nt/kernel32/MultiByteToWideChar.S | 3 +- libc/nt/kernel32/OfferVirtualMemory.S | 3 +- libc/nt/kernel32/OpenProcess.S | 3 +- libc/nt/kernel32/OpenThread.S | 3 +- libc/nt/kernel32/PeekConsoleInputW.S | 3 +- libc/nt/kernel32/PeekNamedPipe.S | 3 +- libc/nt/kernel32/PostQueuedCompletionStatus.S | 3 +- libc/nt/kernel32/PrefetchVirtualMemory.S | 3 +- libc/nt/kernel32/Process32FirstW.S | 3 +- libc/nt/kernel32/Process32NextW.S | 3 +- libc/nt/kernel32/PulseEvent.S | 3 +- libc/nt/kernel32/PurgeComm.S | 3 +- libc/nt/kernel32/QueryPerformanceCounter.S | 3 +- libc/nt/kernel32/QueryPerformanceFrequency.S | 3 +- libc/nt/kernel32/ReOpenFile.S | 3 +- libc/nt/kernel32/ReadConsoleInputW.S | 3 +- libc/nt/kernel32/ReadConsoleOutputAttribute.S | 3 +- .../nt/kernel32/ReadConsoleOutputCharacterW.S | 3 +- libc/nt/kernel32/ReadConsoleOutputW.S | 3 +- libc/nt/kernel32/ReadConsoleW.S | 3 +- libc/nt/kernel32/ReadFile.S | 3 +- libc/nt/kernel32/ReadFileEx.S | 3 +- libc/nt/kernel32/ReadFileScatter.S | 3 +- .../nt/kernel32/RegisterWaitForSingleObject.S | 3 +- libc/nt/kernel32/ReleaseMutex.S | 3 +- libc/nt/kernel32/ReleaseSRWLockExclusive.S | 3 +- libc/nt/kernel32/ReleaseSRWLockShared.S | 3 +- libc/nt/kernel32/ReleaseSemaphore.S | 3 +- libc/nt/kernel32/RemoveDirectoryW.S | 3 +- .../kernel32/RemoveVectoredContinueHandler.S | 3 +- .../kernel32/RemoveVectoredExceptionHandler.S | 3 +- libc/nt/kernel32/ResetEvent.S | 3 +- .../kernel32/SetConsoleActiveScreenBuffer.S | 3 +- libc/nt/kernel32/SetConsoleCP.S | 3 +- libc/nt/kernel32/SetConsoleCtrlHandler.S | 3 +- libc/nt/kernel32/SetConsoleCursorInfo.S | 3 +- libc/nt/kernel32/SetConsoleCursorPosition.S | 3 +- libc/nt/kernel32/SetConsoleMode.S | 3 +- libc/nt/kernel32/SetConsoleOutputCP.S | 3 +- .../kernel32/SetConsoleScreenBufferInfoEx.S | 3 +- libc/nt/kernel32/SetConsoleScreenBufferSize.S | 3 +- libc/nt/kernel32/SetConsoleTitleW.S | 3 +- libc/nt/kernel32/SetConsoleWindowInfo.S | 3 +- .../nt/kernel32/SetCriticalSectionSpinCount.S | 3 +- libc/nt/kernel32/SetCurrentDirectoryW.S | 3 +- libc/nt/kernel32/SetDefaultDllDirectories.S | 3 +- libc/nt/kernel32/SetEndOfFile.S | 3 +- libc/nt/kernel32/SetEnvironmentVariableW.S | 3 +- libc/nt/kernel32/SetErrorMode.S | 3 +- libc/nt/kernel32/SetEvent.S | 3 +- libc/nt/kernel32/SetFileAttributesW.S | 3 +- .../SetFileCompletionNotificationModes.S | 3 +- libc/nt/kernel32/SetFilePointer.S | 3 +- libc/nt/kernel32/SetFilePointerEx.S | 3 +- libc/nt/kernel32/SetFileTime.S | 3 +- libc/nt/kernel32/SetFileValidData.S | 3 +- libc/nt/kernel32/SetHandleCount.S | 3 +- libc/nt/kernel32/SetHandleInformation.S | 3 +- libc/nt/kernel32/SetLastError.S | 3 +- libc/nt/kernel32/SetNamedPipeHandleState.S | 3 +- libc/nt/kernel32/SetPriorityClass.S | 3 +- libc/nt/kernel32/SetProcessAffinityMask.S | 3 +- libc/nt/kernel32/SetProcessPriorityBoost.S | 3 +- libc/nt/kernel32/SetProcessWorkingSetSize.S | 3 +- libc/nt/kernel32/SetProcessWorkingSetSizeEx.S | 3 +- libc/nt/kernel32/SetStdHandle.S | 3 +- libc/nt/kernel32/SetThreadAffinityMask.S | 3 +- libc/nt/kernel32/SetThreadPriority.S | 3 +- libc/nt/kernel32/SetThreadPriorityBoost.S | 3 +- .../nt/kernel32/SetUnhandledExceptionFilter.S | 3 +- libc/nt/kernel32/SetWaitableTimer.S | 3 +- libc/nt/kernel32/Sleep.S | 3 +- libc/nt/kernel32/SleepEx.S | 3 +- libc/nt/kernel32/SuspendThread.S | 3 +- libc/nt/kernel32/SystemTimeToFileTime.S | 3 +- libc/nt/kernel32/TerminateProcess.S | 3 +- libc/nt/kernel32/TerminateThread.S | 3 +- libc/nt/kernel32/TlsAlloc.S | 3 +- libc/nt/kernel32/TlsFree.S | 3 +- libc/nt/kernel32/TlsGetValue.S | 3 +- libc/nt/kernel32/TlsSetValue.S | 3 +- libc/nt/kernel32/TransactNamedPipe.S | 3 +- libc/nt/kernel32/TransmitCommChar.S | 3 +- libc/nt/kernel32/TryAcquireSRWLockExclusive.S | 3 +- libc/nt/kernel32/TryAcquireSRWLockShared.S | 3 +- libc/nt/kernel32/TryEnterCriticalSection.S | 3 +- libc/nt/kernel32/UnlockFile.S | 3 +- libc/nt/kernel32/UnlockFileEx.S | 3 +- libc/nt/kernel32/UnmapViewOfFile.S | 3 +- libc/nt/kernel32/UnmapViewOfFile2.S | 3 +- libc/nt/kernel32/UnmapViewOfFileEx.S | 3 +- libc/nt/kernel32/UpdateProcThreadAttribute.S | 3 +- libc/nt/kernel32/VirtualAlloc.S | 3 +- libc/nt/kernel32/VirtualAllocEx.S | 3 +- libc/nt/kernel32/VirtualFree.S | 3 +- libc/nt/kernel32/VirtualLock.S | 3 +- libc/nt/kernel32/VirtualProtect.S | 3 +- libc/nt/kernel32/VirtualQuery.S | 3 +- libc/nt/kernel32/VirtualUnlock.S | 3 +- libc/nt/kernel32/WaitForMultipleObjects.S | 3 +- libc/nt/kernel32/WaitForMultipleObjectsEx.S | 3 +- libc/nt/kernel32/WaitForSingleObject.S | 3 +- libc/nt/kernel32/WaitForSingleObjectEx.S | 3 +- libc/nt/kernel32/WideCharToMultiByte.S | 3 +- libc/nt/kernel32/WriteConsoleInputW.S | 3 +- .../nt/kernel32/WriteConsoleOutputAttribute.S | 3 +- .../kernel32/WriteConsoleOutputCharacterW.S | 3 +- libc/nt/kernel32/WriteConsoleW.S | 3 +- libc/nt/kernel32/WriteFile.S | 3 +- libc/nt/kernel32/WriteFileEx.S | 3 +- libc/nt/kernel32/WriteFileGather.S | 3 +- libc/nt/ntdll/CsrClientCallServer.S | 3 +- libc/nt/ntdll/LdrGetDllHandle.S | 3 +- libc/nt/ntdll/LdrGetProcedureAddress.S | 3 +- libc/nt/ntdll/LdrLoadDll.S | 3 +- libc/nt/ntdll/LdrUnloadDll.S | 3 +- libc/nt/ntdll/NtAllocateVirtualMemory.S | 3 +- libc/nt/ntdll/NtCallbackReturn.S | 3 +- libc/nt/ntdll/NtCancelIoFile.S | 3 +- libc/nt/ntdll/NtCancelIoFileEx.S | 3 +- libc/nt/ntdll/NtClearEvent.S | 3 +- libc/nt/ntdll/NtClose.S | 3 +- libc/nt/ntdll/NtContinue.S | 3 +- libc/nt/ntdll/NtCreateDirectoryObject.S | 3 +- libc/nt/ntdll/NtCreateEvent.S | 3 +- libc/nt/ntdll/NtCreateFile.S | 3 +- libc/nt/ntdll/NtCreateIoCompletion.S | 3 +- libc/nt/ntdll/NtCreateKey.S | 3 +- libc/nt/ntdll/NtCreateKeyedEvent.S | 3 +- libc/nt/ntdll/NtCreateNamedPipeFile.S | 3 +- libc/nt/ntdll/NtCreateProcess.S | 3 +- libc/nt/ntdll/NtCreateProfile.S | 3 +- libc/nt/ntdll/NtCreateSection.S | 3 +- libc/nt/ntdll/NtCreateThread.S | 3 +- libc/nt/ntdll/NtCreateTimer.S | 3 +- libc/nt/ntdll/NtDelayExecution.S | 3 +- libc/nt/ntdll/NtDeleteFile.S | 3 +- libc/nt/ntdll/NtDeleteKey.S | 3 +- libc/nt/ntdll/NtDeviceIoControlFile.S | 3 +- libc/nt/ntdll/NtDuplicateObject.S | 3 +- libc/nt/ntdll/NtEnumerateKey.S | 3 +- libc/nt/ntdll/NtEnumerateValueKey.S | 3 +- libc/nt/ntdll/NtFlushBuffersFile.S | 3 +- libc/nt/ntdll/NtFlushInstructionCache.S | 3 +- libc/nt/ntdll/NtFlushKey.S | 3 +- libc/nt/ntdll/NtFlushVirtualMemory.S | 3 +- libc/nt/ntdll/NtFreeVirtualMemory.S | 3 +- libc/nt/ntdll/NtFsControlFile.S | 3 +- libc/nt/ntdll/NtGetContextThread.S | 3 +- libc/nt/ntdll/NtMapViewOfSection.S | 3 +- libc/nt/ntdll/NtOpenDirectoryObject.S | 3 +- libc/nt/ntdll/NtOpenFile.S | 3 +- libc/nt/ntdll/NtOpenKey.S | 3 +- libc/nt/ntdll/NtOpenProcess.S | 3 +- libc/nt/ntdll/NtOpenProcessToken.S | 3 +- libc/nt/ntdll/NtOpenSection.S | 3 +- libc/nt/ntdll/NtOpenSymbolicLinkObject.S | 3 +- libc/nt/ntdll/NtOpenThread.S | 3 +- libc/nt/ntdll/NtOpenThreadToken.S | 3 +- libc/nt/ntdll/NtProtectVirtualMemory.S | 3 +- libc/nt/ntdll/NtQueryAttributesFile.S | 3 +- libc/nt/ntdll/NtQueryDirectoryFile.S | 3 +- libc/nt/ntdll/NtQueryFullAttributesFile.S | 3 +- libc/nt/ntdll/NtQueryInformationFile.S | 3 +- libc/nt/ntdll/NtQueryInformationJobObject.S | 3 +- libc/nt/ntdll/NtQueryInformationProcess.S | 3 +- libc/nt/ntdll/NtQueryInformationThread.S | 3 +- libc/nt/ntdll/NtQueryInformationToken.S | 3 +- libc/nt/ntdll/NtQueryIntervalProfile.S | 3 +- libc/nt/ntdll/NtQueryObject.S | 3 +- libc/nt/ntdll/NtQueryPerformanceCounter.S | 3 +- libc/nt/ntdll/NtQuerySection.S | 3 +- libc/nt/ntdll/NtQuerySecurityObject.S | 3 +- libc/nt/ntdll/NtQuerySymbolicLinkObject.S | 3 +- libc/nt/ntdll/NtQuerySystemInformation.S | 3 +- libc/nt/ntdll/NtQuerySystemTime.S | 3 +- libc/nt/ntdll/NtQueryValueKey.S | 3 +- libc/nt/ntdll/NtQueryVirtualMemory.S | 3 +- libc/nt/ntdll/NtQueryVolumeInformationFile.S | 3 +- libc/nt/ntdll/NtQueueApcThread.S | 3 +- libc/nt/ntdll/NtRaiseException.S | 3 +- libc/nt/ntdll/NtRaiseHardError.S | 3 +- libc/nt/ntdll/NtReadFile.S | 3 +- libc/nt/ntdll/NtReadVirtualMemory.S | 3 +- libc/nt/ntdll/NtReleaseKeyedEvent.S | 3 +- libc/nt/ntdll/NtResumeThread.S | 3 +- libc/nt/ntdll/NtSetContextThread.S | 3 +- libc/nt/ntdll/NtSetEvent.S | 3 +- libc/nt/ntdll/NtSetInformationFile.S | 3 +- libc/nt/ntdll/NtSetInformationThread.S | 3 +- libc/nt/ntdll/NtSetIntervalProfile.S | 3 +- libc/nt/ntdll/NtSetTimer.S | 3 +- libc/nt/ntdll/NtSetValueKey.S | 3 +- .../nt/ntdll/NtSignalAndWaitForSingleObject.S | 3 +- libc/nt/ntdll/NtStartProfile.S | 3 +- libc/nt/ntdll/NtStopProfile.S | 3 +- libc/nt/ntdll/NtSuspendThread.S | 3 +- libc/nt/ntdll/NtTerminateProcess.S | 3 +- libc/nt/ntdll/NtTerminateThread.S | 3 +- libc/nt/ntdll/NtTestAlert.S | 3 +- libc/nt/ntdll/NtUnmapViewOfSection.S | 3 +- libc/nt/ntdll/NtWaitForKeyedEvent.S | 3 +- libc/nt/ntdll/NtWaitForSingleObject.S | 3 +- libc/nt/ntdll/NtWriteFile.S | 3 +- libc/nt/ntdll/NtWriteVirtualMemory.S | 3 +- libc/nt/ntdll/NtYieldExecution.S | 3 +- libc/nt/ntdll/RtlAllocateHeap.S | 3 +- libc/nt/ntdll/RtlCloneUserProcess.S | 3 +- libc/nt/ntdll/RtlConvertSidToUnicodeString.S | 3 +- libc/nt/ntdll/RtlCreateHeap.S | 3 +- libc/nt/ntdll/RtlCreateProcessParameters.S | 3 +- libc/nt/ntdll/RtlDeleteCriticalSection.S | 3 +- libc/nt/ntdll/RtlDestroyHeap.S | 3 +- libc/nt/ntdll/RtlDestroyProcessParameters.S | 3 +- libc/nt/ntdll/RtlEnterCriticalSection.S | 3 +- libc/nt/ntdll/RtlFreeHeap.S | 3 +- libc/nt/ntdll/RtlFreeUnicodeString.S | 3 +- libc/nt/ntdll/RtlGetProcessHeaps.S | 3 +- libc/nt/ntdll/RtlInitUnicodeString.S | 3 +- libc/nt/ntdll/RtlInitializeCriticalSection.S | 3 +- libc/nt/ntdll/RtlLeaveCriticalSection.S | 3 +- libc/nt/ntdll/RtlLockHeap.S | 3 +- libc/nt/ntdll/RtlNtStatusToDosError.S | 3 +- libc/nt/ntdll/RtlQueryEnvironmentVariable.S | 3 +- libc/nt/ntdll/RtlReAllocateHeap.S | 3 +- libc/nt/ntdll/RtlSizeHeap.S | 3 +- libc/nt/ntdll/RtlTryEnterCriticalSection.S | 3 +- libc/nt/ntdll/RtlUnlockHeap.S | 3 +- libc/nt/ntdll/RtlValidateHeap.S | 3 +- libc/nt/ntdll/RtlWalkHeap.S | 3 +- libc/nt/ntdll/ZwAreMappedFilesTheSame.S | 3 +- libc/nt/pdh/PdhAddEnglishCounterW.S | 3 +- libc/nt/pdh/PdhCollectQueryDataEx.S | 3 +- libc/nt/pdh/PdhGetFormattedCounterValue.S | 3 +- libc/nt/pdh/PdhOpenQueryW.S | 3 +- libc/nt/psapi/GetProcessImageFileNameW.S | 3 +- libc/nt/psapi/GetProcessMemoryInfo.S | 3 +- libc/nt/thunk/msabi.h | 2 +- libc/nt/user32/AdjustWindowRect.S | 3 +- libc/nt/user32/AnimateWindow.S | 3 +- libc/nt/user32/AppendMenuA.S | 3 +- libc/nt/user32/AppendMenuW.S | 3 +- libc/nt/user32/BeginPaint.S | 3 +- libc/nt/user32/BringWindowToTop.S | 3 +- libc/nt/user32/CallNextHookEx.S | 3 +- libc/nt/user32/CloseWindow.S | 3 +- libc/nt/user32/CreateIconIndirect.S | 3 +- libc/nt/user32/CreateMenu.S | 3 +- libc/nt/user32/CreatePopupMenu.S | 3 +- libc/nt/user32/CreateWindowExW.S | 3 +- libc/nt/user32/DefWindowProcW.S | 3 +- libc/nt/user32/DeleteMenu.S | 3 +- libc/nt/user32/DestroyIcon.S | 3 +- libc/nt/user32/DestroyMenu.S | 3 +- libc/nt/user32/DestroyWindow.S | 3 +- libc/nt/user32/DispatchMessageW.S | 3 +- libc/nt/user32/DrawTextExW.S | 3 +- libc/nt/user32/DrawTextW.S | 3 +- libc/nt/user32/EndPaint.S | 3 +- libc/nt/user32/EnumChildWindows.S | 3 +- libc/nt/user32/FillRect.S | 3 +- libc/nt/user32/FindWindowExW.S | 3 +- libc/nt/user32/FindWindowW.S | 3 +- libc/nt/user32/GetClientRect.S | 3 +- libc/nt/user32/GetCursor.S | 3 +- libc/nt/user32/GetCursorPos.S | 3 +- libc/nt/user32/GetDC.S | 3 +- libc/nt/user32/GetDesktopWindow.S | 3 +- libc/nt/user32/GetKeyState.S | 3 +- libc/nt/user32/GetKeyboardLayout.S | 3 +- libc/nt/user32/GetMenu.S | 3 +- libc/nt/user32/GetMessageW.S | 3 +- libc/nt/user32/GetParent.S | 3 +- libc/nt/user32/GetShellWindow.S | 3 +- libc/nt/user32/GetSystemMenu.S | 3 +- libc/nt/user32/GetWindow.S | 3 +- libc/nt/user32/GetWindowPlacement.S | 3 +- libc/nt/user32/GetWindowRect.S | 3 +- libc/nt/user32/GetWindowTextW.S | 3 +- libc/nt/user32/InsertMenuW.S | 3 +- libc/nt/user32/InvalidateRect.S | 3 +- libc/nt/user32/IsChild.S | 3 +- libc/nt/user32/IsIconic.S | 3 +- libc/nt/user32/IsMenu.S | 3 +- libc/nt/user32/IsWindow.S | 3 +- libc/nt/user32/IsWindowVisible.S | 3 +- libc/nt/user32/IsZoomed.S | 3 +- libc/nt/user32/KillTimer.S | 3 +- libc/nt/user32/LoadCursorW.S | 3 +- libc/nt/user32/LoadIconW.S | 3 +- libc/nt/user32/LoadImageW.S | 3 +- libc/nt/user32/MapVirtualKeyExW.S | 3 +- libc/nt/user32/MessageBoxExW.S | 3 +- libc/nt/user32/MessageBoxW.S | 3 +- libc/nt/user32/MoveWindow.S | 3 +- libc/nt/user32/PeekMessageW.S | 3 +- libc/nt/user32/PostQuitMessage.S | 3 +- libc/nt/user32/RedrawWindow.S | 3 +- libc/nt/user32/RegisterClassExW.S | 3 +- libc/nt/user32/RegisterClassW.S | 3 +- libc/nt/user32/ReleaseCapture.S | 3 +- libc/nt/user32/ReleaseDC.S | 3 +- libc/nt/user32/SendMessageW.S | 3 +- libc/nt/user32/SetCapture.S | 3 +- libc/nt/user32/SetClassLongW.S | 3 +- libc/nt/user32/SetCursor.S | 3 +- libc/nt/user32/SetParent.S | 3 +- libc/nt/user32/SetTimer.S | 3 +- libc/nt/user32/SetWindowLongW.S | 3 +- libc/nt/user32/SetWindowPlacement.S | 3 +- libc/nt/user32/SetWindowPos.S | 3 +- libc/nt/user32/SetWindowTextW.S | 3 +- libc/nt/user32/SetWindowsHookExW.S | 3 +- libc/nt/user32/SetWindowsHookW.S | 3 +- libc/nt/user32/ShowCaret.S | 3 +- libc/nt/user32/ShowCursor.S | 3 +- libc/nt/user32/ShowWindow.S | 3 +- libc/nt/user32/TrackPopupMenu.S | 3 +- libc/nt/user32/TranslateMessage.S | 3 +- libc/nt/user32/UnhookWindowsHook.S | 3 +- libc/nt/user32/UnhookWindowsHookEx.S | 3 +- libc/nt/user32/UpdateWindow.S | 3 +- libc/nt/user32/WaitForInputIdle.S | 3 +- libc/nt/ws2_32/FreeAddrInfoExW.S | 3 +- libc/nt/ws2_32/FreeAddrInfoW.S | 3 +- libc/nt/ws2_32/GetAddrInfoExCancel.S | 3 +- .../nt/ws2_32/GetAddrInfoExOverlappedResult.S | 3 +- libc/nt/ws2_32/GetAddrInfoExW.S | 3 +- libc/nt/ws2_32/GetAddrInfoW.S | 3 +- libc/nt/ws2_32/GetHostNameW.S | 3 +- libc/nt/ws2_32/GetNameInfoW.S | 3 +- libc/nt/ws2_32/SetAddrInfoExW.S | 3 +- libc/nt/ws2_32/WSAAccept.S | 3 +- libc/nt/ws2_32/WSAAddressToStringW.S | 3 +- libc/nt/ws2_32/WSAAsyncGetHostByAddr.S | 3 +- libc/nt/ws2_32/WSAAsyncGetHostByName.S | 3 +- libc/nt/ws2_32/WSAAsyncGetProtoByName.S | 3 +- libc/nt/ws2_32/WSAAsyncGetProtoByNumber.S | 3 +- libc/nt/ws2_32/WSACleanup.S | 3 +- libc/nt/ws2_32/WSACloseEvent.S | 3 +- libc/nt/ws2_32/WSAConnect.S | 3 +- libc/nt/ws2_32/WSAConnectByList.S | 3 +- libc/nt/ws2_32/WSAConnectByNameW.S | 3 +- libc/nt/ws2_32/WSACreateEvent.S | 3 +- libc/nt/ws2_32/WSADuplicateSocketW.S | 3 +- libc/nt/ws2_32/WSAEnumNameSpaceProvidersExW.S | 3 +- libc/nt/ws2_32/WSAEnumNameSpaceProvidersW.S | 3 +- libc/nt/ws2_32/WSAEnumNetworkEvents.S | 3 +- libc/nt/ws2_32/WSAEnumProtocolsW.S | 3 +- libc/nt/ws2_32/WSAEventSelect.S | 3 +- libc/nt/ws2_32/WSAGetLastError.S | 3 +- libc/nt/ws2_32/WSAGetOverlappedResult.S | 3 +- libc/nt/ws2_32/WSAGetQOSByName.S | 3 +- libc/nt/ws2_32/WSAGetServiceClassInfoW.S | 3 +- .../ws2_32/WSAGetServiceClassNameByClassIdW.S | 3 +- libc/nt/ws2_32/WSAInstallServiceClassW.S | 3 +- libc/nt/ws2_32/WSAIoctl.S | 3 +- libc/nt/ws2_32/WSAJoinLeaf.S | 3 +- libc/nt/ws2_32/WSALookupServiceBeginW.S | 3 +- libc/nt/ws2_32/WSALookupServiceEnd.S | 3 +- libc/nt/ws2_32/WSALookupServiceNextW.S | 3 +- libc/nt/ws2_32/WSANSPIoctl.S | 3 +- libc/nt/ws2_32/WSAPoll.S | 3 +- libc/nt/ws2_32/WSAProviderConfigChange.S | 3 +- libc/nt/ws2_32/WSARecv.S | 3 +- libc/nt/ws2_32/WSARecvDisconnect.S | 3 +- libc/nt/ws2_32/WSARecvFrom.S | 3 +- libc/nt/ws2_32/WSARemoveServiceClass.S | 3 +- libc/nt/ws2_32/WSAResetEvent.S | 3 +- libc/nt/ws2_32/WSASend.S | 3 +- libc/nt/ws2_32/WSASendDisconnect.S | 3 +- libc/nt/ws2_32/WSASendMsg.S | 3 +- libc/nt/ws2_32/WSASendTo.S | 3 +- libc/nt/ws2_32/WSASetEvent.S | 3 +- libc/nt/ws2_32/WSASetLastError.S | 3 +- libc/nt/ws2_32/WSASetServiceW.S | 3 +- libc/nt/ws2_32/WSASocketW.S | 3 +- libc/nt/ws2_32/WSAStartup.S | 3 +- libc/nt/ws2_32/WSAWaitForMultipleEvents.S | 3 +- libc/nt/ws2_32/accept.S | 3 +- libc/nt/ws2_32/bind.S | 3 +- libc/nt/ws2_32/closesocket.S | 3 +- libc/nt/ws2_32/getpeername.S | 3 +- libc/nt/ws2_32/getsockname.S | 3 +- libc/nt/ws2_32/getsockopt.S | 3 +- libc/nt/ws2_32/ioctlsocket.S | 3 +- libc/nt/ws2_32/listen.S | 3 +- libc/nt/ws2_32/recv.S | 3 +- libc/nt/ws2_32/recvfrom.S | 3 +- libc/nt/ws2_32/select.S | 3 +- libc/nt/ws2_32/send.S | 3 +- libc/nt/ws2_32/sendto.S | 3 +- libc/nt/ws2_32/setsockopt.S | 3 +- libc/nt/ws2_32/shutdown.S | 3 +- libc/nt/ws2_32/socket.S | 3 +- libc/runtime/cosmo.S | 2 +- libc/runtime/cosmo2.c | 5 +- libc/runtime/fpreset.S | 3 +- libc/runtime/ftrace-hook.S | 53 ++---- libc/runtime/ftracer.c | 18 +- libc/runtime/hook.greg.c | 177 ++++++++++-------- libc/runtime/init.S | 3 +- libc/runtime/internal.h | 5 +- libc/runtime/morph.greg.c | 59 +++--- libc/runtime/runtime.mk | 14 +- libc/runtime/vfork.S | 3 +- libc/stdio/stdio.mk | 6 +- libc/str/str.mk | 10 +- libc/str/strcspn.c | 46 ++--- libc/str/strspn.c | 26 ++- libc/sysv/errfuns/e2big.S | 3 +- libc/sysv/errfuns/eacces.S | 3 +- libc/sysv/errfuns/eaddrinuse.S | 3 +- libc/sysv/errfuns/eaddrnotavail.S | 3 +- libc/sysv/errfuns/eadv.S | 3 +- libc/sysv/errfuns/eafnosupport.S | 3 +- libc/sysv/errfuns/eagain.S | 3 +- libc/sysv/errfuns/ealready.S | 3 +- libc/sysv/errfuns/ebade.S | 3 +- libc/sysv/errfuns/ebadf.S | 3 +- libc/sysv/errfuns/ebadfd.S | 3 +- libc/sysv/errfuns/ebadmsg.S | 3 +- libc/sysv/errfuns/ebadr.S | 3 +- libc/sysv/errfuns/ebadrqc.S | 3 +- libc/sysv/errfuns/ebadslt.S | 3 +- libc/sysv/errfuns/ebusy.S | 3 +- libc/sysv/errfuns/ecanceled.S | 3 +- libc/sysv/errfuns/echild.S | 3 +- libc/sysv/errfuns/echrng.S | 3 +- libc/sysv/errfuns/ecomm.S | 3 +- libc/sysv/errfuns/econnaborted.S | 3 +- libc/sysv/errfuns/econnrefused.S | 3 +- libc/sysv/errfuns/econnreset.S | 3 +- libc/sysv/errfuns/edeadlk.S | 3 +- libc/sysv/errfuns/edestaddrreq.S | 3 +- libc/sysv/errfuns/edom.S | 3 +- libc/sysv/errfuns/edotdot.S | 3 +- libc/sysv/errfuns/edquot.S | 3 +- libc/sysv/errfuns/eexist.S | 3 +- libc/sysv/errfuns/efault.S | 3 +- libc/sysv/errfuns/efbig.S | 3 +- libc/sysv/errfuns/ehostdown.S | 3 +- libc/sysv/errfuns/ehostunreach.S | 3 +- libc/sysv/errfuns/ehwpoison.S | 3 +- libc/sysv/errfuns/eidrm.S | 3 +- libc/sysv/errfuns/eilseq.S | 3 +- libc/sysv/errfuns/einprogress.S | 3 +- libc/sysv/errfuns/eintr.S | 3 +- libc/sysv/errfuns/einval.S | 3 +- libc/sysv/errfuns/eio.S | 3 +- libc/sysv/errfuns/eisconn.S | 3 +- libc/sysv/errfuns/eisdir.S | 3 +- libc/sysv/errfuns/eisnam.S | 3 +- libc/sysv/errfuns/ekeyexpired.S | 3 +- libc/sysv/errfuns/ekeyrejected.S | 3 +- libc/sysv/errfuns/ekeyrevoked.S | 3 +- libc/sysv/errfuns/el2hlt.S | 3 +- libc/sysv/errfuns/el2nsync.S | 3 +- libc/sysv/errfuns/el3hlt.S | 3 +- libc/sysv/errfuns/el3rst.S | 3 +- libc/sysv/errfuns/elibacc.S | 3 +- libc/sysv/errfuns/elibbad.S | 3 +- libc/sysv/errfuns/elibexec.S | 3 +- libc/sysv/errfuns/elibmax.S | 3 +- libc/sysv/errfuns/elibscn.S | 3 +- libc/sysv/errfuns/elnrng.S | 3 +- libc/sysv/errfuns/eloop.S | 3 +- libc/sysv/errfuns/emediumtype.S | 3 +- libc/sysv/errfuns/emfile.S | 3 +- libc/sysv/errfuns/emlink.S | 3 +- libc/sysv/errfuns/emsgsize.S | 3 +- libc/sysv/errfuns/emultihop.S | 3 +- libc/sysv/errfuns/enametoolong.S | 3 +- libc/sysv/errfuns/enavail.S | 3 +- libc/sysv/errfuns/enetdown.S | 3 +- libc/sysv/errfuns/enetreset.S | 3 +- libc/sysv/errfuns/enetunreach.S | 3 +- libc/sysv/errfuns/enfile.S | 3 +- libc/sysv/errfuns/enoano.S | 3 +- libc/sysv/errfuns/enobufs.S | 3 +- libc/sysv/errfuns/enocsi.S | 3 +- libc/sysv/errfuns/enodata.S | 3 +- libc/sysv/errfuns/enodev.S | 3 +- libc/sysv/errfuns/enoent.S | 3 +- libc/sysv/errfuns/enoexec.S | 3 +- libc/sysv/errfuns/enokey.S | 3 +- libc/sysv/errfuns/enolck.S | 3 +- libc/sysv/errfuns/enolink.S | 3 +- libc/sysv/errfuns/enomedium.S | 3 +- libc/sysv/errfuns/enomem.S | 3 +- libc/sysv/errfuns/enomsg.S | 3 +- libc/sysv/errfuns/enonet.S | 3 +- libc/sysv/errfuns/enopkg.S | 3 +- libc/sysv/errfuns/enoprotoopt.S | 3 +- libc/sysv/errfuns/enospc.S | 3 +- libc/sysv/errfuns/enosr.S | 3 +- libc/sysv/errfuns/enostr.S | 3 +- libc/sysv/errfuns/enosys.S | 3 +- libc/sysv/errfuns/enotblk.S | 3 +- libc/sysv/errfuns/enotconn.S | 3 +- libc/sysv/errfuns/enotdir.S | 3 +- libc/sysv/errfuns/enotempty.S | 3 +- libc/sysv/errfuns/enotnam.S | 3 +- libc/sysv/errfuns/enotrecoverable.S | 3 +- libc/sysv/errfuns/enotsock.S | 3 +- libc/sysv/errfuns/enotsup.S | 3 +- libc/sysv/errfuns/enotty.S | 3 +- libc/sysv/errfuns/enotuniq.S | 3 +- libc/sysv/errfuns/enxio.S | 3 +- libc/sysv/errfuns/eopnotsupp.S | 3 +- libc/sysv/errfuns/eoverflow.S | 3 +- libc/sysv/errfuns/eownerdead.S | 3 +- libc/sysv/errfuns/eperm.S | 3 +- libc/sysv/errfuns/epfnosupport.S | 3 +- libc/sysv/errfuns/epipe.S | 3 +- libc/sysv/errfuns/eproto.S | 3 +- libc/sysv/errfuns/eprotonosupport.S | 3 +- libc/sysv/errfuns/eprototype.S | 3 +- libc/sysv/errfuns/erange.S | 3 +- libc/sysv/errfuns/eremchg.S | 3 +- libc/sysv/errfuns/eremote.S | 3 +- libc/sysv/errfuns/eremoteio.S | 3 +- libc/sysv/errfuns/erestart.S | 3 +- libc/sysv/errfuns/erfkill.S | 3 +- libc/sysv/errfuns/erofs.S | 3 +- libc/sysv/errfuns/eshutdown.S | 3 +- libc/sysv/errfuns/esocktnosupport.S | 3 +- libc/sysv/errfuns/espipe.S | 3 +- libc/sysv/errfuns/esrch.S | 3 +- libc/sysv/errfuns/esrmnt.S | 3 +- libc/sysv/errfuns/estale.S | 3 +- libc/sysv/errfuns/estrpipe.S | 3 +- libc/sysv/errfuns/etime.S | 3 +- libc/sysv/errfuns/etimedout.S | 3 +- libc/sysv/errfuns/etoomanyrefs.S | 3 +- libc/sysv/errfuns/etxtbsy.S | 3 +- libc/sysv/errfuns/euclean.S | 3 +- libc/sysv/errfuns/eunatch.S | 3 +- libc/sysv/errfuns/eusers.S | 3 +- libc/sysv/errfuns/exdev.S | 3 +- libc/sysv/errfuns/exfull.S | 3 +- libc/sysv/gen.sh | 3 +- libc/sysv/macros.internal.h | 26 ++- libc/sysv/syscall.S | 3 +- libc/sysv/sysv.mk | 2 +- libc/thread/tls2.h | 2 +- libc/time/time.mk | 6 +- libc/tinymath/tinymath.mk | 6 +- net/http/http.mk | 4 +- test/libc/intrin/test.mk | 2 +- test/libc/runtime/test.mk | 2 +- test/libc/str/test.mk | 4 +- test/libc/thread/test.mk | 2 +- test/libc/tinymath/test.mk | 2 +- test/tool/build/lib/asmdown_test.c | 9 +- third_party/argon2/argon2.mk | 2 +- third_party/bzip2/bzip2.mk | 2 +- third_party/chibicc/chibicc.mk | 2 +- third_party/dlmalloc/dlmalloc.mk | 6 +- third_party/double-conversion/dc.mk | 2 +- third_party/gdtoa/gdtoa.mk | 2 +- third_party/ggml/ggml.mk | 8 +- third_party/libcxx/libcxx.mk | 2 +- third_party/linenoise/linenoise.mk | 2 +- third_party/lua/lua.mk | 6 +- third_party/make/make.mk | 6 +- third_party/maxmind/maxmind.mk | 2 +- third_party/mbedtls/mbedtls.mk | 10 +- third_party/mbedtls/test/test.mk | 2 +- third_party/mbedtls/test/test_suite_ssl.c | 2 +- third_party/nsync/mem/mem.mk | 2 +- third_party/nsync/nsync.mk | 2 +- third_party/python/Python/cosmomodule.c | 2 +- third_party/python/python.mk | 18 +- third_party/quickjs/quickjs.mk | 6 +- third_party/regex/regex.mk | 2 +- third_party/sqlite3/sqlite3.mk | 12 +- third_party/stb/stb.mk | 6 +- third_party/unzip/unzip.mk | 4 +- third_party/xed/xed.mk | 4 +- third_party/zip/zip.mk | 2 +- third_party/zlib/gz/gz.mk | 2 +- third_party/zlib/zlib.mk | 6 +- tool/build/build.mk | 4 +- tool/build/emubin/emubin.mk | 2 +- tool/build/fixupobj.c | 50 +++++ tool/build/lib/asmdown.c | 4 +- tool/lambda/lambda.mk | 2 +- tool/net/net.mk | 2 +- tool/plinko/lib/lib.mk | 6 +- tool/viz/lib/doublechrominance.S | 3 +- tool/viz/lib/vizlib.mk | 6 +- tool/viz/viz.mk | 4 +- 934 files changed, 2259 insertions(+), 1268 deletions(-) rename libc/intrin/aarch64/{asmdefs.h => asmdefs.internal.h} (96%) diff --git a/ape/aarch64.lds b/ape/aarch64.lds index 5501184cb..b05c66840 100644 --- a/ape/aarch64.lds +++ b/ape/aarch64.lds @@ -71,6 +71,8 @@ SECTIONS { KEEP(*(SORT_NONE(.fini))) } =0x1f2003d5 + . = ALIGN(__privileged_end > __privileged_start ? 0x4000 : 1); + .privileged : { PROVIDE_HIDDEN(__privileged_start = .); *(.privileged*) @@ -271,6 +273,10 @@ SECTIONS { } } +HIDDEN(__privileged_addr = ROUNDDOWN(__privileged_start, PAGESIZE)); +HIDDEN(__privileged_size = (ROUNDUP(__privileged_end, PAGESIZE) - + ROUNDDOWN(__privileged_start, PAGESIZE))); + PROVIDE(ape_stack_memsz = DEFINED(ape_stack_memsz) ? ape_stack_memsz : STACKSIZE); PROVIDE_HIDDEN(_tls_size = _tbss_end - _tdata_start); PROVIDE_HIDDEN(_tdata_size = _tdata_end - _tdata_start); diff --git a/ape/ape.mk b/ape/ape.mk index 02c210bbf..4c83aa5a4 100644 --- a/ape/ape.mk +++ b/ape/ape.mk @@ -89,7 +89,7 @@ APE_SRCS = $(APE_SRCS_C) $(APE_SRCS_S) APE_OBJS = $(APE_SRCS_S:%.S=o/$(MODE)/%.o) APE_CHECKS = $(APE_HDRS:%=o/%.ok) -o/$(MODE)/ape/public/ape.lds: OVERRIDE_CPPFLAGS += -UCOSMO +o/$(MODE)/ape/public/ape.lds: CPPFLAGS += -UCOSMO o/$(MODE)/ape/public/ape.lds: \ ape/public/ape.lds \ ape/ape.lds \ diff --git a/build/bootstrap/fixupobj.com b/build/bootstrap/fixupobj.com index 59f944cc17717d0380d52193dbe39b788b045a41..aaafb3a72fdc45c8489cff25c5d853f308997e8c 100755 GIT binary patch delta 24880 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, SHN_ABS, SHN_COMMON, etc. */ Elf64_Section st_shndx; + /* byte offset into GetElfSectionAddress(st_shndx) */ Elf64_Addr st_value; + /* byte length optionally set by .size directive */ Elf64_Xword st_size; } Elf64_Sym; diff --git a/libc/fmt/fmt.mk b/libc/fmt/fmt.mk index 10611a401..097586bab 100644 --- a/libc/fmt/fmt.mk +++ b/libc/fmt/fmt.mk @@ -55,14 +55,14 @@ $(LIBC_FMT_A).pkg: \ $(foreach x,$(LIBC_FMT_A_DIRECTDEPS),$($(x)_A).pkg) $(LIBC_FMT_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-jump-tables o/$(MODE)/libc/fmt/formatint64.o \ o/$(MODE)/libc/fmt/formatint64thousands.o \ o/$(MODE)/libc/fmt/dosdatetimetounix.o \ o/$(MODE)/libc/fmt/itoa64radix10.greg.o: private\ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 o/$(MODE)/libc/fmt/atoi.o \ @@ -74,7 +74,7 @@ o/$(MODE)/libc/fmt/strtoimax.o \ o/$(MODE)/libc/fmt/strtoumax.o \ o/$(MODE)/libc/fmt/wcstoimax.o \ o/$(MODE)/libc/fmt/wcstoumax.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os # we can't use compiler magic because: @@ -82,7 +82,7 @@ o/$(MODE)/libc/fmt/wcstoumax.o: private \ o/$(MODE)/libc/fmt/strerrno.greg.o \ o/$(MODE)/libc/fmt/strerrdoc.greg.o \ o/$(MODE)/libc/fmt/strerror_wr.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie \ -ffreestanding \ $(NO_MAGIC) diff --git a/libc/intrin/aarch64/asmdefs.h b/libc/intrin/aarch64/asmdefs.internal.h similarity index 96% rename from libc/intrin/aarch64/asmdefs.h rename to libc/intrin/aarch64/asmdefs.internal.h index ab2917b05..2b8baed26 100644 --- a/libc/intrin/aarch64/asmdefs.h +++ b/libc/intrin/aarch64/asmdefs.internal.h @@ -1,5 +1,6 @@ #ifndef COSMOPOLITAN_LIBC_INTRIN_AARCH64_ASMDEFS_H_ #define COSMOPOLITAN_LIBC_INTRIN_AARCH64_ASMDEFS_H_ +#include "libc/macros.internal.h" #ifdef __ASSEMBLER__ // clang-format off @@ -44,7 +45,9 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC) .global name; \ .type name,%function; \ .align alignment; \ + .ftrace1; \ name: \ + .ftrace2; \ .cfi_startproc; \ BTI_C; diff --git a/libc/intrin/aarch64/memchr.S b/libc/intrin/aarch64/memchr.S index ba2cebf3d..0a4cb2e01 100644 --- a/libc/intrin/aarch64/memchr.S +++ b/libc/intrin/aarch64/memchr.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __memchr_aarch64 memchr diff --git a/libc/intrin/aarch64/memcmp.S b/libc/intrin/aarch64/memcmp.S index fe8a7086a..de2ef3e8a 100644 --- a/libc/intrin/aarch64/memcmp.S +++ b/libc/intrin/aarch64/memcmp.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __memcmp_aarch64 memcmp diff --git a/libc/intrin/aarch64/memcpy.S b/libc/intrin/aarch64/memcpy.S index bbbed20f4..c7316cbe4 100644 --- a/libc/intrin/aarch64/memcpy.S +++ b/libc/intrin/aarch64/memcpy.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __memcpy_aarch64_simd memcpy #define __memmove_aarch64_simd memmove diff --git a/libc/intrin/aarch64/memrchr.S b/libc/intrin/aarch64/memrchr.S index 3b2326189..6adf12375 100644 --- a/libc/intrin/aarch64/memrchr.S +++ b/libc/intrin/aarch64/memrchr.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __memrchr_aarch64 memrchr diff --git a/libc/intrin/aarch64/memset.S b/libc/intrin/aarch64/memset.S index 6cb7174fa..585466792 100644 --- a/libc/intrin/aarch64/memset.S +++ b/libc/intrin/aarch64/memset.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __memset_aarch64 memset diff --git a/libc/intrin/aarch64/stpcpy.S b/libc/intrin/aarch64/stpcpy.S index a0e22aac9..a613472c7 100644 --- a/libc/intrin/aarch64/stpcpy.S +++ b/libc/intrin/aarch64/stpcpy.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __stpcpy_aarch64 stpcpy diff --git a/libc/intrin/aarch64/strchr.S b/libc/intrin/aarch64/strchr.S index 1989cda7f..6ab0ba2f3 100644 --- a/libc/intrin/aarch64/strchr.S +++ b/libc/intrin/aarch64/strchr.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strchr_aarch64 strchr diff --git a/libc/intrin/aarch64/strchrnul.S b/libc/intrin/aarch64/strchrnul.S index 207100e6c..46582ec29 100644 --- a/libc/intrin/aarch64/strchrnul.S +++ b/libc/intrin/aarch64/strchrnul.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strchrnul_aarch64 strchrnul diff --git a/libc/intrin/aarch64/strcmp.S b/libc/intrin/aarch64/strcmp.S index f48df8eef..33077a2fc 100644 --- a/libc/intrin/aarch64/strcmp.S +++ b/libc/intrin/aarch64/strcmp.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strcmp_aarch64 strcmp diff --git a/libc/intrin/aarch64/strcpy.S b/libc/intrin/aarch64/strcpy.S index 5134c3765..a3e921140 100644 --- a/libc/intrin/aarch64/strcpy.S +++ b/libc/intrin/aarch64/strcpy.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strcpy_aarch64 strcpy diff --git a/libc/intrin/aarch64/strlen.S b/libc/intrin/aarch64/strlen.S index 89a0fc4f0..dd5c05a6c 100644 --- a/libc/intrin/aarch64/strlen.S +++ b/libc/intrin/aarch64/strlen.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strlen_aarch64 strlen diff --git a/libc/intrin/aarch64/strncmp.S b/libc/intrin/aarch64/strncmp.S index 6b2e753d5..693f6d652 100644 --- a/libc/intrin/aarch64/strncmp.S +++ b/libc/intrin/aarch64/strncmp.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strncmp_aarch64 strncmp diff --git a/libc/intrin/aarch64/strnlen.S b/libc/intrin/aarch64/strnlen.S index ab764d5a5..1bcbc561e 100644 --- a/libc/intrin/aarch64/strnlen.S +++ b/libc/intrin/aarch64/strnlen.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strnlen_aarch64 strnlen diff --git a/libc/intrin/aarch64/strrchr.S b/libc/intrin/aarch64/strrchr.S index 49cefbc77..162c5b11d 100644 --- a/libc/intrin/aarch64/strrchr.S +++ b/libc/intrin/aarch64/strrchr.S @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/aarch64/asmdefs.h" +#include "libc/intrin/aarch64/asmdefs.internal.h" #define __strrchr_aarch64 strrchr diff --git a/libc/intrin/assertfail.greg.c b/libc/intrin/assertfail.greg.c index 95b6d3bdb..a6f196437 100644 --- a/libc/intrin/assertfail.greg.c +++ b/libc/intrin/assertfail.greg.c @@ -26,6 +26,7 @@ #include "libc/intrin/weaken.h" #include "libc/log/backtrace.internal.h" #include "libc/log/internal.h" +#include "libc/runtime/internal.h" #include "libc/runtime/runtime.h" #include "libc/runtime/symbols.internal.h" #include "libc/thread/thread.h" @@ -38,7 +39,7 @@ relegated void __assert_fail(const char *expr, const char *file, int line) { strace_enabled(-1); ftrace_enabled(-1); owner = 0; - me = __tls_enabled ? __get_tls()->tib_tid : sys_gettid(); + me = __tls_enabled ? __get_tls()->tib_tid : __pid; pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, 0); kprintf("%s:%d: assert(%s) failed (tid %d) %m\n", file, line, expr, me); if (__vforked || diff --git a/libc/intrin/bsr128.S b/libc/intrin/bsr128.S index 1c75ba1b0..cabcba96e 100644 --- a/libc/intrin/bsr128.S +++ b/libc/intrin/bsr128.S @@ -33,9 +33,10 @@ // @param rsi:rdi is 128-bit unsigned 𝑥 value // @return eax number in range [0,128) or undef if 𝑥 is 0 // @see also treasure trove of nearly identical functions + .ftrace1 _bsr128: + .ftrace2 .leafprologue - .profilable bsr %rsi,%rax jnz 2f bsr %rdi,%rax diff --git a/libc/intrin/bzero.c b/libc/intrin/bzero.c index 9c142047b..b97233545 100644 --- a/libc/intrin/bzero.c +++ b/libc/intrin/bzero.c @@ -26,7 +26,7 @@ typedef char xmm_t __attribute__((__vector_size__(16), __aligned__(1))); typedef long long xmm_a __attribute__((__vector_size__(16), __aligned__(16))); -static void bzero_sse(char *p, size_t n) { +static void bzero128(char *p, size_t n) { xmm_t v = {0}; if (IsAsan()) __asan_verify(p, n); if (n <= 32) { @@ -162,6 +162,6 @@ void bzero(void *p, size_t n) { bzero_avx(b, n); #endif } else { - bzero_sse(b, n); + bzero128(b, n); } } diff --git a/libc/intrin/intrin.mk b/libc/intrin/intrin.mk index 243f2e7fd..0adf6ad25 100644 --- a/libc/intrin/intrin.mk +++ b/libc/intrin/intrin.mk @@ -16,6 +16,7 @@ LIBC_INTRIN_A_CHECKS = $(LIBC_INTRIN_A).pkg ifeq ($(ARCH), aarch64) LIBC_INTRIN_A_SRCS_S += $(wildcard libc/intrin/aarch64/*.S) +LIBC_INTRIN_A_HDRS += libc/intrin/aarch64/asmdefs.internal.h endif LIBC_INTRIN_A_OBJS = \ @@ -49,39 +50,39 @@ $(LIBC_INTRIN_A).pkg: \ # we can't use asan because: # __strace_init() calls this before asan is initialized o/$(MODE)/libc/intrin/strace_enabled.o: private \ - OVERRIDE_COPTS += \ + COPTS += \ -fno-sanitize=address # we can't use asan because: # asan guard pages haven't been allocated yet o/$(MODE)/libc/intrin/directmap.o \ o/$(MODE)/libc/intrin/directmap-nt.o: private \ - OVERRIDE_COPTS += \ + COPTS += \ -ffreestanding \ -fno-sanitize=address # we want small code size because: # to keep .text.head under 4096 bytes o/$(MODE)/libc/intrin/mman.greg.o: private \ - OVERRIDE_COPTS += \ + COPTS += \ -Os # we can't use asan and ubsan because: # this is asan and ubsan o/$(MODE)/libc/intrin/asan.o \ o/$(MODE)/libc/intrin/ubsan.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-sanitize=all \ -fno-stack-protector o/$(MODE)/libc/intrin/asan.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 \ -finline \ -finline-functions o/$(MODE)/libc/intrin/asanthunk.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -x-no-pg \ $(MNO_FENTRY) \ -ffreestanding \ @@ -95,7 +96,7 @@ o/$(MODE)/libc/intrin/strerrno.greg.o \ o/$(MODE)/libc/intrin/strerrdoc.greg.o \ o/$(MODE)/libc/intrin/strerror_wr.greg.o \ o/$(MODE)/libc/intrin/kprintf.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie \ -fwrapv \ -x-no-pg \ @@ -109,10 +110,9 @@ o/$(MODE)/libc/intrin/kprintf.greg.o: private \ o/$(MODE)/libc/intrin/futex_wait.o \ o/$(MODE)/libc/intrin/futex_wake.o \ o/$(MODE)/libc/intrin/gettid.greg.o \ -o/$(MODE)/libc/intrin/sys_gettid.greg.o \ o/$(MODE)/libc/intrin/_trylock_debug_4.o \ o/$(MODE)/libc/intrin/_spinlock_debug_4.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fwrapv \ -x-no-pg \ $(MNO_FENTRY) \ @@ -125,13 +125,13 @@ o/$(MODE)/libc/intrin/_spinlock_debug_4.o: private \ # global gone could be raised o/$(MODE)/libc/intrin/exit.o \ o/$(MODE)/libc/intrin/restorewintty.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-sanitize=all # we can't use -ftrapv because: # this file implements it o/$(MODE)/libc/intrin/ftrapv.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -ffreestanding \ -fwrapv @@ -142,7 +142,7 @@ o/$(MODE)/libc/intrin/describeflags.o \ o/$(MODE)/libc/intrin/describeframe.o \ o/$(MODE)/libc/intrin/describemapflags.o \ o/$(MODE)/libc/intrin/describeprotflags.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-sanitize=address o/$(MODE)/libc/intrin/exit1.greg.o \ @@ -180,7 +180,7 @@ o/$(MODE)/libc/intrin/createfilemappingnuma.o \ o/$(MODE)/libc/intrin/waitformultipleobjects.o \ o/$(MODE)/libc/intrin/generateconsolectrlevent.o \ o/$(MODE)/libc/intrin/wsawaitformultipleevents.o: private\ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os \ -fwrapv \ -ffreestanding \ @@ -188,20 +188,20 @@ o/$(MODE)/libc/intrin/wsawaitformultipleevents.o: private\ -fno-sanitize=all o//libc/intrin/memmove.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-toplevel-reorder o//libc/intrin/bzero.o \ o//libc/intrin/memcmp.o \ o//libc/intrin/memset.o \ o//libc/intrin/memmove.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 -finline o/$(MODE)/libc/intrin/bzero.o \ o/$(MODE)/libc/intrin/memcmp.o \ o/$(MODE)/libc/intrin/memmove.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie # these assembly files are safe to build on aarch64 diff --git a/libc/intrin/kprintf.greg.c b/libc/intrin/kprintf.greg.c index 6647d5ed8..a2b389a27 100644 --- a/libc/intrin/kprintf.greg.c +++ b/libc/intrin/kprintf.greg.c @@ -382,7 +382,7 @@ privileged static size_t kformat(char *b, size_t n, const char *fmt, if (tib) { x = atomic_load_explicit(&tib->tib_tid, memory_order_relaxed); } else { - x = sys_gettid(); + x = __pid; } if (!__nocolor && p + 7 <= e) { *p++ = '\e'; diff --git a/libc/intrin/sched_yield.S b/libc/intrin/sched_yield.S index 117187bd4..bd5355562 100644 --- a/libc/intrin/sched_yield.S +++ b/libc/intrin/sched_yield.S @@ -19,13 +19,14 @@ #include "libc/dce.h" #include "libc/sysv/consts/nr.h" #include "libc/macros.internal.h" -.privileged // Relinquishes scheduled quantum. // // @return 0 on success, or -1 w/ errno // @norestart + .ftrace1 sched_yield: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp diff --git a/libc/intrin/strcmp.c b/libc/intrin/strcmp.c index 58f1d5146..574bd4a9b 100644 --- a/libc/intrin/strcmp.c +++ b/libc/intrin/strcmp.c @@ -19,6 +19,7 @@ #include "libc/dce.h" #include "libc/intrin/asan.internal.h" #include "libc/str/str.h" +#ifndef __aarch64__ /** * Compares NUL-terminated strings. @@ -28,7 +29,7 @@ * @return is <0, 0, or >0 based on uint8_t comparison * @asyncsignalsafe */ -noasan int strcmp(const char *a, const char *b) { +int strcmp(const char *a, const char *b) { int c; size_t i = 0; uint64_t v, w, d; @@ -58,3 +59,5 @@ noasan int strcmp(const char *a, const char *b) { } return (a[i] & 255) - (b[i] & 255); } + +#endif /* __aarch64__ */ diff --git a/libc/intrin/sys_gettid.greg.c b/libc/intrin/sys_gettid.greg.c index 2d5c792cd..1f6730d50 100644 --- a/libc/intrin/sys_gettid.greg.c +++ b/libc/intrin/sys_gettid.greg.c @@ -24,7 +24,7 @@ __msabi extern typeof(GetCurrentThreadId) *const __imp_GetCurrentThreadId; -privileged int sys_gettid(void) { +int sys_gettid(void) { #ifdef __x86_64__ int tid; int64_t wut; diff --git a/libc/intrin/tpenc.S b/libc/intrin/tpenc.S index 2e6bc8ac9..3df49c2dc 100644 --- a/libc/intrin/tpenc.S +++ b/libc/intrin/tpenc.S @@ -23,8 +23,9 @@ // @param edi is int to encode // @return rax is word-encoded byte buffer // @note invented on a napkin in a new jersey diner -_tpenc: .leafprologue - .profilable + .ftrace1 +_tpenc: .ftrace2 + .leafprologue mov %edi,%edi xor %eax,%eax cmp $127,%edi @@ -47,20 +48,20 @@ _tpenc: .leafprologue .rodata .balign 4 .underrun -kTpenc: .rept 4 # MSB≤10 (0x7FF) - .byte 1,0b11000000 # len,mark +kTpenc: .rept 4 // MSB≤10 (0x7FF) + .byte 1,0b11000000 // len,mark .endr - .rept 5 # MSB≤15 (0xFFFF) - .byte 2,0b11100000 # len,mark + .rept 5 // MSB≤15 (0xFFFF) + .byte 2,0b11100000 // len,mark .endr - .rept 5 # MSB≤20 (0x1FFFFF) - .byte 3,0b11110000 # len,mark + .rept 5 // MSB≤20 (0x1FFFFF) + .byte 3,0b11110000 // len,mark .endr - .rept 5 # MSB≤25 (0x3FFFFFF) - .byte 4,0b11111000 # len,mark + .rept 5 // MSB≤25 (0x3FFFFFF) + .byte 4,0b11111000 // len,mark .endr - .rept 6 # MSB≤31 (0xffffffff) - .byte 5,0b11111100 # len,mark + .rept 6 // MSB≤31 (0xffffffff) + .byte 5,0b11111100 // len,mark .endr .zero 2 .endobj kTpenc diff --git a/libc/log/log.mk b/libc/log/log.mk index ce7d7a067..666deb9f2 100644 --- a/libc/log/log.mk +++ b/libc/log/log.mk @@ -58,15 +58,15 @@ $(LIBC_LOG_A).pkg: \ o/$(MODE)/libc/log/backtrace2.o \ o/$(MODE)/libc/log/backtrace3.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-sanitize=all o/$(MODE)/libc/log/checkfail.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -mgeneral-regs-only o/$(MODE)/libc/log/watch.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffreestanding o/$(MODE)/libc/log/watch.o \ @@ -82,7 +82,7 @@ o/$(MODE)/libc/log/startfatal.o \ o/$(MODE)/libc/log/startfatal_ndebug.o \ o/$(MODE)/libc/log/ubsan.o \ o/$(MODE)/libc/log/die.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(NO_MAGIC) LIBC_LOG_LIBS = $(foreach x,$(LIBC_LOG_ARTIFACTS),$($(x))) diff --git a/libc/macros.internal.h b/libc/macros.internal.h index 4ac846f28..3f14de7ec 100644 --- a/libc/macros.internal.h +++ b/libc/macros.internal.h @@ -213,6 +213,36 @@ .org 1347b+\fieldsize,0x00 .endm +// Inserts --ftrace pre-prologue. +// This goes immediately before the function symbol. +// @see .ftrace2 +.macro .ftrace1 +#ifdef FTRACE +#ifdef __x86_64__ + .rept 9 + nop + .endr +#elif defined(__aarch64__) + .rept 6 + nop + .endr +#endif /* __x86_64__ */ +#endif /* FTRACE */ +.endm + +// Inserts --ftrace prologue. +// This goes immediately after the function symbol. +// @see .ftrace1 +.macro .ftrace2 +#ifdef FTRACE +#ifdef __x86_64__ + xchg %ax,%ax +#elif defined(__aarch64__) + nop +#endif /* __x86_64__ */ +#endif /* FTRACE */ +.endm + #ifdef __x86_64__ #if __MNO_VZEROUPPER__ + 0 @@ -346,7 +376,7 @@ // Pads function prologue unconditionally for runtime hooking. // @cost ≥0.3 cycles, 5 bytes -// @see .profilable +// @see .ftrace1 .macro .hookable .byte 0x0f .byte 0x1f @@ -473,31 +503,6 @@ #endif .endm -// Inserts profiling hook in prologue if cc wants it. -// -// Cosmopolitan does this in a slightly different way from normal -// GNU toolchains. We always use the -mnop-mcount behavior, since -// the runtime is able to morph the binary at runtime. It is good -// since we can put hooks for profiling and function tracing into -// most builds, without any impact on performance. -// -// @cost ≥0.3 cycles, 5 bytes -// @see build/compile -.macro .profilable -#ifdef __PG__ -1382: -#if defined(__MFENTRY__) - call __fentry__ -#elif defined(__PIC__) || defined(__PIE__) -// nopw 0x00(%rax,%rax,1) - .byte 0x66,0x0f,0x1f,0x44,0x00,0x00 -#else -// nopl 0x00(%rax,%rax,1) - .byte 0x0f,0x1f,0x44,0x00,0x00 -#endif -#endif -.endm - // Pushes RVA on stack of linktime mergeable string literal. // @see popstr .macro pushstr text diff --git a/libc/nexgen32e/gclongjmp.S b/libc/nexgen32e/gclongjmp.S index 1112164e2..72cac2ae6 100644 --- a/libc/nexgen32e/gclongjmp.S +++ b/libc/nexgen32e/gclongjmp.S @@ -30,11 +30,12 @@ // @see examples/ctrlc.c // @threadsafe // @noreturn + .ftrace1 _gclongjmp: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %fs:0,%r12 # __get_tls() mov 0x18(%r12),%r12 # Tls::garbages test %r12,%r12 diff --git a/libc/nexgen32e/longjmp.S b/libc/nexgen32e/longjmp.S index c1fb7621b..0d6fa0770 100644 --- a/libc/nexgen32e/longjmp.S +++ b/libc/nexgen32e/longjmp.S @@ -25,7 +25,9 @@ // @noreturn // @see _gclongjmp() // @see siglongjmp() + .ftrace1 longjmp: + .ftrace2 #ifdef __x86_64__ mov %esi,%eax test %eax,%eax diff --git a/libc/nexgen32e/mul4x4adx.S b/libc/nexgen32e/mul4x4adx.S index 86a02797f..f4090bf7a 100644 --- a/libc/nexgen32e/mul4x4adx.S +++ b/libc/nexgen32e/mul4x4adx.S @@ -32,10 +32,11 @@ // @param rdx is right hand side which must have 4 quadwords // @note words are host endian while array is little endian // @mayalias + .ftrace1 Mul4x4Adx: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable sub $56,%rsp mov %r15,-8(%rbp) mov %r14,-16(%rbp) diff --git a/libc/nexgen32e/mul6x6adx.S b/libc/nexgen32e/mul6x6adx.S index bff0d2c36..e0cbf6e75 100644 --- a/libc/nexgen32e/mul6x6adx.S +++ b/libc/nexgen32e/mul6x6adx.S @@ -32,10 +32,11 @@ // @param rdx is right hand side which must have 4 quadwords // @note words are host endian while array is little endian // @mayalias + .ftrace1 Mul6x6Adx: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable sub $64,%rsp mov %r15,-8(%rbp) mov %r14,-16(%rbp) diff --git a/libc/nexgen32e/mul8x8adx.S b/libc/nexgen32e/mul8x8adx.S index 12d9f98df..24e84e7e7 100644 --- a/libc/nexgen32e/mul8x8adx.S +++ b/libc/nexgen32e/mul8x8adx.S @@ -32,10 +32,11 @@ // @param rdx is right hand side which must have 8 quadwords // @note words are host endian while array is little endian // @mayalias + .ftrace1 Mul8x8Adx: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable sub $104,%rsp mov %r15,-8(%rbp) mov %r14,-16(%rbp) diff --git a/libc/nexgen32e/nexgen32e.mk b/libc/nexgen32e/nexgen32e.mk index 579efa8aa..ba07254c1 100644 --- a/libc/nexgen32e/nexgen32e.mk +++ b/libc/nexgen32e/nexgen32e.mk @@ -56,7 +56,7 @@ o/$(MODE)/libc/nexgen32e/ktoupper.o \ o/$(MODE)/libc/nexgen32e/pid.o \ o/$(MODE)/libc/nexgen32e/program_invocation_name2.o \ o/$(MODE)/libc/nexgen32e/threaded.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(NO_MAGIC) # these assembly files are safe to build on aarch64 diff --git a/libc/nexgen32e/nt2sysv.S b/libc/nexgen32e/nt2sysv.S index 34ae867d9..eea00ca27 100644 --- a/libc/nexgen32e/nt2sysv.S +++ b/libc/nexgen32e/nt2sysv.S @@ -29,12 +29,13 @@ // @return %rax,%xmm0 // @note slower than __sysv2nt // @see NT2SYSV() macro + .ftrace1 __nt2sysv: + .ftrace2 push %rbp mov %rsp,%rbp // TODO(jart): We should probably find some way to use our own // stack when Windows delivers signals ;_; - .profilable sub $0x100,%rsp push %rbx push %rdi diff --git a/libc/nexgen32e/rldecode.S b/libc/nexgen32e/rldecode.S index b46eaf888..33c2da7d3 100644 --- a/libc/nexgen32e/rldecode.S +++ b/libc/nexgen32e/rldecode.S @@ -24,9 +24,10 @@ // @param di points to output buffer // @param si points to uint8_t {len₁,byte₁}, ..., {0,0} // @mode long,legacy,real + .ftrace1 rldecode: + .ftrace2 .leafprologue - .profilable xor %ecx,%ecx 0: lodsb xchg %al,%cl diff --git a/libc/nexgen32e/setjmp.S b/libc/nexgen32e/setjmp.S index 0821c4c93..c8312a33e 100644 --- a/libc/nexgen32e/setjmp.S +++ b/libc/nexgen32e/setjmp.S @@ -26,7 +26,8 @@ // @assume system five nexgen32e abi conformant // @note code built w/ microsoft abi compiler can't call this // @see longjmp(), _gclongjmp() -setjmp: + .ftrace1 +setjmp: .ftrace2 #ifdef __x86_64__ lea 8(%rsp),%rax mov %rax,(%rdi) diff --git a/libc/nexgen32e/sha1.S b/libc/nexgen32e/sha1.S index 2ed8400da..6f5eb085f 100644 --- a/libc/nexgen32e/sha1.S +++ b/libc/nexgen32e/sha1.S @@ -613,10 +613,11 @@ BSWAP_SHUFB_CTL: // @param %rsi points to input data // @param %rdx is number of 64-byte blocks to process // @see X86_HAVE(SHA) + .ftrace1 sha1_transform_avx2: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable push %rbx push %r12 push %r13 diff --git a/libc/nexgen32e/sha1ni.S b/libc/nexgen32e/sha1ni.S index cd32bcb21..ff1c32c59 100644 --- a/libc/nexgen32e/sha1ni.S +++ b/libc/nexgen32e/sha1ni.S @@ -77,10 +77,11 @@ Tim Chen \n" // @param %rsi points to input data // @param %rdx is number of 64-byte blocks to process // @see X86_HAVE(SHA) + .ftrace1 sha1_transform_ni: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable sub $FRAME_SIZE,%rsp shl $6,NUM_BLKS # convert to bytes jz .Ldone_hash diff --git a/libc/nexgen32e/sha256.S b/libc/nexgen32e/sha256.S index e2cf716dc..3858101dd 100644 --- a/libc/nexgen32e/sha256.S +++ b/libc/nexgen32e/sha256.S @@ -530,10 +530,11 @@ STACK_SIZE = _RSP + _RSP_SIZE ######################################################################## .text .balign 32 + .ftrace1 sha256_transform_rorx: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable pushq %rbx pushq %r12 pushq %r13 diff --git a/libc/nexgen32e/sha256ni.S b/libc/nexgen32e/sha256ni.S index 3c9d903f4..be02760f0 100644 --- a/libc/nexgen32e/sha256ni.S +++ b/libc/nexgen32e/sha256ni.S @@ -80,9 +80,10 @@ Tim Chen \n" // @param %rsi points to input data // @param %rdx is number of blocks to process // @see X86_HAVE(SHA) + .ftrace1 sha256_transform_ni: + .ftrace2 .leafprologue - .profilable shl $6,NUM_BLKS # convert to bytes jz .Ldone_hash add DATA_PTR,NUM_BLKS # pointer to end of data diff --git a/libc/nexgen32e/sha512.S b/libc/nexgen32e/sha512.S index 4236eff7e..b858a44d9 100644 --- a/libc/nexgen32e/sha512.S +++ b/libc/nexgen32e/sha512.S @@ -571,10 +571,11 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # of SHA512 message blocks. # "blocks" is the message length in SHA512 blocks ######################################################################## + .ftrace1 sha512_transform_rorx: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable # Allocate Stack Space mov %rsp, %rax sub $frame_size, %rsp diff --git a/libc/nexgen32e/tinywcslen.greg.S b/libc/nexgen32e/tinywcslen.greg.S index dcbcea9ab..e61b299eb 100644 --- a/libc/nexgen32e/tinywcslen.greg.S +++ b/libc/nexgen32e/tinywcslen.greg.S @@ -23,9 +23,10 @@ // @param RDI is wchar_t *s // @param EAX is unsigned length // @see libc/nexgen32e/strsak32.S + .ftrace1 tinywcslen: + .ftrace2 .leafprologue - .profilable xor %eax,%eax 1: cmpl $0,(%rdi,%rax,4) jz 2f diff --git a/libc/nexgen32e/tinywcsnlen.greg.S b/libc/nexgen32e/tinywcsnlen.greg.S index e24c35336..67619f895 100644 --- a/libc/nexgen32e/tinywcsnlen.greg.S +++ b/libc/nexgen32e/tinywcsnlen.greg.S @@ -24,9 +24,10 @@ // @param RSI is size_t n // @param EAX is unsigned length // @see libc/nexgen32e/strsak32.S + .ftrace1 tinywcsnlen: + .ftrace2 .leafprologue - .profilable xor %eax,%eax 1: cmp %esi,%eax jae 2f diff --git a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WaitOnAddress.S b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WaitOnAddress.S index 5b50d6826..a215d0701 100644 --- a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WaitOnAddress.S +++ b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WaitOnAddress.S @@ -2,11 +2,12 @@ .imp API-MS-Win-Core-Synch-l1-2-0,__imp_WaitOnAddress,WaitOnAddress,111 .text.windows + .ftrace1 WaitOnAddress: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitOnAddress(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressAll.S b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressAll.S index 8d473d68d..34455d03d 100644 --- a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressAll.S +++ b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressAll.S @@ -2,11 +2,12 @@ .imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressAll,WakeByAddressAll,113 .text.windows + .ftrace1 WakeByAddressAll: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WakeByAddressAll(%rip) diff --git a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressSingle.S b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressSingle.S index cc4f8ce83..a2bac452b 100644 --- a/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressSingle.S +++ b/libc/nt/API-MS-Win-Core-Synch-l1-2-0/WakeByAddressSingle.S @@ -2,11 +2,12 @@ .imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressSingle,WakeByAddressSingle,116 .text.windows + .ftrace1 WakeByAddressSingle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WakeByAddressSingle(%rip) diff --git a/libc/nt/MsWSock/AcceptEx.S b/libc/nt/MsWSock/AcceptEx.S index cb0542b6a..cf9be7bb7 100644 --- a/libc/nt/MsWSock/AcceptEx.S +++ b/libc/nt/MsWSock/AcceptEx.S @@ -2,11 +2,12 @@ .imp MsWSock,__imp_AcceptEx,AcceptEx,0 .text.windows + .ftrace1 AcceptEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AcceptEx(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/MsWSock/DisconnectEx.S b/libc/nt/MsWSock/DisconnectEx.S index 431363877..7218c7ea9 100644 --- a/libc/nt/MsWSock/DisconnectEx.S +++ b/libc/nt/MsWSock/DisconnectEx.S @@ -2,11 +2,12 @@ .imp MsWSock,__imp_DisconnectEx,DisconnectEx,0 .text.windows + .ftrace1 DisconnectEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DisconnectEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/MsWSock/GetAcceptExSockaddrs.S b/libc/nt/MsWSock/GetAcceptExSockaddrs.S index e6dff2937..b4bef418b 100644 --- a/libc/nt/MsWSock/GetAcceptExSockaddrs.S +++ b/libc/nt/MsWSock/GetAcceptExSockaddrs.S @@ -2,11 +2,12 @@ .imp MsWSock,__imp_GetAcceptExSockaddrs,GetAcceptExSockaddrs,0 .text.windows + .ftrace1 GetAcceptExSockaddrs: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetAcceptExSockaddrs(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/MsWSock/TransmitFile.S b/libc/nt/MsWSock/TransmitFile.S index 7a6e93cd4..af5e980d6 100644 --- a/libc/nt/MsWSock/TransmitFile.S +++ b/libc/nt/MsWSock/TransmitFile.S @@ -2,11 +2,12 @@ .imp MsWSock,__imp_TransmitFile,TransmitFile,0 .text.windows + .ftrace1 TransmitFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TransmitFile(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/MsWSock/WSARecvEx.S b/libc/nt/MsWSock/WSARecvEx.S index def72ed8e..4dcdef603 100644 --- a/libc/nt/MsWSock/WSARecvEx.S +++ b/libc/nt/MsWSock/WSARecvEx.S @@ -2,11 +2,12 @@ .imp MsWSock,__imp_WSARecvEx,WSARecvEx,0 .text.windows + .ftrace1 WSARecvEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSARecvEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/PowrProf/SetSuspendState.S b/libc/nt/PowrProf/SetSuspendState.S index b69276ab6..56add1ead 100644 --- a/libc/nt/PowrProf/SetSuspendState.S +++ b/libc/nt/PowrProf/SetSuspendState.S @@ -2,11 +2,12 @@ .imp PowrProf,__imp_SetSuspendState,SetSuspendState,0 .text.windows + .ftrace1 SetSuspendState: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetSuspendState(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/AccessCheck.S b/libc/nt/advapi32/AccessCheck.S index 49333b5d9..8b265bc33 100644 --- a/libc/nt/advapi32/AccessCheck.S +++ b/libc/nt/advapi32/AccessCheck.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_AccessCheck,AccessCheck,0 .text.windows + .ftrace1 AccessCheck: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AccessCheck(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/AdjustTokenPrivileges.S b/libc/nt/advapi32/AdjustTokenPrivileges.S index 12389c3fe..50fc124ff 100644 --- a/libc/nt/advapi32/AdjustTokenPrivileges.S +++ b/libc/nt/advapi32/AdjustTokenPrivileges.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_AdjustTokenPrivileges,AdjustTokenPrivileges,0 .text.windows + .ftrace1 AdjustTokenPrivileges: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AdjustTokenPrivileges(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/CreateProcessAsUserW.S b/libc/nt/advapi32/CreateProcessAsUserW.S index 2f91ee836..6b26a5b97 100644 --- a/libc/nt/advapi32/CreateProcessAsUserW.S +++ b/libc/nt/advapi32/CreateProcessAsUserW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_CreateProcessAsUserW,CreateProcessAsUserW,0 .text.windows + .ftrace1 CreateProcessAsUser: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateProcessAsUserW(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/DeregisterEventSource.S b/libc/nt/advapi32/DeregisterEventSource.S index 73cb1a48d..3ef7b82d5 100644 --- a/libc/nt/advapi32/DeregisterEventSource.S +++ b/libc/nt/advapi32/DeregisterEventSource.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_DeregisterEventSource,DeregisterEventSource,1239 .text.windows + .ftrace1 DeregisterEventSource: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DeregisterEventSource(%rip) diff --git a/libc/nt/advapi32/DuplicateToken.S b/libc/nt/advapi32/DuplicateToken.S index ce3d12756..8d4cb64d2 100644 --- a/libc/nt/advapi32/DuplicateToken.S +++ b/libc/nt/advapi32/DuplicateToken.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_DuplicateToken,DuplicateToken,0 .text.windows + .ftrace1 DuplicateToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DuplicateToken(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/DuplicateTokenEx.S b/libc/nt/advapi32/DuplicateTokenEx.S index 50bca44b4..95c1ba9c7 100644 --- a/libc/nt/advapi32/DuplicateTokenEx.S +++ b/libc/nt/advapi32/DuplicateTokenEx.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_DuplicateTokenEx,DuplicateTokenEx,0 .text.windows + .ftrace1 DuplicateTokenEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DuplicateTokenEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/GetFileSecurityW.S b/libc/nt/advapi32/GetFileSecurityW.S index ce72a82db..904dbcd6f 100644 --- a/libc/nt/advapi32/GetFileSecurityW.S +++ b/libc/nt/advapi32/GetFileSecurityW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_GetFileSecurityW,GetFileSecurityW,0 .text.windows + .ftrace1 GetFileSecurity: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileSecurityW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/GetUserNameW.S b/libc/nt/advapi32/GetUserNameW.S index eacbb9e8c..58358f9e5 100644 --- a/libc/nt/advapi32/GetUserNameW.S +++ b/libc/nt/advapi32/GetUserNameW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_GetUserNameW,GetUserNameW,1381 .text.windows + .ftrace1 GetUserName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetUserNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/ImpersonateSelf.S b/libc/nt/advapi32/ImpersonateSelf.S index 6d1503dfe..bc4098722 100644 --- a/libc/nt/advapi32/ImpersonateSelf.S +++ b/libc/nt/advapi32/ImpersonateSelf.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_ImpersonateSelf,ImpersonateSelf,0 .text.windows + .ftrace1 ImpersonateSelf: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ImpersonateSelf(%rip) diff --git a/libc/nt/advapi32/InitiateShutdownW.S b/libc/nt/advapi32/InitiateShutdownW.S index 89dd82602..347de183b 100644 --- a/libc/nt/advapi32/InitiateShutdownW.S +++ b/libc/nt/advapi32/InitiateShutdownW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_InitiateShutdownW,InitiateShutdownW,1403 .text.windows + .ftrace1 InitiateShutdown: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_InitiateShutdownW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/LookupPrivilegeValueW.S b/libc/nt/advapi32/LookupPrivilegeValueW.S index b9690bbfa..8e2b6203d 100644 --- a/libc/nt/advapi32/LookupPrivilegeValueW.S +++ b/libc/nt/advapi32/LookupPrivilegeValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_LookupPrivilegeValueW,LookupPrivilegeValueW,1432 .text.windows + .ftrace1 LookupPrivilegeValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LookupPrivilegeValueW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/MapGenericMask.S b/libc/nt/advapi32/MapGenericMask.S index f6a805326..331ba0864 100644 --- a/libc/nt/advapi32/MapGenericMask.S +++ b/libc/nt/advapi32/MapGenericMask.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_MapGenericMask,MapGenericMask,0 .text.windows + .ftrace1 MapGenericMask: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MapGenericMask(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/OpenProcessToken.S b/libc/nt/advapi32/OpenProcessToken.S index 140917f56..e2ad7cd84 100644 --- a/libc/nt/advapi32/OpenProcessToken.S +++ b/libc/nt/advapi32/OpenProcessToken.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_OpenProcessToken,OpenProcessToken,0 .text.windows + .ftrace1 OpenProcessToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_OpenProcessToken(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/OpenThreadToken.S b/libc/nt/advapi32/OpenThreadToken.S index 1ab3f8058..cc600a7e2 100644 --- a/libc/nt/advapi32/OpenThreadToken.S +++ b/libc/nt/advapi32/OpenThreadToken.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_OpenThreadToken,OpenThreadToken,0 .text.windows + .ftrace1 OpenThreadToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_OpenThreadToken(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegCloseKey.S b/libc/nt/advapi32/RegCloseKey.S index de4b5162d..833843138 100644 --- a/libc/nt/advapi32/RegCloseKey.S +++ b/libc/nt/advapi32/RegCloseKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegCloseKey,RegCloseKey,0 .text.windows + .ftrace1 RegCloseKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegCloseKey(%rip) diff --git a/libc/nt/advapi32/RegConnectRegistryW.S b/libc/nt/advapi32/RegConnectRegistryW.S index d1ea53c26..e22e7174e 100644 --- a/libc/nt/advapi32/RegConnectRegistryW.S +++ b/libc/nt/advapi32/RegConnectRegistryW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegConnectRegistryW,RegConnectRegistryW,1608 .text.windows + .ftrace1 RegConnectRegistry: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegConnectRegistryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegCreateKeyExW.S b/libc/nt/advapi32/RegCreateKeyExW.S index 985bd8ed8..bff2ca7af 100644 --- a/libc/nt/advapi32/RegCreateKeyExW.S +++ b/libc/nt/advapi32/RegCreateKeyExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegCreateKeyExW,RegCreateKeyExW,0 .text.windows + .ftrace1 RegCreateKeyEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegCreateKeyExW(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegCreateKeyW.S b/libc/nt/advapi32/RegCreateKeyW.S index b89d6f047..06452bdd7 100644 --- a/libc/nt/advapi32/RegCreateKeyW.S +++ b/libc/nt/advapi32/RegCreateKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegCreateKeyW,RegCreateKeyW,1616 .text.windows + .ftrace1 RegCreateKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegCreateKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegDeleteKeyExW.S b/libc/nt/advapi32/RegDeleteKeyExW.S index c23b7835c..e330eb947 100644 --- a/libc/nt/advapi32/RegDeleteKeyExW.S +++ b/libc/nt/advapi32/RegDeleteKeyExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDeleteKeyExW,RegDeleteKeyExW,0 .text.windows + .ftrace1 RegDeleteKeyEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegDeleteKeyExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegDeleteKeyW.S b/libc/nt/advapi32/RegDeleteKeyW.S index 555931b57..2c793ecfd 100644 --- a/libc/nt/advapi32/RegDeleteKeyW.S +++ b/libc/nt/advapi32/RegDeleteKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDeleteKeyW,RegDeleteKeyW,1624 .text.windows + .ftrace1 RegDeleteKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegDeleteKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegDeleteTreeW.S b/libc/nt/advapi32/RegDeleteTreeW.S index 44915caa7..6b7cdb50f 100644 --- a/libc/nt/advapi32/RegDeleteTreeW.S +++ b/libc/nt/advapi32/RegDeleteTreeW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDeleteTreeW,RegDeleteTreeW,0 .text.windows + .ftrace1 RegDeleteTree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegDeleteTreeW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegDeleteValueW.S b/libc/nt/advapi32/RegDeleteValueW.S index 7ce084483..9c71a269e 100644 --- a/libc/nt/advapi32/RegDeleteValueW.S +++ b/libc/nt/advapi32/RegDeleteValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDeleteValueW,RegDeleteValueW,0 .text.windows + .ftrace1 RegDeleteValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegDeleteValueW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegDisablePredefinedCache.S b/libc/nt/advapi32/RegDisablePredefinedCache.S index 6213031f4..2c0c348e2 100644 --- a/libc/nt/advapi32/RegDisablePredefinedCache.S +++ b/libc/nt/advapi32/RegDisablePredefinedCache.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDisablePredefinedCache,RegDisablePredefinedCache,1629 .text.windows + .ftrace1 RegDisablePredefinedCache: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegDisablePredefinedCache(%rip) diff --git a/libc/nt/advapi32/RegDisableReflectionKey.S b/libc/nt/advapi32/RegDisableReflectionKey.S index 4198b699b..9a97da7bb 100644 --- a/libc/nt/advapi32/RegDisableReflectionKey.S +++ b/libc/nt/advapi32/RegDisableReflectionKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegDisableReflectionKey,RegDisableReflectionKey,1631 .text.windows + .ftrace1 RegDisableReflectionKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegDisableReflectionKey(%rip) diff --git a/libc/nt/advapi32/RegEnableReflectionKey.S b/libc/nt/advapi32/RegEnableReflectionKey.S index b63049a51..5701d14b4 100644 --- a/libc/nt/advapi32/RegEnableReflectionKey.S +++ b/libc/nt/advapi32/RegEnableReflectionKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegEnableReflectionKey,RegEnableReflectionKey,1632 .text.windows + .ftrace1 RegEnableReflectionKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegEnableReflectionKey(%rip) diff --git a/libc/nt/advapi32/RegEnumKeyExW.S b/libc/nt/advapi32/RegEnumKeyExW.S index 8c0c20246..fd84d105f 100644 --- a/libc/nt/advapi32/RegEnumKeyExW.S +++ b/libc/nt/advapi32/RegEnumKeyExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegEnumKeyExW,RegEnumKeyExW,0 .text.windows + .ftrace1 RegEnumKeyEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegEnumKeyExW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegEnumKeyW.S b/libc/nt/advapi32/RegEnumKeyW.S index 878f8f707..aa7829b21 100644 --- a/libc/nt/advapi32/RegEnumKeyW.S +++ b/libc/nt/advapi32/RegEnumKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegEnumKeyW,RegEnumKeyW,1636 .text.windows + .ftrace1 RegEnumKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegEnumKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegEnumValueW.S b/libc/nt/advapi32/RegEnumValueW.S index d8e146bff..2f65b0d2d 100644 --- a/libc/nt/advapi32/RegEnumValueW.S +++ b/libc/nt/advapi32/RegEnumValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegEnumValueW,RegEnumValueW,0 .text.windows + .ftrace1 RegEnumValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegEnumValueW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegFlushKey.S b/libc/nt/advapi32/RegFlushKey.S index 0224bff1c..14fe9cd6e 100644 --- a/libc/nt/advapi32/RegFlushKey.S +++ b/libc/nt/advapi32/RegFlushKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegFlushKey,RegFlushKey,0 .text.windows + .ftrace1 RegFlushKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegFlushKey(%rip) diff --git a/libc/nt/advapi32/RegGetKeySecurity.S b/libc/nt/advapi32/RegGetKeySecurity.S index 9a39abe07..be5cb79cf 100644 --- a/libc/nt/advapi32/RegGetKeySecurity.S +++ b/libc/nt/advapi32/RegGetKeySecurity.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegGetKeySecurity,RegGetKeySecurity,0 .text.windows + .ftrace1 RegGetKeySecurity: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegGetKeySecurity(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegGetValueW.S b/libc/nt/advapi32/RegGetValueW.S index 7ee9a767c..8b7c9ad21 100644 --- a/libc/nt/advapi32/RegGetValueW.S +++ b/libc/nt/advapi32/RegGetValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegGetValueW,RegGetValueW,0 .text.windows + .ftrace1 RegGetValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegGetValueW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegLoadKeyW.S b/libc/nt/advapi32/RegLoadKeyW.S index 79ed44693..1afffa7c5 100644 --- a/libc/nt/advapi32/RegLoadKeyW.S +++ b/libc/nt/advapi32/RegLoadKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegLoadKeyW,RegLoadKeyW,0 .text.windows + .ftrace1 RegLoadKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegLoadKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegNotifyChangeKeyValue.S b/libc/nt/advapi32/RegNotifyChangeKeyValue.S index e9a82b9f9..612be8974 100644 --- a/libc/nt/advapi32/RegNotifyChangeKeyValue.S +++ b/libc/nt/advapi32/RegNotifyChangeKeyValue.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegNotifyChangeKeyValue,RegNotifyChangeKeyValue,0 .text.windows + .ftrace1 RegNotifyChangeKeyValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegNotifyChangeKeyValue(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegOpenCurrentUser.S b/libc/nt/advapi32/RegOpenCurrentUser.S index e76297e6d..504b8f137 100644 --- a/libc/nt/advapi32/RegOpenCurrentUser.S +++ b/libc/nt/advapi32/RegOpenCurrentUser.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegOpenCurrentUser,RegOpenCurrentUser,0 .text.windows + .ftrace1 RegOpenCurrentUser: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegOpenCurrentUser(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegOpenKeyExW.S b/libc/nt/advapi32/RegOpenKeyExW.S index ea4217464..5983c9adf 100644 --- a/libc/nt/advapi32/RegOpenKeyExW.S +++ b/libc/nt/advapi32/RegOpenKeyExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegOpenKeyExW,RegOpenKeyExW,0 .text.windows + .ftrace1 RegOpenKeyEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegOpenKeyExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegOpenUserClassesRoot.S b/libc/nt/advapi32/RegOpenUserClassesRoot.S index 487776f95..d814c90c2 100644 --- a/libc/nt/advapi32/RegOpenUserClassesRoot.S +++ b/libc/nt/advapi32/RegOpenUserClassesRoot.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegOpenUserClassesRoot,RegOpenUserClassesRoot,0 .text.windows + .ftrace1 RegOpenUserClassesRoot: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegOpenUserClassesRoot(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegOverridePredefKey.S b/libc/nt/advapi32/RegOverridePredefKey.S index 60df4e822..bbf12ff66 100644 --- a/libc/nt/advapi32/RegOverridePredefKey.S +++ b/libc/nt/advapi32/RegOverridePredefKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegOverridePredefKey,RegOverridePredefKey,1658 .text.windows + .ftrace1 RegOverridePredefKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegOverridePredefKey(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegQueryInfoKeyW.S b/libc/nt/advapi32/RegQueryInfoKeyW.S index 16849b5c6..75bca585b 100644 --- a/libc/nt/advapi32/RegQueryInfoKeyW.S +++ b/libc/nt/advapi32/RegQueryInfoKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegQueryInfoKeyW,RegQueryInfoKeyW,0 .text.windows + .ftrace1 RegQueryInfoKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegQueryInfoKeyW(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegQueryMultipleValuesW.S b/libc/nt/advapi32/RegQueryMultipleValuesW.S index 2aa26c0e3..255785cf1 100644 --- a/libc/nt/advapi32/RegQueryMultipleValuesW.S +++ b/libc/nt/advapi32/RegQueryMultipleValuesW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegQueryMultipleValuesW,RegQueryMultipleValuesW,0 .text.windows + .ftrace1 RegQueryMultipleValues: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegQueryMultipleValuesW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegQueryReflectionKey.S b/libc/nt/advapi32/RegQueryReflectionKey.S index 2d75e57aa..1d683e4aa 100644 --- a/libc/nt/advapi32/RegQueryReflectionKey.S +++ b/libc/nt/advapi32/RegQueryReflectionKey.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegQueryReflectionKey,RegQueryReflectionKey,1663 .text.windows + .ftrace1 RegQueryReflectionKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegQueryReflectionKey(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegQueryValueExW.S b/libc/nt/advapi32/RegQueryValueExW.S index 7f32a5e06..451b1effb 100644 --- a/libc/nt/advapi32/RegQueryValueExW.S +++ b/libc/nt/advapi32/RegQueryValueExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegQueryValueExW,RegQueryValueExW,0 .text.windows + .ftrace1 RegQueryValueEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegQueryValueExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegQueryValueW.S b/libc/nt/advapi32/RegQueryValueW.S index bc25b6a03..42ba66856 100644 --- a/libc/nt/advapi32/RegQueryValueW.S +++ b/libc/nt/advapi32/RegQueryValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegQueryValueW,RegQueryValueW,1667 .text.windows + .ftrace1 RegQueryValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegQueryValueW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegReplaceKeyW.S b/libc/nt/advapi32/RegReplaceKeyW.S index 6adf8f076..f4e754ac1 100644 --- a/libc/nt/advapi32/RegReplaceKeyW.S +++ b/libc/nt/advapi32/RegReplaceKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegReplaceKeyW,RegReplaceKeyW,1670 .text.windows + .ftrace1 RegReplaceKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegReplaceKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegRestoreKeyW.S b/libc/nt/advapi32/RegRestoreKeyW.S index f6ddc600c..9f63655af 100644 --- a/libc/nt/advapi32/RegRestoreKeyW.S +++ b/libc/nt/advapi32/RegRestoreKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegRestoreKeyW,RegRestoreKeyW,0 .text.windows + .ftrace1 RegRestoreKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegRestoreKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegSaveKeyW.S b/libc/nt/advapi32/RegSaveKeyW.S index b4eb8f9ca..cfa78e29e 100644 --- a/libc/nt/advapi32/RegSaveKeyW.S +++ b/libc/nt/advapi32/RegSaveKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegSaveKeyW,RegSaveKeyW,1676 .text.windows + .ftrace1 RegSaveKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegSaveKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegSetKeySecurity.S b/libc/nt/advapi32/RegSetKeySecurity.S index 993907b1b..baa9031c4 100644 --- a/libc/nt/advapi32/RegSetKeySecurity.S +++ b/libc/nt/advapi32/RegSetKeySecurity.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegSetKeySecurity,RegSetKeySecurity,0 .text.windows + .ftrace1 RegSetKeySecurity: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegSetKeySecurity(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegSetValueExW.S b/libc/nt/advapi32/RegSetValueExW.S index 618376c33..374bf432c 100644 --- a/libc/nt/advapi32/RegSetValueExW.S +++ b/libc/nt/advapi32/RegSetValueExW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegSetValueExW,RegSetValueExW,0 .text.windows + .ftrace1 RegSetValueEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegSetValueExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegSetValueW.S b/libc/nt/advapi32/RegSetValueW.S index 8dfd12f52..349e0693d 100644 --- a/libc/nt/advapi32/RegSetValueW.S +++ b/libc/nt/advapi32/RegSetValueW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegSetValueW,RegSetValueW,1683 .text.windows + .ftrace1 RegSetValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegSetValueW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegUnLoadKeyW.S b/libc/nt/advapi32/RegUnLoadKeyW.S index ec9a46edb..f4623cea3 100644 --- a/libc/nt/advapi32/RegUnLoadKeyW.S +++ b/libc/nt/advapi32/RegUnLoadKeyW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegUnLoadKeyW,RegUnLoadKeyW,0 .text.windows + .ftrace1 RegUnLoadKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegUnLoadKeyW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RegisterEventSourceW.S b/libc/nt/advapi32/RegisterEventSourceW.S index 43a7aa352..070be5fd4 100644 --- a/libc/nt/advapi32/RegisterEventSourceW.S +++ b/libc/nt/advapi32/RegisterEventSourceW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RegisterEventSourceW,RegisterEventSourceW,1687 .text.windows + .ftrace1 RegisterEventSource: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegisterEventSourceW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/ReportEventA.S b/libc/nt/advapi32/ReportEventA.S index 36a5989c7..562392475 100644 --- a/libc/nt/advapi32/ReportEventA.S +++ b/libc/nt/advapi32/ReportEventA.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_ReportEventA,ReportEventA,0 .text.windows + .ftrace1 ReportEventA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReportEventA(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/ReportEventW.S b/libc/nt/advapi32/ReportEventW.S index 65eb64815..17dc94003 100644 --- a/libc/nt/advapi32/ReportEventW.S +++ b/libc/nt/advapi32/ReportEventW.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_ReportEventW,ReportEventW,0 .text.windows + .ftrace1 ReportEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReportEventW(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/advapi32/RevertToSelf.S b/libc/nt/advapi32/RevertToSelf.S index 820c0aac8..e90ff0f3e 100644 --- a/libc/nt/advapi32/RevertToSelf.S +++ b/libc/nt/advapi32/RevertToSelf.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_RevertToSelf,RevertToSelf,0 .text.windows + .ftrace1 RevertToSelf: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_RevertToSelf(%rip) leave diff --git a/libc/nt/advapi32/SystemFunction036.S b/libc/nt/advapi32/SystemFunction036.S index 78bb3976d..84f22e669 100644 --- a/libc/nt/advapi32/SystemFunction036.S +++ b/libc/nt/advapi32/SystemFunction036.S @@ -2,11 +2,12 @@ .imp advapi32,__imp_SystemFunction036,SystemFunction036,0 .text.windows + .ftrace1 RtlGenRandom: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SystemFunction036(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/codegen.sh b/libc/nt/codegen.sh index 74d18dca1..6a4bac4b0 100644 --- a/libc/nt/codegen.sh +++ b/libc/nt/codegen.sh @@ -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) diff --git a/libc/nt/comdlg32/ChooseColorW.S b/libc/nt/comdlg32/ChooseColorW.S index e4d17f1be..d93c21189 100644 --- a/libc/nt/comdlg32/ChooseColorW.S +++ b/libc/nt/comdlg32/ChooseColorW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_ChooseColorW,ChooseColorW,103 .text.windows + .ftrace1 ChooseColor: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ChooseColorW(%rip) diff --git a/libc/nt/comdlg32/ChooseFontW.S b/libc/nt/comdlg32/ChooseFontW.S index 266e8ad1c..bcc29b38a 100644 --- a/libc/nt/comdlg32/ChooseFontW.S +++ b/libc/nt/comdlg32/ChooseFontW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_ChooseFontW,ChooseFontW,105 .text.windows + .ftrace1 ChooseFont: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ChooseFontW(%rip) diff --git a/libc/nt/comdlg32/GetFileTitleW.S b/libc/nt/comdlg32/GetFileTitleW.S index d1b5eaaf3..76478ed5b 100644 --- a/libc/nt/comdlg32/GetFileTitleW.S +++ b/libc/nt/comdlg32/GetFileTitleW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_GetFileTitleW,GetFileTitleW,112 .text.windows + .ftrace1 GetFileTitle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileTitleW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/comdlg32/GetOpenFileNameW.S b/libc/nt/comdlg32/GetOpenFileNameW.S index ba6b3a672..69a5c384f 100644 --- a/libc/nt/comdlg32/GetOpenFileNameW.S +++ b/libc/nt/comdlg32/GetOpenFileNameW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_GetOpenFileNameW,GetOpenFileNameW,114 .text.windows + .ftrace1 GetOpenFileName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetOpenFileNameW(%rip) diff --git a/libc/nt/comdlg32/GetSaveFileNameW.S b/libc/nt/comdlg32/GetSaveFileNameW.S index 9770b0be5..82da62cf2 100644 --- a/libc/nt/comdlg32/GetSaveFileNameW.S +++ b/libc/nt/comdlg32/GetSaveFileNameW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_GetSaveFileNameW,GetSaveFileNameW,116 .text.windows + .ftrace1 GetSaveFileName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetSaveFileNameW(%rip) diff --git a/libc/nt/comdlg32/PrintDlgW.S b/libc/nt/comdlg32/PrintDlgW.S index d44e69539..a836fe55c 100644 --- a/libc/nt/comdlg32/PrintDlgW.S +++ b/libc/nt/comdlg32/PrintDlgW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_PrintDlgW,PrintDlgW,123 .text.windows + .ftrace1 PrintDlg: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_PrintDlgW(%rip) diff --git a/libc/nt/comdlg32/ReplaceTextW.S b/libc/nt/comdlg32/ReplaceTextW.S index 6182e5f54..40adc33e2 100644 --- a/libc/nt/comdlg32/ReplaceTextW.S +++ b/libc/nt/comdlg32/ReplaceTextW.S @@ -2,11 +2,12 @@ .imp comdlg32,__imp_ReplaceTextW,ReplaceTextW,125 .text.windows + .ftrace1 ReplaceText: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ReplaceTextW(%rip) diff --git a/libc/nt/gdi32/BitBlt.S b/libc/nt/gdi32/BitBlt.S index cb6ff1584..daf036bbb 100644 --- a/libc/nt/gdi32/BitBlt.S +++ b/libc/nt/gdi32/BitBlt.S @@ -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__) diff --git a/libc/nt/gdi32/ChoosePixelFormat.S b/libc/nt/gdi32/ChoosePixelFormat.S index d950f3c0a..a40f042a8 100644 --- a/libc/nt/gdi32/ChoosePixelFormat.S +++ b/libc/nt/gdi32/ChoosePixelFormat.S @@ -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__) diff --git a/libc/nt/gdi32/CreateBitmap.S b/libc/nt/gdi32/CreateBitmap.S index cef045d47..13f9c93df 100644 --- a/libc/nt/gdi32/CreateBitmap.S +++ b/libc/nt/gdi32/CreateBitmap.S @@ -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__) diff --git a/libc/nt/gdi32/CreateCompatibleBitmap.S b/libc/nt/gdi32/CreateCompatibleBitmap.S index 17f0fac24..e479564db 100644 --- a/libc/nt/gdi32/CreateCompatibleBitmap.S +++ b/libc/nt/gdi32/CreateCompatibleBitmap.S @@ -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__) diff --git a/libc/nt/gdi32/CreateCompatibleDC.S b/libc/nt/gdi32/CreateCompatibleDC.S index f7d95b6a4..30565bf8e 100644 --- a/libc/nt/gdi32/CreateCompatibleDC.S +++ b/libc/nt/gdi32/CreateCompatibleDC.S @@ -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) diff --git a/libc/nt/gdi32/CreateDIBSection.S b/libc/nt/gdi32/CreateDIBSection.S index f1a753c7a..65323a851 100644 --- a/libc/nt/gdi32/CreateDIBSection.S +++ b/libc/nt/gdi32/CreateDIBSection.S @@ -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__) diff --git a/libc/nt/gdi32/CreateRectRgn.S b/libc/nt/gdi32/CreateRectRgn.S index 2bbb8975d..f4e40d5df 100644 --- a/libc/nt/gdi32/CreateRectRgn.S +++ b/libc/nt/gdi32/CreateRectRgn.S @@ -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__) diff --git a/libc/nt/gdi32/DeleteDC.S b/libc/nt/gdi32/DeleteDC.S index 5fb2f8b12..bb338b129 100644 --- a/libc/nt/gdi32/DeleteDC.S +++ b/libc/nt/gdi32/DeleteDC.S @@ -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) diff --git a/libc/nt/gdi32/DeleteObject.S b/libc/nt/gdi32/DeleteObject.S index c736da6cd..0d0102177 100644 --- a/libc/nt/gdi32/DeleteObject.S +++ b/libc/nt/gdi32/DeleteObject.S @@ -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) diff --git a/libc/nt/gdi32/GetPixel.S b/libc/nt/gdi32/GetPixel.S index 5354eab1d..d1fbf5efb 100644 --- a/libc/nt/gdi32/GetPixel.S +++ b/libc/nt/gdi32/GetPixel.S @@ -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__) diff --git a/libc/nt/gdi32/RestoreDC.S b/libc/nt/gdi32/RestoreDC.S index 1ea23313f..f98fbd122 100644 --- a/libc/nt/gdi32/RestoreDC.S +++ b/libc/nt/gdi32/RestoreDC.S @@ -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__) diff --git a/libc/nt/gdi32/SaveDC.S b/libc/nt/gdi32/SaveDC.S index 5d21acaad..8d95732d4 100644 --- a/libc/nt/gdi32/SaveDC.S +++ b/libc/nt/gdi32/SaveDC.S @@ -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) diff --git a/libc/nt/gdi32/SelectObject.S b/libc/nt/gdi32/SelectObject.S index d9866f1de..f1fa2a39c 100644 --- a/libc/nt/gdi32/SelectObject.S +++ b/libc/nt/gdi32/SelectObject.S @@ -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__) diff --git a/libc/nt/gdi32/SetBkMode.S b/libc/nt/gdi32/SetBkMode.S index 8df950a13..eed5c0565 100644 --- a/libc/nt/gdi32/SetBkMode.S +++ b/libc/nt/gdi32/SetBkMode.S @@ -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__) diff --git a/libc/nt/gdi32/SetPixel.S b/libc/nt/gdi32/SetPixel.S index f542f784b..8f9a2b858 100644 --- a/libc/nt/gdi32/SetPixel.S +++ b/libc/nt/gdi32/SetPixel.S @@ -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__) diff --git a/libc/nt/gdi32/SetPixelFormat.S b/libc/nt/gdi32/SetPixelFormat.S index c24678196..951ce5b16 100644 --- a/libc/nt/gdi32/SetPixelFormat.S +++ b/libc/nt/gdi32/SetPixelFormat.S @@ -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__) diff --git a/libc/nt/gdi32/SetTextAlign.S b/libc/nt/gdi32/SetTextAlign.S index e6a2b4049..2a9c21422 100644 --- a/libc/nt/gdi32/SetTextAlign.S +++ b/libc/nt/gdi32/SetTextAlign.S @@ -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__) diff --git a/libc/nt/gdi32/SetTextColor.S b/libc/nt/gdi32/SetTextColor.S index 9563f958a..48aeb3032 100644 --- a/libc/nt/gdi32/SetTextColor.S +++ b/libc/nt/gdi32/SetTextColor.S @@ -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__) diff --git a/libc/nt/gdi32/SetTextJustification.S b/libc/nt/gdi32/SetTextJustification.S index 8bbc75da4..2008030df 100644 --- a/libc/nt/gdi32/SetTextJustification.S +++ b/libc/nt/gdi32/SetTextJustification.S @@ -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__) diff --git a/libc/nt/gdi32/SwapBuffers.S b/libc/nt/gdi32/SwapBuffers.S index b9db80786..09b222431 100644 --- a/libc/nt/gdi32/SwapBuffers.S +++ b/libc/nt/gdi32/SwapBuffers.S @@ -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) diff --git a/libc/nt/iphlpapi/AddIPAddress.S b/libc/nt/iphlpapi/AddIPAddress.S index fb4bc82b9..4bb85889f 100644 --- a/libc/nt/iphlpapi/AddIPAddress.S +++ b/libc/nt/iphlpapi/AddIPAddress.S @@ -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__) diff --git a/libc/nt/iphlpapi/AllocateAndGetTcpExTableFromStack.S b/libc/nt/iphlpapi/AllocateAndGetTcpExTableFromStack.S index 6d63916fc..b65582cce 100644 --- a/libc/nt/iphlpapi/AllocateAndGetTcpExTableFromStack.S +++ b/libc/nt/iphlpapi/AllocateAndGetTcpExTableFromStack.S @@ -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__) diff --git a/libc/nt/iphlpapi/AllocateAndGetUdpExTableFromStack.S b/libc/nt/iphlpapi/AllocateAndGetUdpExTableFromStack.S index d42ea2de7..3265051c2 100644 --- a/libc/nt/iphlpapi/AllocateAndGetUdpExTableFromStack.S +++ b/libc/nt/iphlpapi/AllocateAndGetUdpExTableFromStack.S @@ -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__) diff --git a/libc/nt/iphlpapi/CancelIPChangeNotify.S b/libc/nt/iphlpapi/CancelIPChangeNotify.S index 1c4e251e7..4d8282fb4 100644 --- a/libc/nt/iphlpapi/CancelIPChangeNotify.S +++ b/libc/nt/iphlpapi/CancelIPChangeNotify.S @@ -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) diff --git a/libc/nt/iphlpapi/CaptureInterfaceHardwareCrossTimestamp.S b/libc/nt/iphlpapi/CaptureInterfaceHardwareCrossTimestamp.S index 47e7223c0..af8d376b4 100644 --- a/libc/nt/iphlpapi/CaptureInterfaceHardwareCrossTimestamp.S +++ b/libc/nt/iphlpapi/CaptureInterfaceHardwareCrossTimestamp.S @@ -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__) diff --git a/libc/nt/iphlpapi/CreateIpForwardEntry.S b/libc/nt/iphlpapi/CreateIpForwardEntry.S index 17205e7bc..bef247d45 100644 --- a/libc/nt/iphlpapi/CreateIpForwardEntry.S +++ b/libc/nt/iphlpapi/CreateIpForwardEntry.S @@ -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) diff --git a/libc/nt/iphlpapi/FlushIpNetTable.S b/libc/nt/iphlpapi/FlushIpNetTable.S index b1934182a..d24f7e64c 100644 --- a/libc/nt/iphlpapi/FlushIpNetTable.S +++ b/libc/nt/iphlpapi/FlushIpNetTable.S @@ -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) diff --git a/libc/nt/iphlpapi/GetAdapterIndex.S b/libc/nt/iphlpapi/GetAdapterIndex.S index 7eb9285e0..5d1225d6b 100644 --- a/libc/nt/iphlpapi/GetAdapterIndex.S +++ b/libc/nt/iphlpapi/GetAdapterIndex.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetAdapterOrderMap.S b/libc/nt/iphlpapi/GetAdapterOrderMap.S index 378a4af19..23df4fe5c 100644 --- a/libc/nt/iphlpapi/GetAdapterOrderMap.S +++ b/libc/nt/iphlpapi/GetAdapterOrderMap.S @@ -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 diff --git a/libc/nt/iphlpapi/GetAdaptersAddresses.S b/libc/nt/iphlpapi/GetAdaptersAddresses.S index 909564a22..94d52f2f9 100644 --- a/libc/nt/iphlpapi/GetAdaptersAddresses.S +++ b/libc/nt/iphlpapi/GetAdaptersAddresses.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetAdaptersInfo.S b/libc/nt/iphlpapi/GetAdaptersInfo.S index 5698e1ccb..eff3fd425 100644 --- a/libc/nt/iphlpapi/GetAdaptersInfo.S +++ b/libc/nt/iphlpapi/GetAdaptersInfo.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetBestInterface.S b/libc/nt/iphlpapi/GetBestInterface.S index caeb05abe..2469bcede 100644 --- a/libc/nt/iphlpapi/GetBestInterface.S +++ b/libc/nt/iphlpapi/GetBestInterface.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetBestInterfaceEx.S b/libc/nt/iphlpapi/GetBestInterfaceEx.S index 874aa96ae..91a25ab74 100644 --- a/libc/nt/iphlpapi/GetBestInterfaceEx.S +++ b/libc/nt/iphlpapi/GetBestInterfaceEx.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetBestRoute.S b/libc/nt/iphlpapi/GetBestRoute.S index b85877720..7768347af 100644 --- a/libc/nt/iphlpapi/GetBestRoute.S +++ b/libc/nt/iphlpapi/GetBestRoute.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetNumberOfInterfaces.S b/libc/nt/iphlpapi/GetNumberOfInterfaces.S index 3aea3e1c1..d03c34217 100644 --- a/libc/nt/iphlpapi/GetNumberOfInterfaces.S +++ b/libc/nt/iphlpapi/GetNumberOfInterfaces.S @@ -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) diff --git a/libc/nt/iphlpapi/GetTcpTable.S b/libc/nt/iphlpapi/GetTcpTable.S index e4df7876b..1dcf67aeb 100644 --- a/libc/nt/iphlpapi/GetTcpTable.S +++ b/libc/nt/iphlpapi/GetTcpTable.S @@ -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__) diff --git a/libc/nt/iphlpapi/GetTcpTable2.S b/libc/nt/iphlpapi/GetTcpTable2.S index c2efe98aa..0d96ab200 100644 --- a/libc/nt/iphlpapi/GetTcpTable2.S +++ b/libc/nt/iphlpapi/GetTcpTable2.S @@ -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__) diff --git a/libc/nt/kernel32/AcquireSRWLockExclusive.S b/libc/nt/kernel32/AcquireSRWLockExclusive.S index d3dfacb86..16eae6688 100644 --- a/libc/nt/kernel32/AcquireSRWLockExclusive.S +++ b/libc/nt/kernel32/AcquireSRWLockExclusive.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AcquireSRWLockExclusive,AcquireSRWLockExclusive,0 .text.windows + .ftrace1 AcquireSRWLockExclusive: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_AcquireSRWLockExclusive(%rip) diff --git a/libc/nt/kernel32/AcquireSRWLockShared.S b/libc/nt/kernel32/AcquireSRWLockShared.S index b58592445..8f3359bde 100644 --- a/libc/nt/kernel32/AcquireSRWLockShared.S +++ b/libc/nt/kernel32/AcquireSRWLockShared.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AcquireSRWLockShared,AcquireSRWLockShared,0 .text.windows + .ftrace1 AcquireSRWLockShared: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_AcquireSRWLockShared(%rip) diff --git a/libc/nt/kernel32/AddVectoredContinueHandler.S b/libc/nt/kernel32/AddVectoredContinueHandler.S index 3693e868d..0f7fdb043 100644 --- a/libc/nt/kernel32/AddVectoredContinueHandler.S +++ b/libc/nt/kernel32/AddVectoredContinueHandler.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AddVectoredContinueHandler,AddVectoredContinueHandler,0 .text.windows + .ftrace1 AddVectoredContinueHandler: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AddVectoredContinueHandler(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/AddVectoredExceptionHandler.S b/libc/nt/kernel32/AddVectoredExceptionHandler.S index 6d281a3f6..0bbdc6fc0 100644 --- a/libc/nt/kernel32/AddVectoredExceptionHandler.S +++ b/libc/nt/kernel32/AddVectoredExceptionHandler.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AddVectoredExceptionHandler,AddVectoredExceptionHandler,0 .text.windows + .ftrace1 AddVectoredExceptionHandler: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AddVectoredExceptionHandler(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/AllocConsole.S b/libc/nt/kernel32/AllocConsole.S index a5b8bd3a7..273df5027 100644 --- a/libc/nt/kernel32/AllocConsole.S +++ b/libc/nt/kernel32/AllocConsole.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AllocConsole,AllocConsole,0 .text.windows + .ftrace1 AllocConsole: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_AllocConsole(%rip) leave diff --git a/libc/nt/kernel32/AttachConsole.S b/libc/nt/kernel32/AttachConsole.S index 7ab34a5f7..273023b19 100644 --- a/libc/nt/kernel32/AttachConsole.S +++ b/libc/nt/kernel32/AttachConsole.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_AttachConsole,AttachConsole,0 .text.windows + .ftrace1 AttachConsole: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_AttachConsole(%rip) diff --git a/libc/nt/kernel32/CallNamedPipeA.S b/libc/nt/kernel32/CallNamedPipeA.S index 55cd8df6e..e2331955a 100644 --- a/libc/nt/kernel32/CallNamedPipeA.S +++ b/libc/nt/kernel32/CallNamedPipeA.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CallNamedPipeA,CallNamedPipeA,110 .text.windows + .ftrace1 CallNamedPipeA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CallNamedPipeA(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CallNamedPipeW.S b/libc/nt/kernel32/CallNamedPipeW.S index 8aebc995f..b18bdd335 100644 --- a/libc/nt/kernel32/CallNamedPipeW.S +++ b/libc/nt/kernel32/CallNamedPipeW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CallNamedPipeW,CallNamedPipeW,0 .text.windows + .ftrace1 CallNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CallNamedPipeW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CancelIo.S b/libc/nt/kernel32/CancelIo.S index bdbee09d6..c95290945 100644 --- a/libc/nt/kernel32/CancelIo.S +++ b/libc/nt/kernel32/CancelIo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CancelIo,CancelIo,0 .text.windows + .ftrace1 CancelIo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_CancelIo(%rip) diff --git a/libc/nt/kernel32/CancelIoEx.S b/libc/nt/kernel32/CancelIoEx.S index 31fa29561..5dd3c3ab2 100644 --- a/libc/nt/kernel32/CancelIoEx.S +++ b/libc/nt/kernel32/CancelIoEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CancelIoEx,CancelIoEx,0 .text.windows + .ftrace1 CancelIoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CancelIoEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CancelSynchronousIo.S b/libc/nt/kernel32/CancelSynchronousIo.S index 135311403..1cf9bada5 100644 --- a/libc/nt/kernel32/CancelSynchronousIo.S +++ b/libc/nt/kernel32/CancelSynchronousIo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CancelSynchronousIo,CancelSynchronousIo,0 .text.windows + .ftrace1 CancelSynchronousIo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_CancelSynchronousIo(%rip) diff --git a/libc/nt/kernel32/CheckRemoteDebuggerPresent.S b/libc/nt/kernel32/CheckRemoteDebuggerPresent.S index 4907669f6..aebbac9c9 100644 --- a/libc/nt/kernel32/CheckRemoteDebuggerPresent.S +++ b/libc/nt/kernel32/CheckRemoteDebuggerPresent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CheckRemoteDebuggerPresent,CheckRemoteDebuggerPresent,0 .text.windows + .ftrace1 CheckRemoteDebuggerPresent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CheckRemoteDebuggerPresent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ClearCommBreak.S b/libc/nt/kernel32/ClearCommBreak.S index 4545afa3b..93c1ab8ff 100644 --- a/libc/nt/kernel32/ClearCommBreak.S +++ b/libc/nt/kernel32/ClearCommBreak.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ClearCommBreak,ClearCommBreak,0 .text.windows + .ftrace1 ClearCommBreak: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ClearCommBreak(%rip) diff --git a/libc/nt/kernel32/CloseHandle.S b/libc/nt/kernel32/CloseHandle.S index 79f8940c8..f1a12f0ec 100644 --- a/libc/nt/kernel32/CloseHandle.S +++ b/libc/nt/kernel32/CloseHandle.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CloseHandle,CloseHandle,0 .text.windows + .ftrace1 __CloseHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_CloseHandle(%rip) diff --git a/libc/nt/kernel32/ConnectNamedPipe.S b/libc/nt/kernel32/ConnectNamedPipe.S index 922e4c92d..cdb1762e1 100644 --- a/libc/nt/kernel32/ConnectNamedPipe.S +++ b/libc/nt/kernel32/ConnectNamedPipe.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ConnectNamedPipe,ConnectNamedPipe,0 .text.windows + .ftrace1 ConnectNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ConnectNamedPipe(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ContinueDebugEvent.S b/libc/nt/kernel32/ContinueDebugEvent.S index cbc2a5043..9c9a55c34 100644 --- a/libc/nt/kernel32/ContinueDebugEvent.S +++ b/libc/nt/kernel32/ContinueDebugEvent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ContinueDebugEvent,ContinueDebugEvent,0 .text.windows + .ftrace1 ContinueDebugEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ContinueDebugEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CopyFileW.S b/libc/nt/kernel32/CopyFileW.S index 82d2e44f1..c1401ab75 100644 --- a/libc/nt/kernel32/CopyFileW.S +++ b/libc/nt/kernel32/CopyFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CopyFileW,CopyFileW,0 .text.windows + .ftrace1 CopyFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CopyFileW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateDirectoryW.S b/libc/nt/kernel32/CreateDirectoryW.S index 7f7750e40..a8d1de3ac 100644 --- a/libc/nt/kernel32/CreateDirectoryW.S +++ b/libc/nt/kernel32/CreateDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateDirectoryW,CreateDirectoryW,0 .text.windows + .ftrace1 __CreateDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateDirectoryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateEventExW.S b/libc/nt/kernel32/CreateEventExW.S index 98897aae0..05b60d2f7 100644 --- a/libc/nt/kernel32/CreateEventExW.S +++ b/libc/nt/kernel32/CreateEventExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateEventExW,CreateEventExW,0 .text.windows + .ftrace1 CreateEventEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateEventExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateEventW.S b/libc/nt/kernel32/CreateEventW.S index d2eb24e52..a4884160d 100644 --- a/libc/nt/kernel32/CreateEventW.S +++ b/libc/nt/kernel32/CreateEventW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateEventW,CreateEventW,0 .text.windows + .ftrace1 CreateEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateEventW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateFileMappingNumaW.S b/libc/nt/kernel32/CreateFileMappingNumaW.S index 5fd7f297f..76d33e81f 100644 --- a/libc/nt/kernel32/CreateFileMappingNumaW.S +++ b/libc/nt/kernel32/CreateFileMappingNumaW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateFileMappingNumaW,CreateFileMappingNumaW,0 .text.windows + .ftrace1 __CreateFileMappingNuma: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateFileMappingNumaW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateFileMappingW.S b/libc/nt/kernel32/CreateFileMappingW.S index af9d2f41d..a06084de1 100644 --- a/libc/nt/kernel32/CreateFileMappingW.S +++ b/libc/nt/kernel32/CreateFileMappingW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateFileMappingW,CreateFileMappingW,0 .text.windows + .ftrace1 __CreateFileMapping: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateFileMappingW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateFileW.S b/libc/nt/kernel32/CreateFileW.S index 578e21ed5..3e408016d 100644 --- a/libc/nt/kernel32/CreateFileW.S +++ b/libc/nt/kernel32/CreateFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateFileW,CreateFileW,0 .text.windows + .ftrace1 __CreateFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateFileW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateHardLinkW.S b/libc/nt/kernel32/CreateHardLinkW.S index 409c3e63b..e2419b56f 100644 --- a/libc/nt/kernel32/CreateHardLinkW.S +++ b/libc/nt/kernel32/CreateHardLinkW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateHardLinkW,CreateHardLinkW,0 .text.windows + .ftrace1 CreateHardLink: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateHardLinkW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateIoCompletionPort.S b/libc/nt/kernel32/CreateIoCompletionPort.S index 12c70312a..8b26989a7 100644 --- a/libc/nt/kernel32/CreateIoCompletionPort.S +++ b/libc/nt/kernel32/CreateIoCompletionPort.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateIoCompletionPort,CreateIoCompletionPort,0 .text.windows + .ftrace1 CreateIoCompletionPort: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateIoCompletionPort(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateNamedPipeW.S b/libc/nt/kernel32/CreateNamedPipeW.S index e6969f343..f293952ec 100644 --- a/libc/nt/kernel32/CreateNamedPipeW.S +++ b/libc/nt/kernel32/CreateNamedPipeW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateNamedPipeW,CreateNamedPipeW,0 .text.windows + .ftrace1 __CreateNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateNamedPipeW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreatePipe.S b/libc/nt/kernel32/CreatePipe.S index 3284d93c9..51643c79a 100644 --- a/libc/nt/kernel32/CreatePipe.S +++ b/libc/nt/kernel32/CreatePipe.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreatePipe,CreatePipe,0 .text.windows + .ftrace1 __CreatePipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreatePipe(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateProcessW.S b/libc/nt/kernel32/CreateProcessW.S index 96dfa1149..05b502699 100644 --- a/libc/nt/kernel32/CreateProcessW.S +++ b/libc/nt/kernel32/CreateProcessW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateProcessW,CreateProcessW,0 .text.windows + .ftrace1 __CreateProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateProcessW(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateSemaphoreW.S b/libc/nt/kernel32/CreateSemaphoreW.S index 05c1bb88e..a94bf031d 100644 --- a/libc/nt/kernel32/CreateSemaphoreW.S +++ b/libc/nt/kernel32/CreateSemaphoreW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateSemaphoreW,CreateSemaphoreW,0 .text.windows + .ftrace1 CreateSemaphore: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateSemaphoreW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateSymbolicLinkW.S b/libc/nt/kernel32/CreateSymbolicLinkW.S index 4722e759b..7921a4242 100644 --- a/libc/nt/kernel32/CreateSymbolicLinkW.S +++ b/libc/nt/kernel32/CreateSymbolicLinkW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateSymbolicLinkW,CreateSymbolicLinkW,0 .text.windows + .ftrace1 __CreateSymbolicLink: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateSymbolicLinkW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateThread.S b/libc/nt/kernel32/CreateThread.S index 190c9b1ef..2e1567e3b 100644 --- a/libc/nt/kernel32/CreateThread.S +++ b/libc/nt/kernel32/CreateThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateThread,CreateThread,0 .text.windows + .ftrace1 __CreateThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateThread(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateToolhelp32Snapshot.S b/libc/nt/kernel32/CreateToolhelp32Snapshot.S index eec58f4be..828c2fd71 100644 --- a/libc/nt/kernel32/CreateToolhelp32Snapshot.S +++ b/libc/nt/kernel32/CreateToolhelp32Snapshot.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateToolhelp32Snapshot,CreateToolhelp32Snapshot,0 .text.windows + .ftrace1 CreateToolhelp32Snapshot: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateToolhelp32Snapshot(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateWaitableTimerExW.S b/libc/nt/kernel32/CreateWaitableTimerExW.S index 02b905f46..da351a537 100644 --- a/libc/nt/kernel32/CreateWaitableTimerExW.S +++ b/libc/nt/kernel32/CreateWaitableTimerExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateWaitableTimerExW,CreateWaitableTimerExW,0 .text.windows + .ftrace1 CreateWaitableTimerEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateWaitableTimerExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/CreateWaitableTimerW.S b/libc/nt/kernel32/CreateWaitableTimerW.S index 851012830..fed0bd426 100644 --- a/libc/nt/kernel32/CreateWaitableTimerW.S +++ b/libc/nt/kernel32/CreateWaitableTimerW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_CreateWaitableTimerW,CreateWaitableTimerW,0 .text.windows + .ftrace1 CreateWaitableTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateWaitableTimerW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/DebugActiveProcess.S b/libc/nt/kernel32/DebugActiveProcess.S index 6973c6c56..a751f2c6e 100644 --- a/libc/nt/kernel32/DebugActiveProcess.S +++ b/libc/nt/kernel32/DebugActiveProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DebugActiveProcess,DebugActiveProcess,0 .text.windows + .ftrace1 DebugActiveProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DebugActiveProcess(%rip) diff --git a/libc/nt/kernel32/DebugActiveProcessStop.S b/libc/nt/kernel32/DebugActiveProcessStop.S index 936f757ee..f53d51466 100644 --- a/libc/nt/kernel32/DebugActiveProcessStop.S +++ b/libc/nt/kernel32/DebugActiveProcessStop.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DebugActiveProcessStop,DebugActiveProcessStop,0 .text.windows + .ftrace1 DebugActiveProcessStop: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DebugActiveProcessStop(%rip) diff --git a/libc/nt/kernel32/DebugBreakProcess.S b/libc/nt/kernel32/DebugBreakProcess.S index 78d14ef42..3054c0481 100644 --- a/libc/nt/kernel32/DebugBreakProcess.S +++ b/libc/nt/kernel32/DebugBreakProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DebugBreakProcess,DebugBreakProcess,263 .text.windows + .ftrace1 DebugBreakProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DebugBreakProcess(%rip) diff --git a/libc/nt/kernel32/DeleteCriticalSection.S b/libc/nt/kernel32/DeleteCriticalSection.S index 9085bca1c..30a79bd73 100644 --- a/libc/nt/kernel32/DeleteCriticalSection.S +++ b/libc/nt/kernel32/DeleteCriticalSection.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DeleteCriticalSection,DeleteCriticalSection,0 .text.windows + .ftrace1 DeleteCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DeleteCriticalSection(%rip) diff --git a/libc/nt/kernel32/DeleteFileW.S b/libc/nt/kernel32/DeleteFileW.S index e09f1e174..59ce5d8e5 100644 --- a/libc/nt/kernel32/DeleteFileW.S +++ b/libc/nt/kernel32/DeleteFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DeleteFileW,DeleteFileW,0 .text.windows + .ftrace1 __DeleteFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DeleteFileW(%rip) diff --git a/libc/nt/kernel32/DeleteProcThreadAttributeList.S b/libc/nt/kernel32/DeleteProcThreadAttributeList.S index f8db91bf7..3de2fe6e3 100644 --- a/libc/nt/kernel32/DeleteProcThreadAttributeList.S +++ b/libc/nt/kernel32/DeleteProcThreadAttributeList.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DeleteProcThreadAttributeList,DeleteProcThreadAttributeList,0 .text.windows + .ftrace1 DeleteProcThreadAttributeList: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DeleteProcThreadAttributeList(%rip) diff --git a/libc/nt/kernel32/DeviceIoControl.S b/libc/nt/kernel32/DeviceIoControl.S index 002ae0be0..a8cdce3fd 100644 --- a/libc/nt/kernel32/DeviceIoControl.S +++ b/libc/nt/kernel32/DeviceIoControl.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DeviceIoControl,DeviceIoControl,0 .text.windows + .ftrace1 __DeviceIoControl: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DeviceIoControl(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/DisconnectNamedPipe.S b/libc/nt/kernel32/DisconnectNamedPipe.S index 6e4767bff..fa4a74ca1 100644 --- a/libc/nt/kernel32/DisconnectNamedPipe.S +++ b/libc/nt/kernel32/DisconnectNamedPipe.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DisconnectNamedPipe,DisconnectNamedPipe,0 .text.windows + .ftrace1 DisconnectNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DisconnectNamedPipe(%rip) diff --git a/libc/nt/kernel32/DuplicateHandle.S b/libc/nt/kernel32/DuplicateHandle.S index a75eda3e0..db472827b 100644 --- a/libc/nt/kernel32/DuplicateHandle.S +++ b/libc/nt/kernel32/DuplicateHandle.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_DuplicateHandle,DuplicateHandle,0 .text.windows + .ftrace1 DuplicateHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DuplicateHandle(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/EnterCriticalSection.S b/libc/nt/kernel32/EnterCriticalSection.S index dde93f81e..33ef91ade 100644 --- a/libc/nt/kernel32/EnterCriticalSection.S +++ b/libc/nt/kernel32/EnterCriticalSection.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_EnterCriticalSection,EnterCriticalSection,0 .text.windows + .ftrace1 EnterCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_EnterCriticalSection(%rip) diff --git a/libc/nt/kernel32/ExitProcess.S b/libc/nt/kernel32/ExitProcess.S index 51a1a60e0..1b3757fbb 100644 --- a/libc/nt/kernel32/ExitProcess.S +++ b/libc/nt/kernel32/ExitProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ExitProcess,ExitProcess,0 .text.windows + .ftrace1 ExitProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ExitProcess(%rip) diff --git a/libc/nt/kernel32/ExitThread.S b/libc/nt/kernel32/ExitThread.S index 2475c8ba4..011901e67 100644 --- a/libc/nt/kernel32/ExitThread.S +++ b/libc/nt/kernel32/ExitThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ExitThread,ExitThread,0 .text.windows + .ftrace1 ExitThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ExitThread(%rip) diff --git a/libc/nt/kernel32/FatalExit.S b/libc/nt/kernel32/FatalExit.S index f15b1a9c4..0ca93895b 100644 --- a/libc/nt/kernel32/FatalExit.S +++ b/libc/nt/kernel32/FatalExit.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FatalExit,FatalExit,364 .text.windows + .ftrace1 FatalExit: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FatalExit(%rip) diff --git a/libc/nt/kernel32/FillConsoleOutputAttribute.S b/libc/nt/kernel32/FillConsoleOutputAttribute.S index f29dac9ab..2dd55c786 100644 --- a/libc/nt/kernel32/FillConsoleOutputAttribute.S +++ b/libc/nt/kernel32/FillConsoleOutputAttribute.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FillConsoleOutputAttribute,FillConsoleOutputAttribute,0 .text.windows + .ftrace1 FillConsoleOutputAttribute: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FillConsoleOutputAttribute(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FillConsoleOutputCharacterW.S b/libc/nt/kernel32/FillConsoleOutputCharacterW.S index 4c610dca1..759cf7e82 100644 --- a/libc/nt/kernel32/FillConsoleOutputCharacterW.S +++ b/libc/nt/kernel32/FillConsoleOutputCharacterW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FillConsoleOutputCharacterW,FillConsoleOutputCharacterW,0 .text.windows + .ftrace1 FillConsoleOutputCharacter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FillConsoleOutputCharacterW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindClose.S b/libc/nt/kernel32/FindClose.S index 8fedcc6e4..61a632c07 100644 --- a/libc/nt/kernel32/FindClose.S +++ b/libc/nt/kernel32/FindClose.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindClose,FindClose,0 .text.windows + .ftrace1 __FindClose: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FindClose(%rip) diff --git a/libc/nt/kernel32/FindFirstFileExW.S b/libc/nt/kernel32/FindFirstFileExW.S index f109a5cb1..b9195c6dc 100644 --- a/libc/nt/kernel32/FindFirstFileExW.S +++ b/libc/nt/kernel32/FindFirstFileExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindFirstFileExW,FindFirstFileExW,0 .text.windows + .ftrace1 FindFirstFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindFirstFileExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindFirstFileW.S b/libc/nt/kernel32/FindFirstFileW.S index b4a74eb45..376173cc1 100644 --- a/libc/nt/kernel32/FindFirstFileW.S +++ b/libc/nt/kernel32/FindFirstFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindFirstFileW,FindFirstFileW,0 .text.windows + .ftrace1 __FindFirstFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindFirstFileW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindFirstVolumeW.S b/libc/nt/kernel32/FindFirstVolumeW.S index ba8e31d94..a8e3c4eef 100644 --- a/libc/nt/kernel32/FindFirstVolumeW.S +++ b/libc/nt/kernel32/FindFirstVolumeW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindFirstVolumeW,FindFirstVolumeW,0 .text.windows + .ftrace1 FindFirstVolume: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindFirstVolumeW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindNextFileW.S b/libc/nt/kernel32/FindNextFileW.S index 0d57d71f6..e82b3efcd 100644 --- a/libc/nt/kernel32/FindNextFileW.S +++ b/libc/nt/kernel32/FindNextFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindNextFileW,FindNextFileW,0 .text.windows + .ftrace1 __FindNextFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindNextFileW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindNextVolumeW.S b/libc/nt/kernel32/FindNextVolumeW.S index e93eb4be2..08c4c2e9d 100644 --- a/libc/nt/kernel32/FindNextVolumeW.S +++ b/libc/nt/kernel32/FindNextVolumeW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindNextVolumeW,FindNextVolumeW,0 .text.windows + .ftrace1 FindNextVolume: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindNextVolumeW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FindVolumeClose.S b/libc/nt/kernel32/FindVolumeClose.S index f17327223..3f96b3542 100644 --- a/libc/nt/kernel32/FindVolumeClose.S +++ b/libc/nt/kernel32/FindVolumeClose.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FindVolumeClose,FindVolumeClose,0 .text.windows + .ftrace1 FindVolumeClose: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FindVolumeClose(%rip) diff --git a/libc/nt/kernel32/FlushConsoleInputBuffer.S b/libc/nt/kernel32/FlushConsoleInputBuffer.S index 91d50f0ef..784c14e5d 100644 --- a/libc/nt/kernel32/FlushConsoleInputBuffer.S +++ b/libc/nt/kernel32/FlushConsoleInputBuffer.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FlushConsoleInputBuffer,FlushConsoleInputBuffer,0 .text.windows + .ftrace1 FlushConsoleInputBuffer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FlushConsoleInputBuffer(%rip) diff --git a/libc/nt/kernel32/FlushFileBuffers.S b/libc/nt/kernel32/FlushFileBuffers.S index bf1d4f89b..06e3b999d 100644 --- a/libc/nt/kernel32/FlushFileBuffers.S +++ b/libc/nt/kernel32/FlushFileBuffers.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FlushFileBuffers,FlushFileBuffers,0 .text.windows + .ftrace1 __FlushFileBuffers: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FlushFileBuffers(%rip) diff --git a/libc/nt/kernel32/FlushViewOfFile.S b/libc/nt/kernel32/FlushViewOfFile.S index 1aecb09d1..cedcca9b1 100644 --- a/libc/nt/kernel32/FlushViewOfFile.S +++ b/libc/nt/kernel32/FlushViewOfFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FlushViewOfFile,FlushViewOfFile,0 .text.windows + .ftrace1 __FlushViewOfFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FlushViewOfFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FormatMessageW.S b/libc/nt/kernel32/FormatMessageW.S index 7d86363ac..64fc7b8dc 100644 --- a/libc/nt/kernel32/FormatMessageW.S +++ b/libc/nt/kernel32/FormatMessageW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FormatMessageW,FormatMessageW,0 .text.windows + .ftrace1 FormatMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FormatMessageW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/FreeConsole.S b/libc/nt/kernel32/FreeConsole.S index 03f922be4..d9476e7c0 100644 --- a/libc/nt/kernel32/FreeConsole.S +++ b/libc/nt/kernel32/FreeConsole.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FreeConsole,FreeConsole,0 .text.windows + .ftrace1 FreeConsole: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_FreeConsole(%rip) leave diff --git a/libc/nt/kernel32/FreeEnvironmentStringsW.S b/libc/nt/kernel32/FreeEnvironmentStringsW.S index 5752c9fd0..60c6e5ed7 100644 --- a/libc/nt/kernel32/FreeEnvironmentStringsW.S +++ b/libc/nt/kernel32/FreeEnvironmentStringsW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FreeEnvironmentStringsW,FreeEnvironmentStringsW,0 .text.windows + .ftrace1 FreeEnvironmentStrings: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FreeEnvironmentStringsW(%rip) diff --git a/libc/nt/kernel32/FreeLibrary.S b/libc/nt/kernel32/FreeLibrary.S index 4e12cd65b..ee8444a93 100644 --- a/libc/nt/kernel32/FreeLibrary.S +++ b/libc/nt/kernel32/FreeLibrary.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FreeLibrary,FreeLibrary,0 .text.windows + .ftrace1 FreeLibrary: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FreeLibrary(%rip) diff --git a/libc/nt/kernel32/FreeResource.S b/libc/nt/kernel32/FreeResource.S index bae61074a..004cdc875 100644 --- a/libc/nt/kernel32/FreeResource.S +++ b/libc/nt/kernel32/FreeResource.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_FreeResource,FreeResource,0 .text.windows + .ftrace1 FreeResource: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FreeResource(%rip) diff --git a/libc/nt/kernel32/GenerateConsoleCtrlEvent.S b/libc/nt/kernel32/GenerateConsoleCtrlEvent.S index a0cb15e44..71a56c24f 100644 --- a/libc/nt/kernel32/GenerateConsoleCtrlEvent.S +++ b/libc/nt/kernel32/GenerateConsoleCtrlEvent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GenerateConsoleCtrlEvent,GenerateConsoleCtrlEvent,0 .text.windows + .ftrace1 __GenerateConsoleCtrlEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GenerateConsoleCtrlEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetCommandLineW.S b/libc/nt/kernel32/GetCommandLineW.S index e988d494b..933e18383 100644 --- a/libc/nt/kernel32/GetCommandLineW.S +++ b/libc/nt/kernel32/GetCommandLineW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCommandLineW,GetCommandLineW,0 .text.windows + .ftrace1 GetCommandLine: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCommandLineW(%rip) leave diff --git a/libc/nt/kernel32/GetCompressedFileSizeW.S b/libc/nt/kernel32/GetCompressedFileSizeW.S index 075a5f3dd..593bc8257 100644 --- a/libc/nt/kernel32/GetCompressedFileSizeW.S +++ b/libc/nt/kernel32/GetCompressedFileSizeW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCompressedFileSizeW,GetCompressedFileSizeW,0 .text.windows + .ftrace1 GetCompressedFileSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetCompressedFileSizeW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetComputerNameExW.S b/libc/nt/kernel32/GetComputerNameExW.S index 5c90af418..bb5686dd1 100644 --- a/libc/nt/kernel32/GetComputerNameExW.S +++ b/libc/nt/kernel32/GetComputerNameExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetComputerNameExW,GetComputerNameExW,0 .text.windows + .ftrace1 GetComputerNameEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetComputerNameExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleCP.S b/libc/nt/kernel32/GetConsoleCP.S index acb10f4a4..4ec444e38 100644 --- a/libc/nt/kernel32/GetConsoleCP.S +++ b/libc/nt/kernel32/GetConsoleCP.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleCP,GetConsoleCP,0 .text.windows + .ftrace1 GetConsoleCP: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetConsoleCP(%rip) leave diff --git a/libc/nt/kernel32/GetConsoleCursorInfo.S b/libc/nt/kernel32/GetConsoleCursorInfo.S index 36dcaf974..a24dd2b2c 100644 --- a/libc/nt/kernel32/GetConsoleCursorInfo.S +++ b/libc/nt/kernel32/GetConsoleCursorInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleCursorInfo,GetConsoleCursorInfo,0 .text.windows + .ftrace1 GetConsoleCursorInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetConsoleCursorInfo(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleMode.S b/libc/nt/kernel32/GetConsoleMode.S index e1490a419..4fd4090bd 100644 --- a/libc/nt/kernel32/GetConsoleMode.S +++ b/libc/nt/kernel32/GetConsoleMode.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleMode,GetConsoleMode,0 .text.windows + .ftrace1 GetConsoleMode: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetConsoleMode(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleOutputCP.S b/libc/nt/kernel32/GetConsoleOutputCP.S index 0d30b5a0e..12e82efef 100644 --- a/libc/nt/kernel32/GetConsoleOutputCP.S +++ b/libc/nt/kernel32/GetConsoleOutputCP.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleOutputCP,GetConsoleOutputCP,0 .text.windows + .ftrace1 GetConsoleOutputCP: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetConsoleOutputCP(%rip) leave diff --git a/libc/nt/kernel32/GetConsoleScreenBufferInfo.S b/libc/nt/kernel32/GetConsoleScreenBufferInfo.S index 3bcae2e5b..7cd58f42b 100644 --- a/libc/nt/kernel32/GetConsoleScreenBufferInfo.S +++ b/libc/nt/kernel32/GetConsoleScreenBufferInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleScreenBufferInfo,GetConsoleScreenBufferInfo,0 .text.windows + .ftrace1 GetConsoleScreenBufferInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetConsoleScreenBufferInfo(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleScreenBufferInfoEx.S b/libc/nt/kernel32/GetConsoleScreenBufferInfoEx.S index 5294efaee..5a1c7934b 100644 --- a/libc/nt/kernel32/GetConsoleScreenBufferInfoEx.S +++ b/libc/nt/kernel32/GetConsoleScreenBufferInfoEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleScreenBufferInfoEx,GetConsoleScreenBufferInfoEx,0 .text.windows + .ftrace1 GetConsoleScreenBufferInfoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetConsoleScreenBufferInfoEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleSelectionInfo.S b/libc/nt/kernel32/GetConsoleSelectionInfo.S index 263ff1deb..31c94bcb2 100644 --- a/libc/nt/kernel32/GetConsoleSelectionInfo.S +++ b/libc/nt/kernel32/GetConsoleSelectionInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleSelectionInfo,GetConsoleSelectionInfo,0 .text.windows + .ftrace1 GetConsoleSelectionInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetConsoleSelectionInfo(%rip) diff --git a/libc/nt/kernel32/GetConsoleTitleW.S b/libc/nt/kernel32/GetConsoleTitleW.S index 9fca40a0e..b2b2f18db 100644 --- a/libc/nt/kernel32/GetConsoleTitleW.S +++ b/libc/nt/kernel32/GetConsoleTitleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleTitleW,GetConsoleTitleW,0 .text.windows + .ftrace1 GetConsoleTitle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetConsoleTitleW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetConsoleWindow.S b/libc/nt/kernel32/GetConsoleWindow.S index 68eb870fc..4c6b9b45b 100644 --- a/libc/nt/kernel32/GetConsoleWindow.S +++ b/libc/nt/kernel32/GetConsoleWindow.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetConsoleWindow,GetConsoleWindow,0 .text.windows + .ftrace1 GetConsoleWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetConsoleWindow(%rip) leave diff --git a/libc/nt/kernel32/GetCurrentDirectoryW.S b/libc/nt/kernel32/GetCurrentDirectoryW.S index 19cdf2cb2..bbdbeef92 100644 --- a/libc/nt/kernel32/GetCurrentDirectoryW.S +++ b/libc/nt/kernel32/GetCurrentDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCurrentDirectoryW,GetCurrentDirectoryW,0 .text.windows + .ftrace1 GetCurrentDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetCurrentDirectoryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetCurrentProcess.S b/libc/nt/kernel32/GetCurrentProcess.S index 206a808a4..a2a4f336a 100644 --- a/libc/nt/kernel32/GetCurrentProcess.S +++ b/libc/nt/kernel32/GetCurrentProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCurrentProcess,GetCurrentProcess,0 .text.windows + .ftrace1 GetCurrentProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCurrentProcess(%rip) leave diff --git a/libc/nt/kernel32/GetCurrentProcessId.S b/libc/nt/kernel32/GetCurrentProcessId.S index 39946dc6b..9a9946009 100644 --- a/libc/nt/kernel32/GetCurrentProcessId.S +++ b/libc/nt/kernel32/GetCurrentProcessId.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCurrentProcessId,GetCurrentProcessId,0 .text.windows + .ftrace1 GetCurrentProcessId: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCurrentProcessId(%rip) leave diff --git a/libc/nt/kernel32/GetCurrentThread.S b/libc/nt/kernel32/GetCurrentThread.S index 8b1b746ce..5cbbeef61 100644 --- a/libc/nt/kernel32/GetCurrentThread.S +++ b/libc/nt/kernel32/GetCurrentThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCurrentThread,GetCurrentThread,0 .text.windows + .ftrace1 GetCurrentThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCurrentThread(%rip) leave diff --git a/libc/nt/kernel32/GetCurrentThreadId.S b/libc/nt/kernel32/GetCurrentThreadId.S index be907f533..39ee7d2f6 100644 --- a/libc/nt/kernel32/GetCurrentThreadId.S +++ b/libc/nt/kernel32/GetCurrentThreadId.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetCurrentThreadId,GetCurrentThreadId,0 .text.windows + .ftrace1 GetCurrentThreadId: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCurrentThreadId(%rip) leave diff --git a/libc/nt/kernel32/GetEnvironmentStringsW.S b/libc/nt/kernel32/GetEnvironmentStringsW.S index 62648c25a..3bda6b67b 100644 --- a/libc/nt/kernel32/GetEnvironmentStringsW.S +++ b/libc/nt/kernel32/GetEnvironmentStringsW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetEnvironmentStringsW,GetEnvironmentStringsW,0 .text.windows + .ftrace1 GetEnvironmentStrings: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetEnvironmentStringsW(%rip) diff --git a/libc/nt/kernel32/GetEnvironmentVariableW.S b/libc/nt/kernel32/GetEnvironmentVariableW.S index 51c355d1b..b41f22f90 100644 --- a/libc/nt/kernel32/GetEnvironmentVariableW.S +++ b/libc/nt/kernel32/GetEnvironmentVariableW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetEnvironmentVariableW,GetEnvironmentVariableW,0 .text.windows + .ftrace1 GetEnvironmentVariable: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetEnvironmentVariableW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetExitCodeProcess.S b/libc/nt/kernel32/GetExitCodeProcess.S index ccda758a9..60d6534d0 100644 --- a/libc/nt/kernel32/GetExitCodeProcess.S +++ b/libc/nt/kernel32/GetExitCodeProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetExitCodeProcess,GetExitCodeProcess,0 .text.windows + .ftrace1 __GetExitCodeProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetExitCodeProcess(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetExitCodeThread.S b/libc/nt/kernel32/GetExitCodeThread.S index 714d67adc..274d72a6b 100644 --- a/libc/nt/kernel32/GetExitCodeThread.S +++ b/libc/nt/kernel32/GetExitCodeThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetExitCodeThread,GetExitCodeThread,0 .text.windows + .ftrace1 GetExitCodeThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetExitCodeThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileAttributesExW.S b/libc/nt/kernel32/GetFileAttributesExW.S index e74b10ad7..379299947 100644 --- a/libc/nt/kernel32/GetFileAttributesExW.S +++ b/libc/nt/kernel32/GetFileAttributesExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileAttributesExW,GetFileAttributesExW,0 .text.windows + .ftrace1 GetFileAttributesEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileAttributesExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileAttributesW.S b/libc/nt/kernel32/GetFileAttributesW.S index 46022c97b..b41297c4a 100644 --- a/libc/nt/kernel32/GetFileAttributesW.S +++ b/libc/nt/kernel32/GetFileAttributesW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileAttributesW,GetFileAttributesW,0 .text.windows + .ftrace1 __GetFileAttributes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetFileAttributesW(%rip) diff --git a/libc/nt/kernel32/GetFileInformationByHandle.S b/libc/nt/kernel32/GetFileInformationByHandle.S index 736bb8b81..9ed25774b 100644 --- a/libc/nt/kernel32/GetFileInformationByHandle.S +++ b/libc/nt/kernel32/GetFileInformationByHandle.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileInformationByHandle,GetFileInformationByHandle,0 .text.windows + .ftrace1 GetFileInformationByHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileInformationByHandle(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileInformationByHandleEx.S b/libc/nt/kernel32/GetFileInformationByHandleEx.S index 3a797a34d..fa9edaa23 100644 --- a/libc/nt/kernel32/GetFileInformationByHandleEx.S +++ b/libc/nt/kernel32/GetFileInformationByHandleEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileInformationByHandleEx,GetFileInformationByHandleEx,0 .text.windows + .ftrace1 GetFileInformationByHandleEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileInformationByHandleEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileSize.S b/libc/nt/kernel32/GetFileSize.S index 228a23e76..ff26346ee 100644 --- a/libc/nt/kernel32/GetFileSize.S +++ b/libc/nt/kernel32/GetFileSize.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileSize,GetFileSize,0 .text.windows + .ftrace1 GetFileSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileSize(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileSizeEx.S b/libc/nt/kernel32/GetFileSizeEx.S index d1935da81..7ab658153 100644 --- a/libc/nt/kernel32/GetFileSizeEx.S +++ b/libc/nt/kernel32/GetFileSizeEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileSizeEx,GetFileSizeEx,0 .text.windows + .ftrace1 GetFileSizeEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileSizeEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileTime.S b/libc/nt/kernel32/GetFileTime.S index 4f29e33c4..226bee29a 100644 --- a/libc/nt/kernel32/GetFileTime.S +++ b/libc/nt/kernel32/GetFileTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileTime,GetFileTime,0 .text.windows + .ftrace1 GetFileTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFileTime(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFileType.S b/libc/nt/kernel32/GetFileType.S index b6a22428a..25db80e84 100644 --- a/libc/nt/kernel32/GetFileType.S +++ b/libc/nt/kernel32/GetFileType.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFileType,GetFileType,0 .text.windows + .ftrace1 GetFileType: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetFileType(%rip) diff --git a/libc/nt/kernel32/GetFinalPathNameByHandleW.S b/libc/nt/kernel32/GetFinalPathNameByHandleW.S index 3b82aa365..e7bf31fd7 100644 --- a/libc/nt/kernel32/GetFinalPathNameByHandleW.S +++ b/libc/nt/kernel32/GetFinalPathNameByHandleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFinalPathNameByHandleW,GetFinalPathNameByHandleW,0 .text.windows + .ftrace1 GetFinalPathNameByHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFinalPathNameByHandleW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetFullPathNameW.S b/libc/nt/kernel32/GetFullPathNameW.S index e2c6247bb..f12fa90f2 100644 --- a/libc/nt/kernel32/GetFullPathNameW.S +++ b/libc/nt/kernel32/GetFullPathNameW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetFullPathNameW,GetFullPathNameW,0 .text.windows + .ftrace1 GetFullPathName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetFullPathNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetHandleInformation.S b/libc/nt/kernel32/GetHandleInformation.S index d6fcad3af..2ee1c9872 100644 --- a/libc/nt/kernel32/GetHandleInformation.S +++ b/libc/nt/kernel32/GetHandleInformation.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetHandleInformation,GetHandleInformation,0 .text.windows + .ftrace1 GetHandleInformation: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetHandleInformation(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetLargestConsoleWindowSize.S b/libc/nt/kernel32/GetLargestConsoleWindowSize.S index 884e43afd..f0de49f5d 100644 --- a/libc/nt/kernel32/GetLargestConsoleWindowSize.S +++ b/libc/nt/kernel32/GetLargestConsoleWindowSize.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetLargestConsoleWindowSize,GetLargestConsoleWindowSize,0 .text.windows + .ftrace1 GetLargestConsoleWindowSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetLargestConsoleWindowSize(%rip) diff --git a/libc/nt/kernel32/GetLastError.S b/libc/nt/kernel32/GetLastError.S index 7e0a1aac3..d41cb615b 100644 --- a/libc/nt/kernel32/GetLastError.S +++ b/libc/nt/kernel32/GetLastError.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetLastError,GetLastError,0 .text.windows + .ftrace1 GetLastError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetLastError(%rip) leave diff --git a/libc/nt/kernel32/GetLogicalDrives.S b/libc/nt/kernel32/GetLogicalDrives.S index dd9fd636c..7e16939de 100644 --- a/libc/nt/kernel32/GetLogicalDrives.S +++ b/libc/nt/kernel32/GetLogicalDrives.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetLogicalDrives,GetLogicalDrives,0 .text.windows + .ftrace1 GetLogicalDrives: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetLogicalDrives(%rip) leave diff --git a/libc/nt/kernel32/GetMaximumProcessorCount.S b/libc/nt/kernel32/GetMaximumProcessorCount.S index b9e66beb1..b1758fa55 100644 --- a/libc/nt/kernel32/GetMaximumProcessorCount.S +++ b/libc/nt/kernel32/GetMaximumProcessorCount.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetMaximumProcessorCount,GetMaximumProcessorCount,627 .text.windows + .ftrace1 GetMaximumProcessorCount: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetMaximumProcessorCount(%rip) diff --git a/libc/nt/kernel32/GetModuleFileNameW.S b/libc/nt/kernel32/GetModuleFileNameW.S index e749411a0..61b916a07 100644 --- a/libc/nt/kernel32/GetModuleFileNameW.S +++ b/libc/nt/kernel32/GetModuleFileNameW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetModuleFileNameW,GetModuleFileNameW,0 .text.windows + .ftrace1 GetModuleFileName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetModuleFileNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetModuleHandleA.S b/libc/nt/kernel32/GetModuleHandleA.S index cfc495da2..fa1a56ce0 100644 --- a/libc/nt/kernel32/GetModuleHandleA.S +++ b/libc/nt/kernel32/GetModuleHandleA.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetModuleHandleA,GetModuleHandleA,0 .text.windows + .ftrace1 GetModuleHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetModuleHandleA(%rip) diff --git a/libc/nt/kernel32/GetModuleHandleExW.S b/libc/nt/kernel32/GetModuleHandleExW.S index e0edf1bee..db49b1fcb 100644 --- a/libc/nt/kernel32/GetModuleHandleExW.S +++ b/libc/nt/kernel32/GetModuleHandleExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetModuleHandleExW,GetModuleHandleExW,0 .text.windows + .ftrace1 GetModuleHandleEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetModuleHandleExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetModuleHandleW.S b/libc/nt/kernel32/GetModuleHandleW.S index 55b42687e..922ef1532 100644 --- a/libc/nt/kernel32/GetModuleHandleW.S +++ b/libc/nt/kernel32/GetModuleHandleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetModuleHandleW,GetModuleHandleW,0 .text.windows + .ftrace1 GetModuleHandleW: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetModuleHandleW(%rip) diff --git a/libc/nt/kernel32/GetNumberOfConsoleInputEvents.S b/libc/nt/kernel32/GetNumberOfConsoleInputEvents.S index f6cdac9c9..8cdcc56cf 100644 --- a/libc/nt/kernel32/GetNumberOfConsoleInputEvents.S +++ b/libc/nt/kernel32/GetNumberOfConsoleInputEvents.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetNumberOfConsoleInputEvents,GetNumberOfConsoleInputEvents,0 .text.windows + .ftrace1 GetNumberOfConsoleInputEvents: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetNumberOfConsoleInputEvents(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetNumberOfConsoleMouseButtons.S b/libc/nt/kernel32/GetNumberOfConsoleMouseButtons.S index 6ead3f8b9..9fa0f68de 100644 --- a/libc/nt/kernel32/GetNumberOfConsoleMouseButtons.S +++ b/libc/nt/kernel32/GetNumberOfConsoleMouseButtons.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetNumberOfConsoleMouseButtons,GetNumberOfConsoleMouseButtons,0 .text.windows + .ftrace1 GetNumberOfConsoleMouseButtons: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetNumberOfConsoleMouseButtons(%rip) diff --git a/libc/nt/kernel32/GetOverlappedResult.S b/libc/nt/kernel32/GetOverlappedResult.S index ad97f81cb..5a597e762 100644 --- a/libc/nt/kernel32/GetOverlappedResult.S +++ b/libc/nt/kernel32/GetOverlappedResult.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetOverlappedResult,GetOverlappedResult,0 .text.windows + .ftrace1 GetOverlappedResult: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetOverlappedResult(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetOverlappedResultEx.S b/libc/nt/kernel32/GetOverlappedResultEx.S index ab3d7d6d6..c31c25ac6 100644 --- a/libc/nt/kernel32/GetOverlappedResultEx.S +++ b/libc/nt/kernel32/GetOverlappedResultEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetOverlappedResultEx,GetOverlappedResultEx,0 .text.windows + .ftrace1 GetOverlappedResultEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetOverlappedResultEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetPriorityClass.S b/libc/nt/kernel32/GetPriorityClass.S index 03324aaf9..907f2643d 100644 --- a/libc/nt/kernel32/GetPriorityClass.S +++ b/libc/nt/kernel32/GetPriorityClass.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetPriorityClass,GetPriorityClass,0 .text.windows + .ftrace1 GetPriorityClass: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetPriorityClass(%rip) diff --git a/libc/nt/kernel32/GetProcAddress.S b/libc/nt/kernel32/GetProcAddress.S index 4d2c0083d..25ff3c309 100644 --- a/libc/nt/kernel32/GetProcAddress.S +++ b/libc/nt/kernel32/GetProcAddress.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcAddress,GetProcAddress,0 .text.windows + .ftrace1 GetProcAddress: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcAddress(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessAffinityMask.S b/libc/nt/kernel32/GetProcessAffinityMask.S index e43dbc58e..bfbe75b70 100644 --- a/libc/nt/kernel32/GetProcessAffinityMask.S +++ b/libc/nt/kernel32/GetProcessAffinityMask.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessAffinityMask,GetProcessAffinityMask,0 .text.windows + .ftrace1 GetProcessAffinityMask: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessAffinityMask(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessHandleCount.S b/libc/nt/kernel32/GetProcessHandleCount.S index a6297fca8..cfcb5c74d 100644 --- a/libc/nt/kernel32/GetProcessHandleCount.S +++ b/libc/nt/kernel32/GetProcessHandleCount.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessHandleCount,GetProcessHandleCount,0 .text.windows + .ftrace1 GetProcessHandleCount: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessHandleCount(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessHeap.S b/libc/nt/kernel32/GetProcessHeap.S index 01d130967..66fbbcaad 100644 --- a/libc/nt/kernel32/GetProcessHeap.S +++ b/libc/nt/kernel32/GetProcessHeap.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessHeap,GetProcessHeap,0 .text.windows + .ftrace1 GetProcessHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetProcessHeap(%rip) leave diff --git a/libc/nt/kernel32/GetProcessHeaps.S b/libc/nt/kernel32/GetProcessHeaps.S index 254881669..6bfc4b498 100644 --- a/libc/nt/kernel32/GetProcessHeaps.S +++ b/libc/nt/kernel32/GetProcessHeaps.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessHeaps,GetProcessHeaps,0 .text.windows + .ftrace1 GetProcessHeaps: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessHeaps(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessId.S b/libc/nt/kernel32/GetProcessId.S index 661a874cf..1489fbd07 100644 --- a/libc/nt/kernel32/GetProcessId.S +++ b/libc/nt/kernel32/GetProcessId.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessId,GetProcessId,0 .text.windows + .ftrace1 GetProcessId: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetProcessId(%rip) diff --git a/libc/nt/kernel32/GetProcessIdOfThread.S b/libc/nt/kernel32/GetProcessIdOfThread.S index 92615688a..f533587f3 100644 --- a/libc/nt/kernel32/GetProcessIdOfThread.S +++ b/libc/nt/kernel32/GetProcessIdOfThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessIdOfThread,GetProcessIdOfThread,0 .text.windows + .ftrace1 GetProcessIdOfThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetProcessIdOfThread(%rip) diff --git a/libc/nt/kernel32/GetProcessInformation.S b/libc/nt/kernel32/GetProcessInformation.S index 42e7f09e7..8f13d4619 100644 --- a/libc/nt/kernel32/GetProcessInformation.S +++ b/libc/nt/kernel32/GetProcessInformation.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessInformation,GetProcessInformation,0 .text.windows + .ftrace1 GetProcessInformation: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessInformation(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessIoCounters.S b/libc/nt/kernel32/GetProcessIoCounters.S index 1a5e0d98d..a5ff5cf2b 100644 --- a/libc/nt/kernel32/GetProcessIoCounters.S +++ b/libc/nt/kernel32/GetProcessIoCounters.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessIoCounters,GetProcessIoCounters,701 .text.windows + .ftrace1 GetProcessIoCounters: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessIoCounters(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessPriorityBoost.S b/libc/nt/kernel32/GetProcessPriorityBoost.S index b5122b7bd..382c43f6c 100644 --- a/libc/nt/kernel32/GetProcessPriorityBoost.S +++ b/libc/nt/kernel32/GetProcessPriorityBoost.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessPriorityBoost,GetProcessPriorityBoost,0 .text.windows + .ftrace1 GetProcessPriorityBoost: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessPriorityBoost(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessTimes.S b/libc/nt/kernel32/GetProcessTimes.S index 92b36eac1..62f968fdf 100644 --- a/libc/nt/kernel32/GetProcessTimes.S +++ b/libc/nt/kernel32/GetProcessTimes.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessTimes,GetProcessTimes,0 .text.windows + .ftrace1 GetProcessTimes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessTimes(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessWorkingSetSize.S b/libc/nt/kernel32/GetProcessWorkingSetSize.S index 97f9acbeb..26b6bfeb4 100644 --- a/libc/nt/kernel32/GetProcessWorkingSetSize.S +++ b/libc/nt/kernel32/GetProcessWorkingSetSize.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessWorkingSetSize,GetProcessWorkingSetSize,708 .text.windows + .ftrace1 GetProcessWorkingSetSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessWorkingSetSize(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetProcessWorkingSetSizeEx.S b/libc/nt/kernel32/GetProcessWorkingSetSizeEx.S index 59166bbc3..0dd7b9e67 100644 --- a/libc/nt/kernel32/GetProcessWorkingSetSizeEx.S +++ b/libc/nt/kernel32/GetProcessWorkingSetSizeEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetProcessWorkingSetSizeEx,GetProcessWorkingSetSizeEx,0 .text.windows + .ftrace1 GetProcessWorkingSetSizeEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessWorkingSetSizeEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetQueuedCompletionStatus.S b/libc/nt/kernel32/GetQueuedCompletionStatus.S index 16f8f4d32..a3d313b3b 100644 --- a/libc/nt/kernel32/GetQueuedCompletionStatus.S +++ b/libc/nt/kernel32/GetQueuedCompletionStatus.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetQueuedCompletionStatus,GetQueuedCompletionStatus,0 .text.windows + .ftrace1 GetQueuedCompletionStatus: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetQueuedCompletionStatus(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetQueuedCompletionStatusEx.S b/libc/nt/kernel32/GetQueuedCompletionStatusEx.S index 3dbbfb994..4e1dc0b07 100644 --- a/libc/nt/kernel32/GetQueuedCompletionStatusEx.S +++ b/libc/nt/kernel32/GetQueuedCompletionStatusEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetQueuedCompletionStatusEx,GetQueuedCompletionStatusEx,0 .text.windows + .ftrace1 GetQueuedCompletionStatusEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetQueuedCompletionStatusEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetStartupInfoW.S b/libc/nt/kernel32/GetStartupInfoW.S index d41e637b2..8eac22769 100644 --- a/libc/nt/kernel32/GetStartupInfoW.S +++ b/libc/nt/kernel32/GetStartupInfoW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetStartupInfoW,GetStartupInfoW,0 .text.windows + .ftrace1 GetStartupInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetStartupInfoW(%rip) diff --git a/libc/nt/kernel32/GetStdHandle.S b/libc/nt/kernel32/GetStdHandle.S index e4366b4ac..ac50574bb 100644 --- a/libc/nt/kernel32/GetStdHandle.S +++ b/libc/nt/kernel32/GetStdHandle.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetStdHandle,GetStdHandle,0 .text.windows + .ftrace1 GetStdHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetStdHandle(%rip) diff --git a/libc/nt/kernel32/GetSystemDirectoryA.S b/libc/nt/kernel32/GetSystemDirectoryA.S index ab9b3ed85..04f6dd8b1 100644 --- a/libc/nt/kernel32/GetSystemDirectoryA.S +++ b/libc/nt/kernel32/GetSystemDirectoryA.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemDirectoryA,GetSystemDirectoryA,0 .text.windows + .ftrace1 GetSystemDirectoryA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetSystemDirectoryA(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetSystemDirectoryW.S b/libc/nt/kernel32/GetSystemDirectoryW.S index c7d685162..ef0d22cc2 100644 --- a/libc/nt/kernel32/GetSystemDirectoryW.S +++ b/libc/nt/kernel32/GetSystemDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemDirectoryW,GetSystemDirectoryW,0 .text.windows + .ftrace1 GetSystemDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetSystemDirectoryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetSystemInfo.S b/libc/nt/kernel32/GetSystemInfo.S index 221ef4ecf..4f6f22536 100644 --- a/libc/nt/kernel32/GetSystemInfo.S +++ b/libc/nt/kernel32/GetSystemInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemInfo,GetSystemInfo,0 .text.windows + .ftrace1 GetSystemInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetSystemInfo(%rip) diff --git a/libc/nt/kernel32/GetSystemTime.S b/libc/nt/kernel32/GetSystemTime.S index cefd6074e..9d93fe8ac 100644 --- a/libc/nt/kernel32/GetSystemTime.S +++ b/libc/nt/kernel32/GetSystemTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemTime,GetSystemTime,0 .text.windows + .ftrace1 GetSystemTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetSystemTime(%rip) diff --git a/libc/nt/kernel32/GetSystemTimeAdjustment.S b/libc/nt/kernel32/GetSystemTimeAdjustment.S index eb0d8354e..9960216a2 100644 --- a/libc/nt/kernel32/GetSystemTimeAdjustment.S +++ b/libc/nt/kernel32/GetSystemTimeAdjustment.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemTimeAdjustment,GetSystemTimeAdjustment,0 .text.windows + .ftrace1 GetSystemTimeAdjustment: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetSystemTimeAdjustment(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetSystemTimeAsFileTime.S b/libc/nt/kernel32/GetSystemTimeAsFileTime.S index 48b62b1e6..84dc2ab37 100644 --- a/libc/nt/kernel32/GetSystemTimeAsFileTime.S +++ b/libc/nt/kernel32/GetSystemTimeAsFileTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemTimeAsFileTime,GetSystemTimeAsFileTime,0 .text.windows + .ftrace1 GetSystemTimeAsFileTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetSystemTimeAsFileTime(%rip) diff --git a/libc/nt/kernel32/GetSystemTimePreciseAsFileTime.S b/libc/nt/kernel32/GetSystemTimePreciseAsFileTime.S index 668fb4822..56ee114e6 100644 --- a/libc/nt/kernel32/GetSystemTimePreciseAsFileTime.S +++ b/libc/nt/kernel32/GetSystemTimePreciseAsFileTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemTimePreciseAsFileTime,GetSystemTimePreciseAsFileTime,0 .text.windows + .ftrace1 GetSystemTimePreciseAsFileTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetSystemTimePreciseAsFileTime(%rip) diff --git a/libc/nt/kernel32/GetSystemTimes.S b/libc/nt/kernel32/GetSystemTimes.S index 145a32b9b..4620f0bd8 100644 --- a/libc/nt/kernel32/GetSystemTimes.S +++ b/libc/nt/kernel32/GetSystemTimes.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetSystemTimes,GetSystemTimes,0 .text.windows + .ftrace1 GetSystemTimes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetSystemTimes(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetTempPathA.S b/libc/nt/kernel32/GetTempPathA.S index 390d3be61..91c455131 100644 --- a/libc/nt/kernel32/GetTempPathA.S +++ b/libc/nt/kernel32/GetTempPathA.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetTempPathA,GetTempPathA,0 .text.windows + .ftrace1 GetTempPathA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetTempPathA(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetTempPathW.S b/libc/nt/kernel32/GetTempPathW.S index 66bffbc75..7e2e57345 100644 --- a/libc/nt/kernel32/GetTempPathW.S +++ b/libc/nt/kernel32/GetTempPathW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetTempPathW,GetTempPathW,0 .text.windows + .ftrace1 GetTempPath: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetTempPathW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetThreadIOPendingFlag.S b/libc/nt/kernel32/GetThreadIOPendingFlag.S index e3ea32601..c7b54b08a 100644 --- a/libc/nt/kernel32/GetThreadIOPendingFlag.S +++ b/libc/nt/kernel32/GetThreadIOPendingFlag.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetThreadIOPendingFlag,GetThreadIOPendingFlag,0 .text.windows + .ftrace1 GetThreadIOPendingFlag: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetThreadIOPendingFlag(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetThreadId.S b/libc/nt/kernel32/GetThreadId.S index 1751d7edc..892dfb3ce 100644 --- a/libc/nt/kernel32/GetThreadId.S +++ b/libc/nt/kernel32/GetThreadId.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetThreadId,GetThreadId,0 .text.windows + .ftrace1 GetThreadId: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetThreadId(%rip) diff --git a/libc/nt/kernel32/GetThreadPriority.S b/libc/nt/kernel32/GetThreadPriority.S index 39c4c2664..cde4039da 100644 --- a/libc/nt/kernel32/GetThreadPriority.S +++ b/libc/nt/kernel32/GetThreadPriority.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetThreadPriority,GetThreadPriority,0 .text.windows + .ftrace1 GetThreadPriority: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetThreadPriority(%rip) diff --git a/libc/nt/kernel32/GetThreadPriorityBoost.S b/libc/nt/kernel32/GetThreadPriorityBoost.S index 0653cc044..1fa7afae3 100644 --- a/libc/nt/kernel32/GetThreadPriorityBoost.S +++ b/libc/nt/kernel32/GetThreadPriorityBoost.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetThreadPriorityBoost,GetThreadPriorityBoost,0 .text.windows + .ftrace1 GetThreadPriorityBoost: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetThreadPriorityBoost(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetThreadTimes.S b/libc/nt/kernel32/GetThreadTimes.S index 41d30699a..e5d430d63 100644 --- a/libc/nt/kernel32/GetThreadTimes.S +++ b/libc/nt/kernel32/GetThreadTimes.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetThreadTimes,GetThreadTimes,0 .text.windows + .ftrace1 GetThreadTimes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetThreadTimes(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetTickCount64.S b/libc/nt/kernel32/GetTickCount64.S index d3215d6b6..54f20ce0b 100644 --- a/libc/nt/kernel32/GetTickCount64.S +++ b/libc/nt/kernel32/GetTickCount64.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetTickCount64,GetTickCount64,0 .text.windows + .ftrace1 GetTickCount64: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetTickCount64(%rip) leave diff --git a/libc/nt/kernel32/GetVersionExW.S b/libc/nt/kernel32/GetVersionExW.S index db7edb0c5..5731b7679 100644 --- a/libc/nt/kernel32/GetVersionExW.S +++ b/libc/nt/kernel32/GetVersionExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetVersionExW,GetVersionExW,0 .text.windows + .ftrace1 GetVersionEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetVersionExW(%rip) diff --git a/libc/nt/kernel32/GetVolumeInformationByHandleW.S b/libc/nt/kernel32/GetVolumeInformationByHandleW.S index 01e2f7f2b..89b6784a5 100644 --- a/libc/nt/kernel32/GetVolumeInformationByHandleW.S +++ b/libc/nt/kernel32/GetVolumeInformationByHandleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetVolumeInformationByHandleW,GetVolumeInformationByHandleW,0 .text.windows + .ftrace1 GetVolumeInformationByHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetVolumeInformationByHandleW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetVolumePathNameW.S b/libc/nt/kernel32/GetVolumePathNameW.S index 7ff4f669f..40fa2985a 100644 --- a/libc/nt/kernel32/GetVolumePathNameW.S +++ b/libc/nt/kernel32/GetVolumePathNameW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetVolumePathNameW,GetVolumePathNameW,0 .text.windows + .ftrace1 GetVolumePathName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetVolumePathNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetWindowsDirectoryA.S b/libc/nt/kernel32/GetWindowsDirectoryA.S index 911b88597..49adf010a 100644 --- a/libc/nt/kernel32/GetWindowsDirectoryA.S +++ b/libc/nt/kernel32/GetWindowsDirectoryA.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetWindowsDirectoryA,GetWindowsDirectoryA,0 .text.windows + .ftrace1 GetWindowsDirectoryA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindowsDirectoryA(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GetWindowsDirectoryW.S b/libc/nt/kernel32/GetWindowsDirectoryW.S index fcced0158..32b8327fe 100644 --- a/libc/nt/kernel32/GetWindowsDirectoryW.S +++ b/libc/nt/kernel32/GetWindowsDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GetWindowsDirectoryW,GetWindowsDirectoryW,0 .text.windows + .ftrace1 GetWindowsDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindowsDirectoryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GlobalAlloc.S b/libc/nt/kernel32/GlobalAlloc.S index 53e1fa9be..9c8ed5d70 100644 --- a/libc/nt/kernel32/GlobalAlloc.S +++ b/libc/nt/kernel32/GlobalAlloc.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GlobalAlloc,GlobalAlloc,0 .text.windows + .ftrace1 GlobalAlloc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GlobalAlloc(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/GlobalFree.S b/libc/nt/kernel32/GlobalFree.S index f383c985e..d1a99a843 100644 --- a/libc/nt/kernel32/GlobalFree.S +++ b/libc/nt/kernel32/GlobalFree.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GlobalFree,GlobalFree,0 .text.windows + .ftrace1 GlobalFree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GlobalFree(%rip) diff --git a/libc/nt/kernel32/GlobalMemoryStatusEx.S b/libc/nt/kernel32/GlobalMemoryStatusEx.S index 21f7a51f3..8e7a5cca2 100644 --- a/libc/nt/kernel32/GlobalMemoryStatusEx.S +++ b/libc/nt/kernel32/GlobalMemoryStatusEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_GlobalMemoryStatusEx,GlobalMemoryStatusEx,0 .text.windows + .ftrace1 GlobalMemoryStatusEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GlobalMemoryStatusEx(%rip) diff --git a/libc/nt/kernel32/HeapAlloc.S b/libc/nt/kernel32/HeapAlloc.S index e59656384..18e995070 100644 --- a/libc/nt/kernel32/HeapAlloc.S +++ b/libc/nt/kernel32/HeapAlloc.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapAlloc,HeapAlloc,0 .text.windows + .ftrace1 HeapAlloc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_HeapAlloc(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/HeapCompact.S b/libc/nt/kernel32/HeapCompact.S index cb380159f..9e2eb401c 100644 --- a/libc/nt/kernel32/HeapCompact.S +++ b/libc/nt/kernel32/HeapCompact.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapCompact,HeapCompact,0 .text.windows + .ftrace1 HeapCompact: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_HeapCompact(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/HeapCreate.S b/libc/nt/kernel32/HeapCreate.S index e70e6fb05..1d39cce5c 100644 --- a/libc/nt/kernel32/HeapCreate.S +++ b/libc/nt/kernel32/HeapCreate.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapCreate,HeapCreate,0 .text.windows + .ftrace1 HeapCreate: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_HeapCreate(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/HeapDestroy.S b/libc/nt/kernel32/HeapDestroy.S index 85d44a8a3..eab7a085a 100644 --- a/libc/nt/kernel32/HeapDestroy.S +++ b/libc/nt/kernel32/HeapDestroy.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapDestroy,HeapDestroy,0 .text.windows + .ftrace1 HeapDestroy: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_HeapDestroy(%rip) diff --git a/libc/nt/kernel32/HeapFree.S b/libc/nt/kernel32/HeapFree.S index 87a2e6c64..9ce184a5e 100644 --- a/libc/nt/kernel32/HeapFree.S +++ b/libc/nt/kernel32/HeapFree.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapFree,HeapFree,847 .text.windows + .ftrace1 HeapFree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_HeapFree(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/HeapReAlloc.S b/libc/nt/kernel32/HeapReAlloc.S index c80c46b86..b60ff96d8 100644 --- a/libc/nt/kernel32/HeapReAlloc.S +++ b/libc/nt/kernel32/HeapReAlloc.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_HeapReAlloc,HeapReAlloc,0 .text.windows + .ftrace1 HeapReAlloc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_HeapReAlloc(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/InitializeCriticalSection.S b/libc/nt/kernel32/InitializeCriticalSection.S index 0ab09f4b9..78105a0b3 100644 --- a/libc/nt/kernel32/InitializeCriticalSection.S +++ b/libc/nt/kernel32/InitializeCriticalSection.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_InitializeCriticalSection,InitializeCriticalSection,0 .text.windows + .ftrace1 InitializeCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_InitializeCriticalSection(%rip) diff --git a/libc/nt/kernel32/InitializeCriticalSectionAndSpinCount.S b/libc/nt/kernel32/InitializeCriticalSectionAndSpinCount.S index 21a73791e..c2cbeb9b6 100644 --- a/libc/nt/kernel32/InitializeCriticalSectionAndSpinCount.S +++ b/libc/nt/kernel32/InitializeCriticalSectionAndSpinCount.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_InitializeCriticalSectionAndSpinCount,InitializeCriticalSectionAndSpinCount,0 .text.windows + .ftrace1 InitializeCriticalSectionAndSpinCount: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_InitializeCriticalSectionAndSpinCount(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/InitializeProcThreadAttributeList.S b/libc/nt/kernel32/InitializeProcThreadAttributeList.S index 57a3777ae..3eb2cd031 100644 --- a/libc/nt/kernel32/InitializeProcThreadAttributeList.S +++ b/libc/nt/kernel32/InitializeProcThreadAttributeList.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_InitializeProcThreadAttributeList,InitializeProcThreadAttributeList,0 .text.windows + .ftrace1 InitializeProcThreadAttributeList: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_InitializeProcThreadAttributeList(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/InitializeSRWLock.S b/libc/nt/kernel32/InitializeSRWLock.S index b488a2c14..e9d6a15c9 100644 --- a/libc/nt/kernel32/InitializeSRWLock.S +++ b/libc/nt/kernel32/InitializeSRWLock.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_InitializeSRWLock,InitializeSRWLock,0 .text.windows + .ftrace1 InitializeSRWLock: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_InitializeSRWLock(%rip) diff --git a/libc/nt/kernel32/LeaveCriticalSection.S b/libc/nt/kernel32/LeaveCriticalSection.S index f36b6a327..8eade8bf7 100644 --- a/libc/nt/kernel32/LeaveCriticalSection.S +++ b/libc/nt/kernel32/LeaveCriticalSection.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LeaveCriticalSection,LeaveCriticalSection,0 .text.windows + .ftrace1 LeaveCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_LeaveCriticalSection(%rip) diff --git a/libc/nt/kernel32/LoadLibraryExW.S b/libc/nt/kernel32/LoadLibraryExW.S index 6831394a9..12a1445ca 100644 --- a/libc/nt/kernel32/LoadLibraryExW.S +++ b/libc/nt/kernel32/LoadLibraryExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LoadLibraryExW,LoadLibraryExW,0 .text.windows + .ftrace1 LoadLibraryEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LoadLibraryExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/LoadLibraryW.S b/libc/nt/kernel32/LoadLibraryW.S index a4a2ec5d8..69071d3ad 100644 --- a/libc/nt/kernel32/LoadLibraryW.S +++ b/libc/nt/kernel32/LoadLibraryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LoadLibraryW,LoadLibraryW,0 .text.windows + .ftrace1 LoadLibrary: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_LoadLibraryW(%rip) diff --git a/libc/nt/kernel32/LoadResource.S b/libc/nt/kernel32/LoadResource.S index c6687b23c..fa16ce468 100644 --- a/libc/nt/kernel32/LoadResource.S +++ b/libc/nt/kernel32/LoadResource.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LoadResource,LoadResource,0 .text.windows + .ftrace1 LoadResource: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LoadResource(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/LocalFree.S b/libc/nt/kernel32/LocalFree.S index 6ef88d2a2..ffad41bef 100644 --- a/libc/nt/kernel32/LocalFree.S +++ b/libc/nt/kernel32/LocalFree.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LocalFree,LocalFree,0 .text.windows + .ftrace1 LocalFree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_LocalFree(%rip) diff --git a/libc/nt/kernel32/LockFile.S b/libc/nt/kernel32/LockFile.S index cbd40d764..79264e092 100644 --- a/libc/nt/kernel32/LockFile.S +++ b/libc/nt/kernel32/LockFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LockFile,LockFile,0 .text.windows + .ftrace1 LockFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LockFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/LockFileEx.S b/libc/nt/kernel32/LockFileEx.S index 78f1b118a..288c8bffb 100644 --- a/libc/nt/kernel32/LockFileEx.S +++ b/libc/nt/kernel32/LockFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LockFileEx,LockFileEx,0 .text.windows + .ftrace1 __LockFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LockFileEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/LockResource.S b/libc/nt/kernel32/LockResource.S index 57dc5dea4..7dda08d13 100644 --- a/libc/nt/kernel32/LockResource.S +++ b/libc/nt/kernel32/LockResource.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_LockResource,LockResource,0 .text.windows + .ftrace1 LockResource: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_LockResource(%rip) diff --git a/libc/nt/kernel32/MapViewOfFileEx.S b/libc/nt/kernel32/MapViewOfFileEx.S index 2622a9683..25e926aa7 100644 --- a/libc/nt/kernel32/MapViewOfFileEx.S +++ b/libc/nt/kernel32/MapViewOfFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_MapViewOfFileEx,MapViewOfFileEx,0 .text.windows + .ftrace1 __MapViewOfFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MapViewOfFileEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/MapViewOfFileExNuma.S b/libc/nt/kernel32/MapViewOfFileExNuma.S index d5b1d14f7..0ed71f8a6 100644 --- a/libc/nt/kernel32/MapViewOfFileExNuma.S +++ b/libc/nt/kernel32/MapViewOfFileExNuma.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_MapViewOfFileExNuma,MapViewOfFileExNuma,0 .text.windows + .ftrace1 __MapViewOfFileExNuma: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MapViewOfFileExNuma(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/MoveFileExW.S b/libc/nt/kernel32/MoveFileExW.S index 88ee5832c..9630d54a1 100644 --- a/libc/nt/kernel32/MoveFileExW.S +++ b/libc/nt/kernel32/MoveFileExW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_MoveFileExW,MoveFileExW,0 .text.windows + .ftrace1 __MoveFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MoveFileExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/MoveFileW.S b/libc/nt/kernel32/MoveFileW.S index 542554c0b..68f877568 100644 --- a/libc/nt/kernel32/MoveFileW.S +++ b/libc/nt/kernel32/MoveFileW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_MoveFileW,MoveFileW,1000 .text.windows + .ftrace1 MoveFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MoveFileW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/MultiByteToWideChar.S b/libc/nt/kernel32/MultiByteToWideChar.S index 0b1fbd1f1..0d592311a 100644 --- a/libc/nt/kernel32/MultiByteToWideChar.S +++ b/libc/nt/kernel32/MultiByteToWideChar.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_MultiByteToWideChar,MultiByteToWideChar,0 .text.windows + .ftrace1 MultiByteToWideChar: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MultiByteToWideChar(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/OfferVirtualMemory.S b/libc/nt/kernel32/OfferVirtualMemory.S index 24e8c56f9..753b3553a 100644 --- a/libc/nt/kernel32/OfferVirtualMemory.S +++ b/libc/nt/kernel32/OfferVirtualMemory.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_OfferVirtualMemory,OfferVirtualMemory,0 .text.windows + .ftrace1 OfferVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_OfferVirtualMemory(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/OpenProcess.S b/libc/nt/kernel32/OpenProcess.S index cb7230331..fac0953be 100644 --- a/libc/nt/kernel32/OpenProcess.S +++ b/libc/nt/kernel32/OpenProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_OpenProcess,OpenProcess,0 .text.windows + .ftrace1 __OpenProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_OpenProcess(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/OpenThread.S b/libc/nt/kernel32/OpenThread.S index e6c993272..618c466d0 100644 --- a/libc/nt/kernel32/OpenThread.S +++ b/libc/nt/kernel32/OpenThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_OpenThread,OpenThread,0 .text.windows + .ftrace1 OpenThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_OpenThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/PeekConsoleInputW.S b/libc/nt/kernel32/PeekConsoleInputW.S index 014fd84b9..4917874d9 100644 --- a/libc/nt/kernel32/PeekConsoleInputW.S +++ b/libc/nt/kernel32/PeekConsoleInputW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PeekConsoleInputW,PeekConsoleInputW,0 .text.windows + .ftrace1 PeekConsoleInput: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PeekConsoleInputW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/PeekNamedPipe.S b/libc/nt/kernel32/PeekNamedPipe.S index 9055b1729..6c4140e6a 100644 --- a/libc/nt/kernel32/PeekNamedPipe.S +++ b/libc/nt/kernel32/PeekNamedPipe.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PeekNamedPipe,PeekNamedPipe,0 .text.windows + .ftrace1 PeekNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PeekNamedPipe(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/PostQueuedCompletionStatus.S b/libc/nt/kernel32/PostQueuedCompletionStatus.S index 2b02227d7..3ef1eb7b8 100644 --- a/libc/nt/kernel32/PostQueuedCompletionStatus.S +++ b/libc/nt/kernel32/PostQueuedCompletionStatus.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PostQueuedCompletionStatus,PostQueuedCompletionStatus,0 .text.windows + .ftrace1 PostQueuedCompletionStatus: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PostQueuedCompletionStatus(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/PrefetchVirtualMemory.S b/libc/nt/kernel32/PrefetchVirtualMemory.S index af7355c4c..b7e37dfcc 100644 --- a/libc/nt/kernel32/PrefetchVirtualMemory.S +++ b/libc/nt/kernel32/PrefetchVirtualMemory.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PrefetchVirtualMemory,PrefetchVirtualMemory,0 .text.windows + .ftrace1 PrefetchVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PrefetchVirtualMemory(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/Process32FirstW.S b/libc/nt/kernel32/Process32FirstW.S index f78f85d28..f4a140f88 100644 --- a/libc/nt/kernel32/Process32FirstW.S +++ b/libc/nt/kernel32/Process32FirstW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_Process32FirstW,Process32FirstW,0 .text.windows + .ftrace1 Process32First: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_Process32FirstW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/Process32NextW.S b/libc/nt/kernel32/Process32NextW.S index 70e233773..fc58385bc 100644 --- a/libc/nt/kernel32/Process32NextW.S +++ b/libc/nt/kernel32/Process32NextW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_Process32NextW,Process32NextW,0 .text.windows + .ftrace1 Process32Next: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_Process32NextW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/PulseEvent.S b/libc/nt/kernel32/PulseEvent.S index 43a4a7e8b..7d73245d4 100644 --- a/libc/nt/kernel32/PulseEvent.S +++ b/libc/nt/kernel32/PulseEvent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PulseEvent,PulseEvent,0 .text.windows + .ftrace1 PulseEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_PulseEvent(%rip) diff --git a/libc/nt/kernel32/PurgeComm.S b/libc/nt/kernel32/PurgeComm.S index 7f5d84ba2..70cb546fd 100644 --- a/libc/nt/kernel32/PurgeComm.S +++ b/libc/nt/kernel32/PurgeComm.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_PurgeComm,PurgeComm,0 .text.windows + .ftrace1 PurgeComm: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PurgeComm(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/QueryPerformanceCounter.S b/libc/nt/kernel32/QueryPerformanceCounter.S index 0dc1474ab..e0af81fe7 100644 --- a/libc/nt/kernel32/QueryPerformanceCounter.S +++ b/libc/nt/kernel32/QueryPerformanceCounter.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_QueryPerformanceCounter,QueryPerformanceCounter,1098 .text.windows + .ftrace1 QueryPerformanceCounter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_QueryPerformanceCounter(%rip) diff --git a/libc/nt/kernel32/QueryPerformanceFrequency.S b/libc/nt/kernel32/QueryPerformanceFrequency.S index 36c1dd561..b0f90b056 100644 --- a/libc/nt/kernel32/QueryPerformanceFrequency.S +++ b/libc/nt/kernel32/QueryPerformanceFrequency.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_QueryPerformanceFrequency,QueryPerformanceFrequency,1099 .text.windows + .ftrace1 QueryPerformanceFrequency: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_QueryPerformanceFrequency(%rip) diff --git a/libc/nt/kernel32/ReOpenFile.S b/libc/nt/kernel32/ReOpenFile.S index f555d7c98..350b1ccca 100644 --- a/libc/nt/kernel32/ReOpenFile.S +++ b/libc/nt/kernel32/ReOpenFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReOpenFile,ReOpenFile,0 .text.windows + .ftrace1 __ReOpenFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReOpenFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadConsoleInputW.S b/libc/nt/kernel32/ReadConsoleInputW.S index 2777ee2f1..cc9785430 100644 --- a/libc/nt/kernel32/ReadConsoleInputW.S +++ b/libc/nt/kernel32/ReadConsoleInputW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadConsoleInputW,ReadConsoleInputW,0 .text.windows + .ftrace1 ReadConsoleInput: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadConsoleInputW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadConsoleOutputAttribute.S b/libc/nt/kernel32/ReadConsoleOutputAttribute.S index 7b3cbace3..ef367a497 100644 --- a/libc/nt/kernel32/ReadConsoleOutputAttribute.S +++ b/libc/nt/kernel32/ReadConsoleOutputAttribute.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadConsoleOutputAttribute,ReadConsoleOutputAttribute,0 .text.windows + .ftrace1 ReadConsoleOutputAttribute: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadConsoleOutputAttribute(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadConsoleOutputCharacterW.S b/libc/nt/kernel32/ReadConsoleOutputCharacterW.S index 657338c7d..a0ecfe28a 100644 --- a/libc/nt/kernel32/ReadConsoleOutputCharacterW.S +++ b/libc/nt/kernel32/ReadConsoleOutputCharacterW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadConsoleOutputCharacterW,ReadConsoleOutputCharacterW,0 .text.windows + .ftrace1 ReadConsoleOutputCharacter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadConsoleOutputCharacterW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadConsoleOutputW.S b/libc/nt/kernel32/ReadConsoleOutputW.S index 5878f2d9a..764654351 100644 --- a/libc/nt/kernel32/ReadConsoleOutputW.S +++ b/libc/nt/kernel32/ReadConsoleOutputW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadConsoleOutputW,ReadConsoleOutputW,0 .text.windows + .ftrace1 ReadConsoleOutput: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadConsoleOutputW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadConsoleW.S b/libc/nt/kernel32/ReadConsoleW.S index 7bf3db848..0e53f232c 100644 --- a/libc/nt/kernel32/ReadConsoleW.S +++ b/libc/nt/kernel32/ReadConsoleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadConsoleW,ReadConsoleW,0 .text.windows + .ftrace1 ReadConsole: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadConsoleW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadFile.S b/libc/nt/kernel32/ReadFile.S index 72e55b917..984487b19 100644 --- a/libc/nt/kernel32/ReadFile.S +++ b/libc/nt/kernel32/ReadFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadFile,ReadFile,0 .text.windows + .ftrace1 ReadFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadFileEx.S b/libc/nt/kernel32/ReadFileEx.S index a7c2e46b7..bc0199f89 100644 --- a/libc/nt/kernel32/ReadFileEx.S +++ b/libc/nt/kernel32/ReadFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadFileEx,ReadFileEx,0 .text.windows + .ftrace1 ReadFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadFileEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReadFileScatter.S b/libc/nt/kernel32/ReadFileScatter.S index eb293d347..419cf7794 100644 --- a/libc/nt/kernel32/ReadFileScatter.S +++ b/libc/nt/kernel32/ReadFileScatter.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReadFileScatter,ReadFileScatter,0 .text.windows + .ftrace1 ReadFileScatter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReadFileScatter(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/RegisterWaitForSingleObject.S b/libc/nt/kernel32/RegisterWaitForSingleObject.S index 753dd5572..44bb5d379 100644 --- a/libc/nt/kernel32/RegisterWaitForSingleObject.S +++ b/libc/nt/kernel32/RegisterWaitForSingleObject.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_RegisterWaitForSingleObject,RegisterWaitForSingleObject,1191 .text.windows + .ftrace1 RegisterWaitForSingleObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RegisterWaitForSingleObject(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/ReleaseMutex.S b/libc/nt/kernel32/ReleaseMutex.S index 602543dc0..1b4e97fb7 100644 --- a/libc/nt/kernel32/ReleaseMutex.S +++ b/libc/nt/kernel32/ReleaseMutex.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReleaseMutex,ReleaseMutex,0 .text.windows + .ftrace1 ReleaseMutex: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ReleaseMutex(%rip) diff --git a/libc/nt/kernel32/ReleaseSRWLockExclusive.S b/libc/nt/kernel32/ReleaseSRWLockExclusive.S index d5e7c834e..c1244c811 100644 --- a/libc/nt/kernel32/ReleaseSRWLockExclusive.S +++ b/libc/nt/kernel32/ReleaseSRWLockExclusive.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReleaseSRWLockExclusive,ReleaseSRWLockExclusive,0 .text.windows + .ftrace1 ReleaseSRWLockExclusive: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ReleaseSRWLockExclusive(%rip) diff --git a/libc/nt/kernel32/ReleaseSRWLockShared.S b/libc/nt/kernel32/ReleaseSRWLockShared.S index 5647e1d74..cdfbe2072 100644 --- a/libc/nt/kernel32/ReleaseSRWLockShared.S +++ b/libc/nt/kernel32/ReleaseSRWLockShared.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReleaseSRWLockShared,ReleaseSRWLockShared,0 .text.windows + .ftrace1 ReleaseSRWLockShared: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ReleaseSRWLockShared(%rip) diff --git a/libc/nt/kernel32/ReleaseSemaphore.S b/libc/nt/kernel32/ReleaseSemaphore.S index 946e826aa..eaf015273 100644 --- a/libc/nt/kernel32/ReleaseSemaphore.S +++ b/libc/nt/kernel32/ReleaseSemaphore.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ReleaseSemaphore,ReleaseSemaphore,0 .text.windows + .ftrace1 ReleaseSemaphore: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReleaseSemaphore(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/RemoveDirectoryW.S b/libc/nt/kernel32/RemoveDirectoryW.S index 83dba2fcb..c022485ab 100644 --- a/libc/nt/kernel32/RemoveDirectoryW.S +++ b/libc/nt/kernel32/RemoveDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_RemoveDirectoryW,RemoveDirectoryW,0 .text.windows + .ftrace1 __RemoveDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RemoveDirectoryW(%rip) diff --git a/libc/nt/kernel32/RemoveVectoredContinueHandler.S b/libc/nt/kernel32/RemoveVectoredContinueHandler.S index 4e845b99e..15e516e70 100644 --- a/libc/nt/kernel32/RemoveVectoredContinueHandler.S +++ b/libc/nt/kernel32/RemoveVectoredContinueHandler.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_RemoveVectoredContinueHandler,RemoveVectoredContinueHandler,0 .text.windows + .ftrace1 RemoveVectoredContinueHandler: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RemoveVectoredContinueHandler(%rip) diff --git a/libc/nt/kernel32/RemoveVectoredExceptionHandler.S b/libc/nt/kernel32/RemoveVectoredExceptionHandler.S index 13b9c9f66..83465045c 100644 --- a/libc/nt/kernel32/RemoveVectoredExceptionHandler.S +++ b/libc/nt/kernel32/RemoveVectoredExceptionHandler.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_RemoveVectoredExceptionHandler,RemoveVectoredExceptionHandler,0 .text.windows + .ftrace1 RemoveVectoredExceptionHandler: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RemoveVectoredExceptionHandler(%rip) diff --git a/libc/nt/kernel32/ResetEvent.S b/libc/nt/kernel32/ResetEvent.S index c529d0b7b..ada56119f 100644 --- a/libc/nt/kernel32/ResetEvent.S +++ b/libc/nt/kernel32/ResetEvent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_ResetEvent,ResetEvent,0 .text.windows + .ftrace1 ResetEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ResetEvent(%rip) diff --git a/libc/nt/kernel32/SetConsoleActiveScreenBuffer.S b/libc/nt/kernel32/SetConsoleActiveScreenBuffer.S index 57622b5ce..f5f6bd7bb 100644 --- a/libc/nt/kernel32/SetConsoleActiveScreenBuffer.S +++ b/libc/nt/kernel32/SetConsoleActiveScreenBuffer.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleActiveScreenBuffer,SetConsoleActiveScreenBuffer,0 .text.windows + .ftrace1 SetConsoleActiveScreenBuffer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetConsoleActiveScreenBuffer(%rip) diff --git a/libc/nt/kernel32/SetConsoleCP.S b/libc/nt/kernel32/SetConsoleCP.S index 7b0b22cf1..79c340f13 100644 --- a/libc/nt/kernel32/SetConsoleCP.S +++ b/libc/nt/kernel32/SetConsoleCP.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleCP,SetConsoleCP,0 .text.windows + .ftrace1 SetConsoleCP: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetConsoleCP(%rip) diff --git a/libc/nt/kernel32/SetConsoleCtrlHandler.S b/libc/nt/kernel32/SetConsoleCtrlHandler.S index 359bf59fb..b48ba03a2 100644 --- a/libc/nt/kernel32/SetConsoleCtrlHandler.S +++ b/libc/nt/kernel32/SetConsoleCtrlHandler.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleCtrlHandler,SetConsoleCtrlHandler,0 .text.windows + .ftrace1 SetConsoleCtrlHandler: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleCtrlHandler(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleCursorInfo.S b/libc/nt/kernel32/SetConsoleCursorInfo.S index 535284025..a31bcbca4 100644 --- a/libc/nt/kernel32/SetConsoleCursorInfo.S +++ b/libc/nt/kernel32/SetConsoleCursorInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleCursorInfo,SetConsoleCursorInfo,0 .text.windows + .ftrace1 SetConsoleCursorInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleCursorInfo(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleCursorPosition.S b/libc/nt/kernel32/SetConsoleCursorPosition.S index e0c870894..fbbe6021a 100644 --- a/libc/nt/kernel32/SetConsoleCursorPosition.S +++ b/libc/nt/kernel32/SetConsoleCursorPosition.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleCursorPosition,SetConsoleCursorPosition,0 .text.windows + .ftrace1 SetConsoleCursorPosition: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleCursorPosition(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleMode.S b/libc/nt/kernel32/SetConsoleMode.S index ab05d9002..8e2cf8630 100644 --- a/libc/nt/kernel32/SetConsoleMode.S +++ b/libc/nt/kernel32/SetConsoleMode.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleMode,SetConsoleMode,0 .text.windows + .ftrace1 SetConsoleMode: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleMode(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleOutputCP.S b/libc/nt/kernel32/SetConsoleOutputCP.S index e4b5d35bb..85afda97e 100644 --- a/libc/nt/kernel32/SetConsoleOutputCP.S +++ b/libc/nt/kernel32/SetConsoleOutputCP.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleOutputCP,SetConsoleOutputCP,0 .text.windows + .ftrace1 SetConsoleOutputCP: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetConsoleOutputCP(%rip) diff --git a/libc/nt/kernel32/SetConsoleScreenBufferInfoEx.S b/libc/nt/kernel32/SetConsoleScreenBufferInfoEx.S index 726fb7060..47ef74401 100644 --- a/libc/nt/kernel32/SetConsoleScreenBufferInfoEx.S +++ b/libc/nt/kernel32/SetConsoleScreenBufferInfoEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleScreenBufferInfoEx,SetConsoleScreenBufferInfoEx,0 .text.windows + .ftrace1 SetConsoleScreenBufferInfoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleScreenBufferInfoEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleScreenBufferSize.S b/libc/nt/kernel32/SetConsoleScreenBufferSize.S index fb47b7e78..b70b13242 100644 --- a/libc/nt/kernel32/SetConsoleScreenBufferSize.S +++ b/libc/nt/kernel32/SetConsoleScreenBufferSize.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleScreenBufferSize,SetConsoleScreenBufferSize,0 .text.windows + .ftrace1 SetConsoleScreenBufferSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleScreenBufferSize(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetConsoleTitleW.S b/libc/nt/kernel32/SetConsoleTitleW.S index 3a76f0990..77aaec600 100644 --- a/libc/nt/kernel32/SetConsoleTitleW.S +++ b/libc/nt/kernel32/SetConsoleTitleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleTitleW,SetConsoleTitleW,0 .text.windows + .ftrace1 SetConsoleTitle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetConsoleTitleW(%rip) diff --git a/libc/nt/kernel32/SetConsoleWindowInfo.S b/libc/nt/kernel32/SetConsoleWindowInfo.S index b297b2dec..0c5162f25 100644 --- a/libc/nt/kernel32/SetConsoleWindowInfo.S +++ b/libc/nt/kernel32/SetConsoleWindowInfo.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetConsoleWindowInfo,SetConsoleWindowInfo,0 .text.windows + .ftrace1 SetConsoleWindowInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetConsoleWindowInfo(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetCriticalSectionSpinCount.S b/libc/nt/kernel32/SetCriticalSectionSpinCount.S index 68cbd6ab4..4027d55bc 100644 --- a/libc/nt/kernel32/SetCriticalSectionSpinCount.S +++ b/libc/nt/kernel32/SetCriticalSectionSpinCount.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetCriticalSectionSpinCount,SetCriticalSectionSpinCount,0 .text.windows + .ftrace1 SetCriticalSectionSpinCount: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetCriticalSectionSpinCount(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetCurrentDirectoryW.S b/libc/nt/kernel32/SetCurrentDirectoryW.S index f80eb98d7..724e3d8a9 100644 --- a/libc/nt/kernel32/SetCurrentDirectoryW.S +++ b/libc/nt/kernel32/SetCurrentDirectoryW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetCurrentDirectoryW,SetCurrentDirectoryW,0 .text.windows + .ftrace1 __SetCurrentDirectory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetCurrentDirectoryW(%rip) diff --git a/libc/nt/kernel32/SetDefaultDllDirectories.S b/libc/nt/kernel32/SetDefaultDllDirectories.S index d833cb3a3..9b47f9b11 100644 --- a/libc/nt/kernel32/SetDefaultDllDirectories.S +++ b/libc/nt/kernel32/SetDefaultDllDirectories.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetDefaultDllDirectories,SetDefaultDllDirectories,0 .text.windows + .ftrace1 SetDefaultDllDirectories: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetDefaultDllDirectories(%rip) diff --git a/libc/nt/kernel32/SetEndOfFile.S b/libc/nt/kernel32/SetEndOfFile.S index b8f056961..c86a3fe3a 100644 --- a/libc/nt/kernel32/SetEndOfFile.S +++ b/libc/nt/kernel32/SetEndOfFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetEndOfFile,SetEndOfFile,0 .text.windows + .ftrace1 SetEndOfFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetEndOfFile(%rip) diff --git a/libc/nt/kernel32/SetEnvironmentVariableW.S b/libc/nt/kernel32/SetEnvironmentVariableW.S index 8634de83e..36dbb4170 100644 --- a/libc/nt/kernel32/SetEnvironmentVariableW.S +++ b/libc/nt/kernel32/SetEnvironmentVariableW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetEnvironmentVariableW,SetEnvironmentVariableW,0 .text.windows + .ftrace1 SetEnvironmentVariable: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetEnvironmentVariableW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetErrorMode.S b/libc/nt/kernel32/SetErrorMode.S index daae2709f..42e73979a 100644 --- a/libc/nt/kernel32/SetErrorMode.S +++ b/libc/nt/kernel32/SetErrorMode.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetErrorMode,SetErrorMode,0 .text.windows + .ftrace1 SetErrorMode: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetErrorMode(%rip) diff --git a/libc/nt/kernel32/SetEvent.S b/libc/nt/kernel32/SetEvent.S index 811eca593..57dd27b25 100644 --- a/libc/nt/kernel32/SetEvent.S +++ b/libc/nt/kernel32/SetEvent.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetEvent,SetEvent,0 .text.windows + .ftrace1 SetEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetEvent(%rip) diff --git a/libc/nt/kernel32/SetFileAttributesW.S b/libc/nt/kernel32/SetFileAttributesW.S index 3b1dee561..8d885e9df 100644 --- a/libc/nt/kernel32/SetFileAttributesW.S +++ b/libc/nt/kernel32/SetFileAttributesW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFileAttributesW,SetFileAttributesW,0 .text.windows + .ftrace1 SetFileAttributes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFileAttributesW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetFileCompletionNotificationModes.S b/libc/nt/kernel32/SetFileCompletionNotificationModes.S index 71350e88a..46079409e 100644 --- a/libc/nt/kernel32/SetFileCompletionNotificationModes.S +++ b/libc/nt/kernel32/SetFileCompletionNotificationModes.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFileCompletionNotificationModes,SetFileCompletionNotificationModes,1318 .text.windows + .ftrace1 SetFileCompletionNotificationModes: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFileCompletionNotificationModes(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetFilePointer.S b/libc/nt/kernel32/SetFilePointer.S index 45ed8f0b8..c3be9e0dd 100644 --- a/libc/nt/kernel32/SetFilePointer.S +++ b/libc/nt/kernel32/SetFilePointer.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFilePointer,SetFilePointer,0 .text.windows + .ftrace1 SetFilePointer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFilePointer(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetFilePointerEx.S b/libc/nt/kernel32/SetFilePointerEx.S index 00a85ed03..d0f5b1350 100644 --- a/libc/nt/kernel32/SetFilePointerEx.S +++ b/libc/nt/kernel32/SetFilePointerEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFilePointerEx,SetFilePointerEx,0 .text.windows + .ftrace1 SetFilePointerEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFilePointerEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetFileTime.S b/libc/nt/kernel32/SetFileTime.S index 4a321dcf6..f0b8669e2 100644 --- a/libc/nt/kernel32/SetFileTime.S +++ b/libc/nt/kernel32/SetFileTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFileTime,SetFileTime,0 .text.windows + .ftrace1 SetFileTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFileTime(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetFileValidData.S b/libc/nt/kernel32/SetFileValidData.S index 987fe4448..0954a7695 100644 --- a/libc/nt/kernel32/SetFileValidData.S +++ b/libc/nt/kernel32/SetFileValidData.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetFileValidData,SetFileValidData,0 .text.windows + .ftrace1 SetFileValidData: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetFileValidData(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetHandleCount.S b/libc/nt/kernel32/SetHandleCount.S index 3a7018aa0..f8c95913e 100644 --- a/libc/nt/kernel32/SetHandleCount.S +++ b/libc/nt/kernel32/SetHandleCount.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetHandleCount,SetHandleCount,0 .text.windows + .ftrace1 SetHandleCount: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetHandleCount(%rip) diff --git a/libc/nt/kernel32/SetHandleInformation.S b/libc/nt/kernel32/SetHandleInformation.S index 608be417a..0d4d2f3de 100644 --- a/libc/nt/kernel32/SetHandleInformation.S +++ b/libc/nt/kernel32/SetHandleInformation.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetHandleInformation,SetHandleInformation,0 .text.windows + .ftrace1 SetHandleInformation: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetHandleInformation(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetLastError.S b/libc/nt/kernel32/SetLastError.S index 7e35dfb07..9c0b1ac68 100644 --- a/libc/nt/kernel32/SetLastError.S +++ b/libc/nt/kernel32/SetLastError.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetLastError,SetLastError,0 .text.windows + .ftrace1 SetLastError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetLastError(%rip) diff --git a/libc/nt/kernel32/SetNamedPipeHandleState.S b/libc/nt/kernel32/SetNamedPipeHandleState.S index 5ec392a42..56052f398 100644 --- a/libc/nt/kernel32/SetNamedPipeHandleState.S +++ b/libc/nt/kernel32/SetNamedPipeHandleState.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetNamedPipeHandleState,SetNamedPipeHandleState,0 .text.windows + .ftrace1 SetNamedPipeHandleState: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetNamedPipeHandleState(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetPriorityClass.S b/libc/nt/kernel32/SetPriorityClass.S index d7d91bc9b..8e89bcad5 100644 --- a/libc/nt/kernel32/SetPriorityClass.S +++ b/libc/nt/kernel32/SetPriorityClass.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetPriorityClass,SetPriorityClass,0 .text.windows + .ftrace1 SetPriorityClass: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetPriorityClass(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetProcessAffinityMask.S b/libc/nt/kernel32/SetProcessAffinityMask.S index 7d2a28a85..1198d54e5 100644 --- a/libc/nt/kernel32/SetProcessAffinityMask.S +++ b/libc/nt/kernel32/SetProcessAffinityMask.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetProcessAffinityMask,SetProcessAffinityMask,1347 .text.windows + .ftrace1 SetProcessAffinityMask: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetProcessAffinityMask(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetProcessPriorityBoost.S b/libc/nt/kernel32/SetProcessPriorityBoost.S index 9b037446c..bdc8283bc 100644 --- a/libc/nt/kernel32/SetProcessPriorityBoost.S +++ b/libc/nt/kernel32/SetProcessPriorityBoost.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetProcessPriorityBoost,SetProcessPriorityBoost,0 .text.windows + .ftrace1 SetProcessPriorityBoost: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetProcessPriorityBoost(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetProcessWorkingSetSize.S b/libc/nt/kernel32/SetProcessWorkingSetSize.S index 3ade68c32..b01b2e084 100644 --- a/libc/nt/kernel32/SetProcessWorkingSetSize.S +++ b/libc/nt/kernel32/SetProcessWorkingSetSize.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetProcessWorkingSetSize,SetProcessWorkingSetSize,1356 .text.windows + .ftrace1 SetProcessWorkingSetSize: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetProcessWorkingSetSize(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetProcessWorkingSetSizeEx.S b/libc/nt/kernel32/SetProcessWorkingSetSizeEx.S index 42fa71206..72d529b5c 100644 --- a/libc/nt/kernel32/SetProcessWorkingSetSizeEx.S +++ b/libc/nt/kernel32/SetProcessWorkingSetSizeEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetProcessWorkingSetSizeEx,SetProcessWorkingSetSizeEx,0 .text.windows + .ftrace1 SetProcessWorkingSetSizeEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetProcessWorkingSetSizeEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetStdHandle.S b/libc/nt/kernel32/SetStdHandle.S index 96694d3bc..07e418270 100644 --- a/libc/nt/kernel32/SetStdHandle.S +++ b/libc/nt/kernel32/SetStdHandle.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetStdHandle,SetStdHandle,0 .text.windows + .ftrace1 SetStdHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetStdHandle(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetThreadAffinityMask.S b/libc/nt/kernel32/SetThreadAffinityMask.S index 16ae18aac..f14331d94 100644 --- a/libc/nt/kernel32/SetThreadAffinityMask.S +++ b/libc/nt/kernel32/SetThreadAffinityMask.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetThreadAffinityMask,SetThreadAffinityMask,1369 .text.windows + .ftrace1 SetThreadAffinityMask: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetThreadAffinityMask(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetThreadPriority.S b/libc/nt/kernel32/SetThreadPriority.S index daa0faa8a..ccf5f2ce2 100644 --- a/libc/nt/kernel32/SetThreadPriority.S +++ b/libc/nt/kernel32/SetThreadPriority.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetThreadPriority,SetThreadPriority,0 .text.windows + .ftrace1 SetThreadPriority: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetThreadPriority(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetThreadPriorityBoost.S b/libc/nt/kernel32/SetThreadPriorityBoost.S index e7fed65cf..704450959 100644 --- a/libc/nt/kernel32/SetThreadPriorityBoost.S +++ b/libc/nt/kernel32/SetThreadPriorityBoost.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetThreadPriorityBoost,SetThreadPriorityBoost,0 .text.windows + .ftrace1 SetThreadPriorityBoost: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetThreadPriorityBoost(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SetUnhandledExceptionFilter.S b/libc/nt/kernel32/SetUnhandledExceptionFilter.S index ef9e7c980..1c7e9b87a 100644 --- a/libc/nt/kernel32/SetUnhandledExceptionFilter.S +++ b/libc/nt/kernel32/SetUnhandledExceptionFilter.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetUnhandledExceptionFilter,SetUnhandledExceptionFilter,0 .text.windows + .ftrace1 SetUnhandledExceptionFilter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetUnhandledExceptionFilter(%rip) diff --git a/libc/nt/kernel32/SetWaitableTimer.S b/libc/nt/kernel32/SetWaitableTimer.S index cae79a0b4..0aa51b5de 100644 --- a/libc/nt/kernel32/SetWaitableTimer.S +++ b/libc/nt/kernel32/SetWaitableTimer.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SetWaitableTimer,SetWaitableTimer,0 .text.windows + .ftrace1 SetWaitableTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWaitableTimer(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/Sleep.S b/libc/nt/kernel32/Sleep.S index ec1455ffd..42dc69bd4 100644 --- a/libc/nt/kernel32/Sleep.S +++ b/libc/nt/kernel32/Sleep.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_Sleep,Sleep,0 .text.windows + .ftrace1 Sleep: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_Sleep(%rip) diff --git a/libc/nt/kernel32/SleepEx.S b/libc/nt/kernel32/SleepEx.S index 14326d987..0a936a103 100644 --- a/libc/nt/kernel32/SleepEx.S +++ b/libc/nt/kernel32/SleepEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SleepEx,SleepEx,0 .text.windows + .ftrace1 SleepEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SleepEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/SuspendThread.S b/libc/nt/kernel32/SuspendThread.S index 50c3bac40..0e3036e42 100644 --- a/libc/nt/kernel32/SuspendThread.S +++ b/libc/nt/kernel32/SuspendThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SuspendThread,SuspendThread,0 .text.windows + .ftrace1 SuspendThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SuspendThread(%rip) diff --git a/libc/nt/kernel32/SystemTimeToFileTime.S b/libc/nt/kernel32/SystemTimeToFileTime.S index 84a2874db..3d0e291d7 100644 --- a/libc/nt/kernel32/SystemTimeToFileTime.S +++ b/libc/nt/kernel32/SystemTimeToFileTime.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_SystemTimeToFileTime,SystemTimeToFileTime,0 .text.windows + .ftrace1 SystemTimeToFileTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SystemTimeToFileTime(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TerminateProcess.S b/libc/nt/kernel32/TerminateProcess.S index 08c7ba0d2..b6be5ede0 100644 --- a/libc/nt/kernel32/TerminateProcess.S +++ b/libc/nt/kernel32/TerminateProcess.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TerminateProcess,TerminateProcess,0 .text.windows + .ftrace1 __TerminateProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TerminateProcess(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TerminateThread.S b/libc/nt/kernel32/TerminateThread.S index 6171e32ba..35e9a61b1 100644 --- a/libc/nt/kernel32/TerminateThread.S +++ b/libc/nt/kernel32/TerminateThread.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TerminateThread,TerminateThread,0 .text.windows + .ftrace1 TerminateThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TerminateThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TlsAlloc.S b/libc/nt/kernel32/TlsAlloc.S index d98c32ffb..2049e409b 100644 --- a/libc/nt/kernel32/TlsAlloc.S +++ b/libc/nt/kernel32/TlsAlloc.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TlsAlloc,TlsAlloc,0 .text.windows + .ftrace1 TlsAlloc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_TlsAlloc(%rip) leave diff --git a/libc/nt/kernel32/TlsFree.S b/libc/nt/kernel32/TlsFree.S index b4d3b7f82..3db8ae1ec 100644 --- a/libc/nt/kernel32/TlsFree.S +++ b/libc/nt/kernel32/TlsFree.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TlsFree,TlsFree,0 .text.windows + .ftrace1 TlsFree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TlsFree(%rip) diff --git a/libc/nt/kernel32/TlsGetValue.S b/libc/nt/kernel32/TlsGetValue.S index 5b3abfac7..e5d6d1995 100644 --- a/libc/nt/kernel32/TlsGetValue.S +++ b/libc/nt/kernel32/TlsGetValue.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TlsGetValue,TlsGetValue,0 .text.windows + .ftrace1 TlsGetValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TlsGetValue(%rip) diff --git a/libc/nt/kernel32/TlsSetValue.S b/libc/nt/kernel32/TlsSetValue.S index 048198461..be6366a83 100644 --- a/libc/nt/kernel32/TlsSetValue.S +++ b/libc/nt/kernel32/TlsSetValue.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TlsSetValue,TlsSetValue,0 .text.windows + .ftrace1 TlsSetValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TlsSetValue(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TransactNamedPipe.S b/libc/nt/kernel32/TransactNamedPipe.S index 5b4ddd3b5..2ac8ebc75 100644 --- a/libc/nt/kernel32/TransactNamedPipe.S +++ b/libc/nt/kernel32/TransactNamedPipe.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TransactNamedPipe,TransactNamedPipe,0 .text.windows + .ftrace1 TransactNamedPipe: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TransactNamedPipe(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TransmitCommChar.S b/libc/nt/kernel32/TransmitCommChar.S index 81d097733..940335f2d 100644 --- a/libc/nt/kernel32/TransmitCommChar.S +++ b/libc/nt/kernel32/TransmitCommChar.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TransmitCommChar,TransmitCommChar,0 .text.windows + .ftrace1 TransmitCommChar: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TransmitCommChar(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/TryAcquireSRWLockExclusive.S b/libc/nt/kernel32/TryAcquireSRWLockExclusive.S index dba4d407a..2db531863 100644 --- a/libc/nt/kernel32/TryAcquireSRWLockExclusive.S +++ b/libc/nt/kernel32/TryAcquireSRWLockExclusive.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TryAcquireSRWLockExclusive,TryAcquireSRWLockExclusive,0 .text.windows + .ftrace1 TryAcquireSRWLockExclusive: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TryAcquireSRWLockExclusive(%rip) diff --git a/libc/nt/kernel32/TryAcquireSRWLockShared.S b/libc/nt/kernel32/TryAcquireSRWLockShared.S index 6171de9c0..bff4def63 100644 --- a/libc/nt/kernel32/TryAcquireSRWLockShared.S +++ b/libc/nt/kernel32/TryAcquireSRWLockShared.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TryAcquireSRWLockShared,TryAcquireSRWLockShared,0 .text.windows + .ftrace1 TryAcquireSRWLockShared: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TryAcquireSRWLockShared(%rip) diff --git a/libc/nt/kernel32/TryEnterCriticalSection.S b/libc/nt/kernel32/TryEnterCriticalSection.S index 50349b2e4..b72bebb39 100644 --- a/libc/nt/kernel32/TryEnterCriticalSection.S +++ b/libc/nt/kernel32/TryEnterCriticalSection.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_TryEnterCriticalSection,TryEnterCriticalSection,0 .text.windows + .ftrace1 TryEnterCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TryEnterCriticalSection(%rip) diff --git a/libc/nt/kernel32/UnlockFile.S b/libc/nt/kernel32/UnlockFile.S index 6a6adac7c..42e7b7a59 100644 --- a/libc/nt/kernel32/UnlockFile.S +++ b/libc/nt/kernel32/UnlockFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UnlockFile,UnlockFile,0 .text.windows + .ftrace1 UnlockFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UnlockFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/UnlockFileEx.S b/libc/nt/kernel32/UnlockFileEx.S index 2e45f05b1..d53616880 100644 --- a/libc/nt/kernel32/UnlockFileEx.S +++ b/libc/nt/kernel32/UnlockFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UnlockFileEx,UnlockFileEx,0 .text.windows + .ftrace1 __UnlockFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UnlockFileEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/UnmapViewOfFile.S b/libc/nt/kernel32/UnmapViewOfFile.S index 33cb449fe..3f37915ef 100644 --- a/libc/nt/kernel32/UnmapViewOfFile.S +++ b/libc/nt/kernel32/UnmapViewOfFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UnmapViewOfFile,UnmapViewOfFile,0 .text.windows + .ftrace1 __UnmapViewOfFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_UnmapViewOfFile(%rip) diff --git a/libc/nt/kernel32/UnmapViewOfFile2.S b/libc/nt/kernel32/UnmapViewOfFile2.S index b88f4ff56..b66606d74 100644 --- a/libc/nt/kernel32/UnmapViewOfFile2.S +++ b/libc/nt/kernel32/UnmapViewOfFile2.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UnmapViewOfFile2,UnmapViewOfFile2,0 .text.windows + .ftrace1 UnmapViewOfFile2: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UnmapViewOfFile2(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/UnmapViewOfFileEx.S b/libc/nt/kernel32/UnmapViewOfFileEx.S index 3fdbcb74f..d24b78573 100644 --- a/libc/nt/kernel32/UnmapViewOfFileEx.S +++ b/libc/nt/kernel32/UnmapViewOfFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UnmapViewOfFileEx,UnmapViewOfFileEx,0 .text.windows + .ftrace1 UnmapViewOfFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UnmapViewOfFileEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/UpdateProcThreadAttribute.S b/libc/nt/kernel32/UpdateProcThreadAttribute.S index ef160af59..7954595e5 100644 --- a/libc/nt/kernel32/UpdateProcThreadAttribute.S +++ b/libc/nt/kernel32/UpdateProcThreadAttribute.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_UpdateProcThreadAttribute,UpdateProcThreadAttribute,0 .text.windows + .ftrace1 UpdateProcThreadAttribute: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UpdateProcThreadAttribute(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualAlloc.S b/libc/nt/kernel32/VirtualAlloc.S index 92c1bcb62..b80255e87 100644 --- a/libc/nt/kernel32/VirtualAlloc.S +++ b/libc/nt/kernel32/VirtualAlloc.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualAlloc,VirtualAlloc,0 .text.windows + .ftrace1 VirtualAlloc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualAlloc(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualAllocEx.S b/libc/nt/kernel32/VirtualAllocEx.S index 5376ab89b..4e40cb4c1 100644 --- a/libc/nt/kernel32/VirtualAllocEx.S +++ b/libc/nt/kernel32/VirtualAllocEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualAllocEx,VirtualAllocEx,0 .text.windows + .ftrace1 VirtualAllocEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualAllocEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualFree.S b/libc/nt/kernel32/VirtualFree.S index 4d2289ec3..0cdeb9a44 100644 --- a/libc/nt/kernel32/VirtualFree.S +++ b/libc/nt/kernel32/VirtualFree.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualFree,VirtualFree,0 .text.windows + .ftrace1 VirtualFree: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualFree(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualLock.S b/libc/nt/kernel32/VirtualLock.S index d4e3444d5..c0600059f 100644 --- a/libc/nt/kernel32/VirtualLock.S +++ b/libc/nt/kernel32/VirtualLock.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualLock,VirtualLock,0 .text.windows + .ftrace1 VirtualLock: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualLock(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualProtect.S b/libc/nt/kernel32/VirtualProtect.S index 1d35d4f7d..7da219946 100644 --- a/libc/nt/kernel32/VirtualProtect.S +++ b/libc/nt/kernel32/VirtualProtect.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualProtect,VirtualProtect,0 .text.windows + .ftrace1 __VirtualProtect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualProtect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualQuery.S b/libc/nt/kernel32/VirtualQuery.S index 935aa7abe..8cf174fb2 100644 --- a/libc/nt/kernel32/VirtualQuery.S +++ b/libc/nt/kernel32/VirtualQuery.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualQuery,VirtualQuery,0 .text.windows + .ftrace1 VirtualQuery: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualQuery(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/VirtualUnlock.S b/libc/nt/kernel32/VirtualUnlock.S index 0df055119..fcf5d5880 100644 --- a/libc/nt/kernel32/VirtualUnlock.S +++ b/libc/nt/kernel32/VirtualUnlock.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_VirtualUnlock,VirtualUnlock,0 .text.windows + .ftrace1 VirtualUnlock: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_VirtualUnlock(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WaitForMultipleObjects.S b/libc/nt/kernel32/WaitForMultipleObjects.S index 03412e4f3..c7d2bcd03 100644 --- a/libc/nt/kernel32/WaitForMultipleObjects.S +++ b/libc/nt/kernel32/WaitForMultipleObjects.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WaitForMultipleObjects,WaitForMultipleObjects,0 .text.windows + .ftrace1 __WaitForMultipleObjects: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitForMultipleObjects(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WaitForMultipleObjectsEx.S b/libc/nt/kernel32/WaitForMultipleObjectsEx.S index 8fa38e77e..e34e86421 100644 --- a/libc/nt/kernel32/WaitForMultipleObjectsEx.S +++ b/libc/nt/kernel32/WaitForMultipleObjectsEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WaitForMultipleObjectsEx,WaitForMultipleObjectsEx,0 .text.windows + .ftrace1 WaitForMultipleObjectsEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitForMultipleObjectsEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WaitForSingleObject.S b/libc/nt/kernel32/WaitForSingleObject.S index ccae2e3ad..0ed8e52c7 100644 --- a/libc/nt/kernel32/WaitForSingleObject.S +++ b/libc/nt/kernel32/WaitForSingleObject.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WaitForSingleObject,WaitForSingleObject,0 .text.windows + .ftrace1 __WaitForSingleObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitForSingleObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WaitForSingleObjectEx.S b/libc/nt/kernel32/WaitForSingleObjectEx.S index 832bfc73a..fac77cbeb 100644 --- a/libc/nt/kernel32/WaitForSingleObjectEx.S +++ b/libc/nt/kernel32/WaitForSingleObjectEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WaitForSingleObjectEx,WaitForSingleObjectEx,0 .text.windows + .ftrace1 WaitForSingleObjectEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitForSingleObjectEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WideCharToMultiByte.S b/libc/nt/kernel32/WideCharToMultiByte.S index 51f12e92c..f08d2f8b3 100644 --- a/libc/nt/kernel32/WideCharToMultiByte.S +++ b/libc/nt/kernel32/WideCharToMultiByte.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WideCharToMultiByte,WideCharToMultiByte,1553 .text.windows + .ftrace1 WideCharToMultiByte: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WideCharToMultiByte(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteConsoleInputW.S b/libc/nt/kernel32/WriteConsoleInputW.S index eb8c9b0c6..35f66f599 100644 --- a/libc/nt/kernel32/WriteConsoleInputW.S +++ b/libc/nt/kernel32/WriteConsoleInputW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteConsoleInputW,WriteConsoleInputW,0 .text.windows + .ftrace1 WriteConsoleInput: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteConsoleInputW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteConsoleOutputAttribute.S b/libc/nt/kernel32/WriteConsoleOutputAttribute.S index 28816dd65..b30665e88 100644 --- a/libc/nt/kernel32/WriteConsoleOutputAttribute.S +++ b/libc/nt/kernel32/WriteConsoleOutputAttribute.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteConsoleOutputAttribute,WriteConsoleOutputAttribute,0 .text.windows + .ftrace1 WriteConsoleOutputAttribute: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteConsoleOutputAttribute(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteConsoleOutputCharacterW.S b/libc/nt/kernel32/WriteConsoleOutputCharacterW.S index 331ace63c..21d5884b2 100644 --- a/libc/nt/kernel32/WriteConsoleOutputCharacterW.S +++ b/libc/nt/kernel32/WriteConsoleOutputCharacterW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteConsoleOutputCharacterW,WriteConsoleOutputCharacterW,0 .text.windows + .ftrace1 WriteConsoleOutputCharacter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteConsoleOutputCharacterW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteConsoleW.S b/libc/nt/kernel32/WriteConsoleW.S index a6340d37e..6d665cb6c 100644 --- a/libc/nt/kernel32/WriteConsoleW.S +++ b/libc/nt/kernel32/WriteConsoleW.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteConsoleW,WriteConsoleW,0 .text.windows + .ftrace1 WriteConsole: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteConsoleW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteFile.S b/libc/nt/kernel32/WriteFile.S index 4adae1a00..a5be36f82 100644 --- a/libc/nt/kernel32/WriteFile.S +++ b/libc/nt/kernel32/WriteFile.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteFile,WriteFile,0 .text.windows + .ftrace1 WriteFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteFileEx.S b/libc/nt/kernel32/WriteFileEx.S index 0098c0ec9..4a37fc8f3 100644 --- a/libc/nt/kernel32/WriteFileEx.S +++ b/libc/nt/kernel32/WriteFileEx.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteFileEx,WriteFileEx,0 .text.windows + .ftrace1 WriteFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteFileEx(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/kernel32/WriteFileGather.S b/libc/nt/kernel32/WriteFileGather.S index 8f39e0e44..be57ad5b4 100644 --- a/libc/nt/kernel32/WriteFileGather.S +++ b/libc/nt/kernel32/WriteFileGather.S @@ -2,11 +2,12 @@ .imp kernel32,__imp_WriteFileGather,WriteFileGather,0 .text.windows + .ftrace1 WriteFileGather: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WriteFileGather(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/CsrClientCallServer.S b/libc/nt/ntdll/CsrClientCallServer.S index fe1ba25c9..b473dc813 100644 --- a/libc/nt/ntdll/CsrClientCallServer.S +++ b/libc/nt/ntdll/CsrClientCallServer.S @@ -2,11 +2,12 @@ .ntimp CsrClientCallServer,CsrClientCallServer .text.windows + .ftrace1 CsrClientCallServer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CsrClientCallServer(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/LdrGetDllHandle.S b/libc/nt/ntdll/LdrGetDllHandle.S index 89faae32e..e33fe507f 100644 --- a/libc/nt/ntdll/LdrGetDllHandle.S +++ b/libc/nt/ntdll/LdrGetDllHandle.S @@ -2,11 +2,12 @@ .ntimp LdrGetDllHandle,LdrGetDllHandle .text.windows + .ftrace1 LdrGetDllHandle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LdrGetDllHandle(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/LdrGetProcedureAddress.S b/libc/nt/ntdll/LdrGetProcedureAddress.S index 2f021c4f9..31b91a3dd 100644 --- a/libc/nt/ntdll/LdrGetProcedureAddress.S +++ b/libc/nt/ntdll/LdrGetProcedureAddress.S @@ -2,11 +2,12 @@ .ntimp LdrGetProcedureAddress,LdrGetProcedureAddress .text.windows + .ftrace1 LdrGetProcedureAddress: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LdrGetProcedureAddress(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/LdrLoadDll.S b/libc/nt/ntdll/LdrLoadDll.S index d93c56eed..3db73813f 100644 --- a/libc/nt/ntdll/LdrLoadDll.S +++ b/libc/nt/ntdll/LdrLoadDll.S @@ -2,11 +2,12 @@ .ntimp LdrLoadDll,LdrLoadDll .text.windows + .ftrace1 LdrLoadDll: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LdrLoadDll(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/LdrUnloadDll.S b/libc/nt/ntdll/LdrUnloadDll.S index 53583a171..0594710da 100644 --- a/libc/nt/ntdll/LdrUnloadDll.S +++ b/libc/nt/ntdll/LdrUnloadDll.S @@ -2,11 +2,12 @@ .ntimp LdrUnloadDll,LdrUnloadDll .text.windows + .ftrace1 LdrUnloadDll: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_LdrUnloadDll(%rip) diff --git a/libc/nt/ntdll/NtAllocateVirtualMemory.S b/libc/nt/ntdll/NtAllocateVirtualMemory.S index 78edf5ed3..3fafe36a7 100644 --- a/libc/nt/ntdll/NtAllocateVirtualMemory.S +++ b/libc/nt/ntdll/NtAllocateVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtAllocateVirtualMemory,NtAllocateVirtualMemory .text.windows + .ftrace1 NtAllocateVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtAllocateVirtualMemory(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCallbackReturn.S b/libc/nt/ntdll/NtCallbackReturn.S index 4c7ee4f08..b314b30df 100644 --- a/libc/nt/ntdll/NtCallbackReturn.S +++ b/libc/nt/ntdll/NtCallbackReturn.S @@ -2,11 +2,12 @@ .ntimp NtCallbackReturn,NtCallbackReturn .text.windows + .ftrace1 NtCallbackReturn: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCallbackReturn(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCancelIoFile.S b/libc/nt/ntdll/NtCancelIoFile.S index 080577f7f..32e79cb4c 100644 --- a/libc/nt/ntdll/NtCancelIoFile.S +++ b/libc/nt/ntdll/NtCancelIoFile.S @@ -2,11 +2,12 @@ .ntimp NtCancelIoFile,NtCancelIoFile .text.windows + .ftrace1 NtCancelIoFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCancelIoFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCancelIoFileEx.S b/libc/nt/ntdll/NtCancelIoFileEx.S index 48a359ce1..79c343d6d 100644 --- a/libc/nt/ntdll/NtCancelIoFileEx.S +++ b/libc/nt/ntdll/NtCancelIoFileEx.S @@ -2,11 +2,12 @@ .ntimp NtCancelIoFileEx,NtCancelIoFileEx .text.windows + .ftrace1 NtCancelIoFileEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCancelIoFileEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtClearEvent.S b/libc/nt/ntdll/NtClearEvent.S index 28184112a..223b5cd01 100644 --- a/libc/nt/ntdll/NtClearEvent.S +++ b/libc/nt/ntdll/NtClearEvent.S @@ -2,11 +2,12 @@ .ntimp NtClearEvent,NtClearEvent .text.windows + .ftrace1 NtClearEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtClearEvent(%rip) diff --git a/libc/nt/ntdll/NtClose.S b/libc/nt/ntdll/NtClose.S index a83e46746..022f5f4bb 100644 --- a/libc/nt/ntdll/NtClose.S +++ b/libc/nt/ntdll/NtClose.S @@ -2,11 +2,12 @@ .ntimp NtClose,NtClose .text.windows + .ftrace1 NtClose: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtClose(%rip) diff --git a/libc/nt/ntdll/NtContinue.S b/libc/nt/ntdll/NtContinue.S index 9cb80e0f8..547962034 100644 --- a/libc/nt/ntdll/NtContinue.S +++ b/libc/nt/ntdll/NtContinue.S @@ -2,11 +2,12 @@ .ntimp NtContinue,NtContinue .text.windows + .ftrace1 NtContinue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtContinue(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateDirectoryObject.S b/libc/nt/ntdll/NtCreateDirectoryObject.S index e02891533..763434e47 100644 --- a/libc/nt/ntdll/NtCreateDirectoryObject.S +++ b/libc/nt/ntdll/NtCreateDirectoryObject.S @@ -2,11 +2,12 @@ .ntimp NtCreateDirectoryObject,NtCreateDirectoryObject .text.windows + .ftrace1 NtCreateDirectoryObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateDirectoryObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateEvent.S b/libc/nt/ntdll/NtCreateEvent.S index 6de5a1428..0226a39b8 100644 --- a/libc/nt/ntdll/NtCreateEvent.S +++ b/libc/nt/ntdll/NtCreateEvent.S @@ -2,11 +2,12 @@ .ntimp NtCreateEvent,NtCreateEvent .text.windows + .ftrace1 NtCreateEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateEvent(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateFile.S b/libc/nt/ntdll/NtCreateFile.S index d57eccc46..668c4e789 100644 --- a/libc/nt/ntdll/NtCreateFile.S +++ b/libc/nt/ntdll/NtCreateFile.S @@ -2,11 +2,12 @@ .ntimp NtCreateFile,NtCreateFile .text.windows + .ftrace1 NtCreateFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateFile(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateIoCompletion.S b/libc/nt/ntdll/NtCreateIoCompletion.S index 576ecd30e..f182398b0 100644 --- a/libc/nt/ntdll/NtCreateIoCompletion.S +++ b/libc/nt/ntdll/NtCreateIoCompletion.S @@ -2,11 +2,12 @@ .ntimp NtCreateIoCompletion,NtCreateIoCompletion .text.windows + .ftrace1 NtCreateIoCompletion: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateIoCompletion(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateKey.S b/libc/nt/ntdll/NtCreateKey.S index 8b1bdf137..e9c1c7775 100644 --- a/libc/nt/ntdll/NtCreateKey.S +++ b/libc/nt/ntdll/NtCreateKey.S @@ -2,11 +2,12 @@ .ntimp NtCreateKey,NtCreateKey .text.windows + .ftrace1 NtCreateKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateKey(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateKeyedEvent.S b/libc/nt/ntdll/NtCreateKeyedEvent.S index 711a8f4e7..f9e89cf10 100644 --- a/libc/nt/ntdll/NtCreateKeyedEvent.S +++ b/libc/nt/ntdll/NtCreateKeyedEvent.S @@ -2,11 +2,12 @@ .ntimp NtCreateKeyedEvent,NtCreateKeyedEvent .text.windows + .ftrace1 NtCreateKeyedEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateKeyedEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateNamedPipeFile.S b/libc/nt/ntdll/NtCreateNamedPipeFile.S index f752b98d0..29f17c9b0 100644 --- a/libc/nt/ntdll/NtCreateNamedPipeFile.S +++ b/libc/nt/ntdll/NtCreateNamedPipeFile.S @@ -2,11 +2,12 @@ .ntimp NtCreateNamedPipeFile,NtCreateNamedPipeFile .text.windows + .ftrace1 NtCreateNamedPipeFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateNamedPipeFile(%rip),%rax jmp __sysv2nt14 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateProcess.S b/libc/nt/ntdll/NtCreateProcess.S index a2273fd35..aa3e19157 100644 --- a/libc/nt/ntdll/NtCreateProcess.S +++ b/libc/nt/ntdll/NtCreateProcess.S @@ -2,11 +2,12 @@ .ntimp NtCreateProcess,NtCreateProcess .text.windows + .ftrace1 NtCreateProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateProcess(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateProfile.S b/libc/nt/ntdll/NtCreateProfile.S index 2ac5e00e0..524176af2 100644 --- a/libc/nt/ntdll/NtCreateProfile.S +++ b/libc/nt/ntdll/NtCreateProfile.S @@ -2,11 +2,12 @@ .ntimp NtCreateProfile,NtCreateProfile .text.windows + .ftrace1 NtCreateProfile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateProfile(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateSection.S b/libc/nt/ntdll/NtCreateSection.S index bb8b7657d..df56c3194 100644 --- a/libc/nt/ntdll/NtCreateSection.S +++ b/libc/nt/ntdll/NtCreateSection.S @@ -2,11 +2,12 @@ .ntimp NtCreateSection,NtCreateSection .text.windows + .ftrace1 NtCreateSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateSection(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateThread.S b/libc/nt/ntdll/NtCreateThread.S index bec5bb5b4..3129a0791 100644 --- a/libc/nt/ntdll/NtCreateThread.S +++ b/libc/nt/ntdll/NtCreateThread.S @@ -2,11 +2,12 @@ .ntimp NtCreateThread,NtCreateThread .text.windows + .ftrace1 NtCreateThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateThread(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtCreateTimer.S b/libc/nt/ntdll/NtCreateTimer.S index 9adee1780..c304211fc 100644 --- a/libc/nt/ntdll/NtCreateTimer.S +++ b/libc/nt/ntdll/NtCreateTimer.S @@ -2,11 +2,12 @@ .ntimp NtCreateTimer,NtCreateTimer .text.windows + .ftrace1 NtCreateTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtCreateTimer(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtDelayExecution.S b/libc/nt/ntdll/NtDelayExecution.S index 0d61aaf1f..8667a26d9 100644 --- a/libc/nt/ntdll/NtDelayExecution.S +++ b/libc/nt/ntdll/NtDelayExecution.S @@ -2,11 +2,12 @@ .ntimp NtDelayExecution,NtDelayExecution .text.windows + .ftrace1 NtDelayExecution: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtDelayExecution(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtDeleteFile.S b/libc/nt/ntdll/NtDeleteFile.S index 502311cfd..bb5ac189b 100644 --- a/libc/nt/ntdll/NtDeleteFile.S +++ b/libc/nt/ntdll/NtDeleteFile.S @@ -2,11 +2,12 @@ .ntimp NtDeleteFile,NtDeleteFile .text.windows + .ftrace1 NtDeleteFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtDeleteFile(%rip) diff --git a/libc/nt/ntdll/NtDeleteKey.S b/libc/nt/ntdll/NtDeleteKey.S index b9bd3826a..3702086a2 100644 --- a/libc/nt/ntdll/NtDeleteKey.S +++ b/libc/nt/ntdll/NtDeleteKey.S @@ -2,11 +2,12 @@ .ntimp NtDeleteKey,NtDeleteKey .text.windows + .ftrace1 NtDeleteKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtDeleteKey(%rip) diff --git a/libc/nt/ntdll/NtDeviceIoControlFile.S b/libc/nt/ntdll/NtDeviceIoControlFile.S index 9ba795330..1958f7507 100644 --- a/libc/nt/ntdll/NtDeviceIoControlFile.S +++ b/libc/nt/ntdll/NtDeviceIoControlFile.S @@ -2,11 +2,12 @@ .ntimp NtDeviceIoControlFile,NtDeviceIoControlFile .text.windows + .ftrace1 NtDeviceIoControlFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtDeviceIoControlFile(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtDuplicateObject.S b/libc/nt/ntdll/NtDuplicateObject.S index d9dcdc8c5..6e286f1eb 100644 --- a/libc/nt/ntdll/NtDuplicateObject.S +++ b/libc/nt/ntdll/NtDuplicateObject.S @@ -2,11 +2,12 @@ .ntimp NtDuplicateObject,NtDuplicateObject .text.windows + .ftrace1 NtDuplicateObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtDuplicateObject(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtEnumerateKey.S b/libc/nt/ntdll/NtEnumerateKey.S index c97d5e049..04532e705 100644 --- a/libc/nt/ntdll/NtEnumerateKey.S +++ b/libc/nt/ntdll/NtEnumerateKey.S @@ -2,11 +2,12 @@ .ntimp NtEnumerateKey,NtEnumerateKey .text.windows + .ftrace1 NtEnumerateKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtEnumerateKey(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtEnumerateValueKey.S b/libc/nt/ntdll/NtEnumerateValueKey.S index 4289a4aa5..521db2b8c 100644 --- a/libc/nt/ntdll/NtEnumerateValueKey.S +++ b/libc/nt/ntdll/NtEnumerateValueKey.S @@ -2,11 +2,12 @@ .ntimp NtEnumerateValueKey,NtEnumerateValueKey .text.windows + .ftrace1 NtEnumerateValueKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtEnumerateValueKey(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtFlushBuffersFile.S b/libc/nt/ntdll/NtFlushBuffersFile.S index 8ca155d58..abe9e4dcd 100644 --- a/libc/nt/ntdll/NtFlushBuffersFile.S +++ b/libc/nt/ntdll/NtFlushBuffersFile.S @@ -2,11 +2,12 @@ .ntimp NtFlushBuffersFile,NtFlushBuffersFile .text.windows + .ftrace1 NtFlushBuffersFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtFlushBuffersFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtFlushInstructionCache.S b/libc/nt/ntdll/NtFlushInstructionCache.S index 6f7d0e2d5..fe7dcf48c 100644 --- a/libc/nt/ntdll/NtFlushInstructionCache.S +++ b/libc/nt/ntdll/NtFlushInstructionCache.S @@ -2,11 +2,12 @@ .ntimp NtFlushInstructionCache,NtFlushInstructionCache .text.windows + .ftrace1 NtFlushInstructionCache: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtFlushInstructionCache(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtFlushKey.S b/libc/nt/ntdll/NtFlushKey.S index f87005109..c990a309a 100644 --- a/libc/nt/ntdll/NtFlushKey.S +++ b/libc/nt/ntdll/NtFlushKey.S @@ -2,11 +2,12 @@ .ntimp NtFlushKey,NtFlushKey .text.windows + .ftrace1 NtFlushKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtFlushKey(%rip) diff --git a/libc/nt/ntdll/NtFlushVirtualMemory.S b/libc/nt/ntdll/NtFlushVirtualMemory.S index 8bbfd5379..8d6331fad 100644 --- a/libc/nt/ntdll/NtFlushVirtualMemory.S +++ b/libc/nt/ntdll/NtFlushVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtFlushVirtualMemory,NtFlushVirtualMemory .text.windows + .ftrace1 NtFlushVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtFlushVirtualMemory(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtFreeVirtualMemory.S b/libc/nt/ntdll/NtFreeVirtualMemory.S index bc63f3d2f..a96ff4721 100644 --- a/libc/nt/ntdll/NtFreeVirtualMemory.S +++ b/libc/nt/ntdll/NtFreeVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtFreeVirtualMemory,NtFreeVirtualMemory .text.windows + .ftrace1 NtFreeVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtFreeVirtualMemory(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtFsControlFile.S b/libc/nt/ntdll/NtFsControlFile.S index cddef80b8..8587d277a 100644 --- a/libc/nt/ntdll/NtFsControlFile.S +++ b/libc/nt/ntdll/NtFsControlFile.S @@ -2,11 +2,12 @@ .ntimp NtFsControlFile,NtFsControlFile .text.windows + .ftrace1 NtFsControlFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtFsControlFile(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtGetContextThread.S b/libc/nt/ntdll/NtGetContextThread.S index 3ed6aa614..5c0ae8bb6 100644 --- a/libc/nt/ntdll/NtGetContextThread.S +++ b/libc/nt/ntdll/NtGetContextThread.S @@ -2,11 +2,12 @@ .ntimp NtGetContextThread,NtGetContextThread .text.windows + .ftrace1 NtGetContextThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtGetContextThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtMapViewOfSection.S b/libc/nt/ntdll/NtMapViewOfSection.S index 8630ce7f2..de8a5bb0d 100644 --- a/libc/nt/ntdll/NtMapViewOfSection.S +++ b/libc/nt/ntdll/NtMapViewOfSection.S @@ -2,11 +2,12 @@ .ntimp NtMapViewOfSection,NtMapViewOfSection .text.windows + .ftrace1 NtMapViewOfSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtMapViewOfSection(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenDirectoryObject.S b/libc/nt/ntdll/NtOpenDirectoryObject.S index eff23ba0a..69b2af476 100644 --- a/libc/nt/ntdll/NtOpenDirectoryObject.S +++ b/libc/nt/ntdll/NtOpenDirectoryObject.S @@ -2,11 +2,12 @@ .ntimp NtOpenDirectoryObject,NtOpenDirectoryObject .text.windows + .ftrace1 NtOpenDirectoryObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenDirectoryObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenFile.S b/libc/nt/ntdll/NtOpenFile.S index 616ed9754..2a5d39c1b 100644 --- a/libc/nt/ntdll/NtOpenFile.S +++ b/libc/nt/ntdll/NtOpenFile.S @@ -2,11 +2,12 @@ .ntimp NtOpenFile,NtOpenFile .text.windows + .ftrace1 NtOpenFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenKey.S b/libc/nt/ntdll/NtOpenKey.S index 9bd6a473a..d455c35cd 100644 --- a/libc/nt/ntdll/NtOpenKey.S +++ b/libc/nt/ntdll/NtOpenKey.S @@ -2,11 +2,12 @@ .ntimp NtOpenKey,NtOpenKey .text.windows + .ftrace1 NtOpenKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenKey(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenProcess.S b/libc/nt/ntdll/NtOpenProcess.S index 2068afd7b..5335dc20f 100644 --- a/libc/nt/ntdll/NtOpenProcess.S +++ b/libc/nt/ntdll/NtOpenProcess.S @@ -2,11 +2,12 @@ .ntimp NtOpenProcess,NtOpenProcess .text.windows + .ftrace1 NtOpenProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenProcess(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenProcessToken.S b/libc/nt/ntdll/NtOpenProcessToken.S index 789dd743c..23ae6bc8c 100644 --- a/libc/nt/ntdll/NtOpenProcessToken.S +++ b/libc/nt/ntdll/NtOpenProcessToken.S @@ -2,11 +2,12 @@ .ntimp NtOpenProcessToken,NtOpenProcessToken .text.windows + .ftrace1 NtOpenProcessToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenProcessToken(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenSection.S b/libc/nt/ntdll/NtOpenSection.S index df2043856..dba0cb27b 100644 --- a/libc/nt/ntdll/NtOpenSection.S +++ b/libc/nt/ntdll/NtOpenSection.S @@ -2,11 +2,12 @@ .ntimp NtOpenSection,NtOpenSection .text.windows + .ftrace1 NtOpenSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenSection(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenSymbolicLinkObject.S b/libc/nt/ntdll/NtOpenSymbolicLinkObject.S index 889c535ff..1786ae9fb 100644 --- a/libc/nt/ntdll/NtOpenSymbolicLinkObject.S +++ b/libc/nt/ntdll/NtOpenSymbolicLinkObject.S @@ -2,11 +2,12 @@ .ntimp NtOpenSymbolicLinkObject,NtOpenSymbolicLinkObject .text.windows + .ftrace1 NtOpenSymbolicLinkObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenSymbolicLinkObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenThread.S b/libc/nt/ntdll/NtOpenThread.S index 08e9e5136..49bb3774e 100644 --- a/libc/nt/ntdll/NtOpenThread.S +++ b/libc/nt/ntdll/NtOpenThread.S @@ -2,11 +2,12 @@ .ntimp NtOpenThread,NtOpenThread .text.windows + .ftrace1 NtOpenThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtOpenThreadToken.S b/libc/nt/ntdll/NtOpenThreadToken.S index c16a4c0f4..9c1bc8c67 100644 --- a/libc/nt/ntdll/NtOpenThreadToken.S +++ b/libc/nt/ntdll/NtOpenThreadToken.S @@ -2,11 +2,12 @@ .ntimp NtOpenThreadToken,NtOpenThreadToken .text.windows + .ftrace1 NtOpenThreadToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtOpenThreadToken(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtProtectVirtualMemory.S b/libc/nt/ntdll/NtProtectVirtualMemory.S index 572479e2d..722dec11c 100644 --- a/libc/nt/ntdll/NtProtectVirtualMemory.S +++ b/libc/nt/ntdll/NtProtectVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtProtectVirtualMemory,NtProtectVirtualMemory .text.windows + .ftrace1 NtProtectVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtProtectVirtualMemory(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryAttributesFile.S b/libc/nt/ntdll/NtQueryAttributesFile.S index f341bcd95..d10fbcb53 100644 --- a/libc/nt/ntdll/NtQueryAttributesFile.S +++ b/libc/nt/ntdll/NtQueryAttributesFile.S @@ -2,11 +2,12 @@ .ntimp NtQueryAttributesFile,NtQueryAttributesFile .text.windows + .ftrace1 NtQueryAttributesFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryAttributesFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryDirectoryFile.S b/libc/nt/ntdll/NtQueryDirectoryFile.S index f07d45acf..04de7f5c2 100644 --- a/libc/nt/ntdll/NtQueryDirectoryFile.S +++ b/libc/nt/ntdll/NtQueryDirectoryFile.S @@ -2,11 +2,12 @@ .ntimp NtQueryDirectoryFile,NtQueryDirectoryFile .text.windows + .ftrace1 NtQueryDirectoryFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryDirectoryFile(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryFullAttributesFile.S b/libc/nt/ntdll/NtQueryFullAttributesFile.S index 663fad60b..0ee2d33e9 100644 --- a/libc/nt/ntdll/NtQueryFullAttributesFile.S +++ b/libc/nt/ntdll/NtQueryFullAttributesFile.S @@ -2,11 +2,12 @@ .ntimp NtQueryFullAttributesFile,NtQueryFullAttributesFile .text.windows + .ftrace1 NtQueryFullAttributesFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryFullAttributesFile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryInformationFile.S b/libc/nt/ntdll/NtQueryInformationFile.S index cb977611f..44abc9fad 100644 --- a/libc/nt/ntdll/NtQueryInformationFile.S +++ b/libc/nt/ntdll/NtQueryInformationFile.S @@ -2,11 +2,12 @@ .ntimp NtQueryInformationFile,NtQueryInformationFile .text.windows + .ftrace1 NtQueryInformationFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryInformationFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryInformationJobObject.S b/libc/nt/ntdll/NtQueryInformationJobObject.S index b0a6d604a..e86d27e96 100644 --- a/libc/nt/ntdll/NtQueryInformationJobObject.S +++ b/libc/nt/ntdll/NtQueryInformationJobObject.S @@ -2,11 +2,12 @@ .ntimp NtQueryInformationJobObject,NtQueryInformationJobObject .text.windows + .ftrace1 NtQueryInformationJobObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryInformationJobObject(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryInformationProcess.S b/libc/nt/ntdll/NtQueryInformationProcess.S index bc1250a2f..1c2466da5 100644 --- a/libc/nt/ntdll/NtQueryInformationProcess.S +++ b/libc/nt/ntdll/NtQueryInformationProcess.S @@ -2,11 +2,12 @@ .ntimp NtQueryInformationProcess,NtQueryInformationProcess .text.windows + .ftrace1 NtQueryInformationProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryInformationProcess(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryInformationThread.S b/libc/nt/ntdll/NtQueryInformationThread.S index daeffff04..91ab1c108 100644 --- a/libc/nt/ntdll/NtQueryInformationThread.S +++ b/libc/nt/ntdll/NtQueryInformationThread.S @@ -2,11 +2,12 @@ .ntimp NtQueryInformationThread,NtQueryInformationThread .text.windows + .ftrace1 NtQueryInformationThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryInformationThread(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryInformationToken.S b/libc/nt/ntdll/NtQueryInformationToken.S index 68a8364e7..256a43bc5 100644 --- a/libc/nt/ntdll/NtQueryInformationToken.S +++ b/libc/nt/ntdll/NtQueryInformationToken.S @@ -2,11 +2,12 @@ .ntimp NtQueryInformationToken,NtQueryInformationToken .text.windows + .ftrace1 NtQueryInformationToken: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryInformationToken(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryIntervalProfile.S b/libc/nt/ntdll/NtQueryIntervalProfile.S index 48abdbf0d..b9ce1a426 100644 --- a/libc/nt/ntdll/NtQueryIntervalProfile.S +++ b/libc/nt/ntdll/NtQueryIntervalProfile.S @@ -2,11 +2,12 @@ .ntimp NtQueryIntervalProfile,NtQueryIntervalProfile .text.windows + .ftrace1 NtQueryIntervalProfile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryIntervalProfile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryObject.S b/libc/nt/ntdll/NtQueryObject.S index 681cd32a6..00a6804ad 100644 --- a/libc/nt/ntdll/NtQueryObject.S +++ b/libc/nt/ntdll/NtQueryObject.S @@ -2,11 +2,12 @@ .ntimp NtQueryObject,NtQueryObject .text.windows + .ftrace1 NtQueryObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryObject(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryPerformanceCounter.S b/libc/nt/ntdll/NtQueryPerformanceCounter.S index 67937fd1f..cc0de99fd 100644 --- a/libc/nt/ntdll/NtQueryPerformanceCounter.S +++ b/libc/nt/ntdll/NtQueryPerformanceCounter.S @@ -2,11 +2,12 @@ .ntimp NtQueryPerformanceCounter,NtQueryPerformanceCounter .text.windows + .ftrace1 NtQueryPerformanceCounter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryPerformanceCounter(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQuerySection.S b/libc/nt/ntdll/NtQuerySection.S index 42a7d3bff..c1f314050 100644 --- a/libc/nt/ntdll/NtQuerySection.S +++ b/libc/nt/ntdll/NtQuerySection.S @@ -2,11 +2,12 @@ .ntimp NtQuerySection,NtQuerySection .text.windows + .ftrace1 NtQuerySection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQuerySection(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQuerySecurityObject.S b/libc/nt/ntdll/NtQuerySecurityObject.S index beecae774..90c2f36a4 100644 --- a/libc/nt/ntdll/NtQuerySecurityObject.S +++ b/libc/nt/ntdll/NtQuerySecurityObject.S @@ -2,11 +2,12 @@ .ntimp NtQuerySecurityObject,NtQuerySecurityObject .text.windows + .ftrace1 NtQuerySecurityObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQuerySecurityObject(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQuerySymbolicLinkObject.S b/libc/nt/ntdll/NtQuerySymbolicLinkObject.S index 8ffa1197a..4fe8d1a90 100644 --- a/libc/nt/ntdll/NtQuerySymbolicLinkObject.S +++ b/libc/nt/ntdll/NtQuerySymbolicLinkObject.S @@ -2,11 +2,12 @@ .ntimp NtQuerySymbolicLinkObject,NtQuerySymbolicLinkObject .text.windows + .ftrace1 NtQuerySymbolicLinkObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQuerySymbolicLinkObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQuerySystemInformation.S b/libc/nt/ntdll/NtQuerySystemInformation.S index 17253a864..1c66c4390 100644 --- a/libc/nt/ntdll/NtQuerySystemInformation.S +++ b/libc/nt/ntdll/NtQuerySystemInformation.S @@ -2,11 +2,12 @@ .ntimp NtQuerySystemInformation,NtQuerySystemInformation .text.windows + .ftrace1 NtQuerySystemInformation: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQuerySystemInformation(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQuerySystemTime.S b/libc/nt/ntdll/NtQuerySystemTime.S index 4b87dd139..b900d498b 100644 --- a/libc/nt/ntdll/NtQuerySystemTime.S +++ b/libc/nt/ntdll/NtQuerySystemTime.S @@ -2,11 +2,12 @@ .ntimp NtQuerySystemTime,NtQuerySystemTime .text.windows + .ftrace1 NtQuerySystemTime: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtQuerySystemTime(%rip) diff --git a/libc/nt/ntdll/NtQueryValueKey.S b/libc/nt/ntdll/NtQueryValueKey.S index f276e69dd..f48b62724 100644 --- a/libc/nt/ntdll/NtQueryValueKey.S +++ b/libc/nt/ntdll/NtQueryValueKey.S @@ -2,11 +2,12 @@ .ntimp NtQueryValueKey,NtQueryValueKey .text.windows + .ftrace1 NtQueryValueKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryValueKey(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryVirtualMemory.S b/libc/nt/ntdll/NtQueryVirtualMemory.S index 91b5871cd..102972387 100644 --- a/libc/nt/ntdll/NtQueryVirtualMemory.S +++ b/libc/nt/ntdll/NtQueryVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtQueryVirtualMemory,NtQueryVirtualMemory .text.windows + .ftrace1 NtQueryVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryVirtualMemory(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueryVolumeInformationFile.S b/libc/nt/ntdll/NtQueryVolumeInformationFile.S index 092d72f24..20d7658b6 100644 --- a/libc/nt/ntdll/NtQueryVolumeInformationFile.S +++ b/libc/nt/ntdll/NtQueryVolumeInformationFile.S @@ -2,11 +2,12 @@ .ntimp NtQueryVolumeInformationFile,NtQueryVolumeInformationFile .text.windows + .ftrace1 NtQueryVolumeInformationFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueryVolumeInformationFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtQueueApcThread.S b/libc/nt/ntdll/NtQueueApcThread.S index a05710487..f3966d0b4 100644 --- a/libc/nt/ntdll/NtQueueApcThread.S +++ b/libc/nt/ntdll/NtQueueApcThread.S @@ -2,11 +2,12 @@ .ntimp NtQueueApcThread,NtQueueApcThread .text.windows + .ftrace1 NtQueueApcThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtQueueApcThread(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtRaiseException.S b/libc/nt/ntdll/NtRaiseException.S index f944f0e42..c4f7ffaf1 100644 --- a/libc/nt/ntdll/NtRaiseException.S +++ b/libc/nt/ntdll/NtRaiseException.S @@ -2,11 +2,12 @@ .ntimp NtRaiseException,NtRaiseException .text.windows + .ftrace1 NtRaiseException: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtRaiseException(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtRaiseHardError.S b/libc/nt/ntdll/NtRaiseHardError.S index 02ceb0199..5e8d3a71c 100644 --- a/libc/nt/ntdll/NtRaiseHardError.S +++ b/libc/nt/ntdll/NtRaiseHardError.S @@ -2,11 +2,12 @@ .ntimp NtRaiseHardError,NtRaiseHardError .text.windows + .ftrace1 NtRaiseHardError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtRaiseHardError(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtReadFile.S b/libc/nt/ntdll/NtReadFile.S index 1a9ba5c58..7da47cecc 100644 --- a/libc/nt/ntdll/NtReadFile.S +++ b/libc/nt/ntdll/NtReadFile.S @@ -2,11 +2,12 @@ .ntimp NtReadFile,NtReadFile .text.windows + .ftrace1 NtReadFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtReadFile(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtReadVirtualMemory.S b/libc/nt/ntdll/NtReadVirtualMemory.S index df07da01f..ebd104ca5 100644 --- a/libc/nt/ntdll/NtReadVirtualMemory.S +++ b/libc/nt/ntdll/NtReadVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtReadVirtualMemory,NtReadVirtualMemory .text.windows + .ftrace1 NtReadVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtReadVirtualMemory(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtReleaseKeyedEvent.S b/libc/nt/ntdll/NtReleaseKeyedEvent.S index e1856fae8..91da68573 100644 --- a/libc/nt/ntdll/NtReleaseKeyedEvent.S +++ b/libc/nt/ntdll/NtReleaseKeyedEvent.S @@ -2,11 +2,12 @@ .ntimp NtReleaseKeyedEvent,NtReleaseKeyedEvent .text.windows + .ftrace1 NtReleaseKeyedEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtReleaseKeyedEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtResumeThread.S b/libc/nt/ntdll/NtResumeThread.S index 546c29528..87c0b5080 100644 --- a/libc/nt/ntdll/NtResumeThread.S +++ b/libc/nt/ntdll/NtResumeThread.S @@ -2,11 +2,12 @@ .ntimp NtResumeThread,NtResumeThread .text.windows + .ftrace1 NtResumeThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtResumeThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetContextThread.S b/libc/nt/ntdll/NtSetContextThread.S index 070c1be14..c7dc25c42 100644 --- a/libc/nt/ntdll/NtSetContextThread.S +++ b/libc/nt/ntdll/NtSetContextThread.S @@ -2,11 +2,12 @@ .ntimp NtSetContextThread,NtSetContextThread .text.windows + .ftrace1 NtSetContextThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetContextThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetEvent.S b/libc/nt/ntdll/NtSetEvent.S index df8e88e72..949a1376a 100644 --- a/libc/nt/ntdll/NtSetEvent.S +++ b/libc/nt/ntdll/NtSetEvent.S @@ -2,11 +2,12 @@ .ntimp NtSetEvent,NtSetEvent .text.windows + .ftrace1 NtSetEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetInformationFile.S b/libc/nt/ntdll/NtSetInformationFile.S index f881f8a61..ddf5cc03b 100644 --- a/libc/nt/ntdll/NtSetInformationFile.S +++ b/libc/nt/ntdll/NtSetInformationFile.S @@ -2,11 +2,12 @@ .ntimp NtSetInformationFile,NtSetInformationFile .text.windows + .ftrace1 NtSetInformationFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetInformationFile(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetInformationThread.S b/libc/nt/ntdll/NtSetInformationThread.S index 43d468764..7618e38c5 100644 --- a/libc/nt/ntdll/NtSetInformationThread.S +++ b/libc/nt/ntdll/NtSetInformationThread.S @@ -2,11 +2,12 @@ .ntimp NtSetInformationThread,NtSetInformationThread .text.windows + .ftrace1 NtSetInformationThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetInformationThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetIntervalProfile.S b/libc/nt/ntdll/NtSetIntervalProfile.S index af3ef24e1..8945e5ab9 100644 --- a/libc/nt/ntdll/NtSetIntervalProfile.S +++ b/libc/nt/ntdll/NtSetIntervalProfile.S @@ -2,11 +2,12 @@ .ntimp NtSetIntervalProfile,NtSetIntervalProfile .text.windows + .ftrace1 NtSetIntervalProfile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetIntervalProfile(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetTimer.S b/libc/nt/ntdll/NtSetTimer.S index 452fb1e6e..fb05926f3 100644 --- a/libc/nt/ntdll/NtSetTimer.S +++ b/libc/nt/ntdll/NtSetTimer.S @@ -2,11 +2,12 @@ .ntimp NtSetTimer,NtSetTimer .text.windows + .ftrace1 NtSetTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetTimer(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSetValueKey.S b/libc/nt/ntdll/NtSetValueKey.S index 5d781be35..5098bd712 100644 --- a/libc/nt/ntdll/NtSetValueKey.S +++ b/libc/nt/ntdll/NtSetValueKey.S @@ -2,11 +2,12 @@ .ntimp NtSetValueKey,NtSetValueKey .text.windows + .ftrace1 NtSetValueKey: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSetValueKey(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtSignalAndWaitForSingleObject.S b/libc/nt/ntdll/NtSignalAndWaitForSingleObject.S index 6694a6f3e..56fbed044 100644 --- a/libc/nt/ntdll/NtSignalAndWaitForSingleObject.S +++ b/libc/nt/ntdll/NtSignalAndWaitForSingleObject.S @@ -2,11 +2,12 @@ .ntimp NtSignalAndWaitForSingleObject,NtSignalAndWaitForSingleObject .text.windows + .ftrace1 NtSignalAndWaitForSingleObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSignalAndWaitForSingleObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtStartProfile.S b/libc/nt/ntdll/NtStartProfile.S index 69ee73b86..778634fb1 100644 --- a/libc/nt/ntdll/NtStartProfile.S +++ b/libc/nt/ntdll/NtStartProfile.S @@ -2,11 +2,12 @@ .ntimp NtStartProfile,NtStartProfile .text.windows + .ftrace1 NtStartProfile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtStartProfile(%rip) diff --git a/libc/nt/ntdll/NtStopProfile.S b/libc/nt/ntdll/NtStopProfile.S index 56912cf0b..2043178d6 100644 --- a/libc/nt/ntdll/NtStopProfile.S +++ b/libc/nt/ntdll/NtStopProfile.S @@ -2,11 +2,12 @@ .ntimp NtStopProfile,NtStopProfile .text.windows + .ftrace1 NtStopProfile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_NtStopProfile(%rip) diff --git a/libc/nt/ntdll/NtSuspendThread.S b/libc/nt/ntdll/NtSuspendThread.S index dc185a61e..1074ea9d5 100644 --- a/libc/nt/ntdll/NtSuspendThread.S +++ b/libc/nt/ntdll/NtSuspendThread.S @@ -2,11 +2,12 @@ .ntimp NtSuspendThread,NtSuspendThread .text.windows + .ftrace1 NtSuspendThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtSuspendThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtTerminateProcess.S b/libc/nt/ntdll/NtTerminateProcess.S index 10884b468..3a26e1563 100644 --- a/libc/nt/ntdll/NtTerminateProcess.S +++ b/libc/nt/ntdll/NtTerminateProcess.S @@ -2,11 +2,12 @@ .ntimp NtTerminateProcess,NtTerminateProcess .text.windows + .ftrace1 NtTerminateProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtTerminateProcess(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtTerminateThread.S b/libc/nt/ntdll/NtTerminateThread.S index b0f02770b..999686231 100644 --- a/libc/nt/ntdll/NtTerminateThread.S +++ b/libc/nt/ntdll/NtTerminateThread.S @@ -2,11 +2,12 @@ .ntimp NtTerminateThread,NtTerminateThread .text.windows + .ftrace1 NtTerminateThread: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtTerminateThread(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtTestAlert.S b/libc/nt/ntdll/NtTestAlert.S index fbaf5f75e..d13522758 100644 --- a/libc/nt/ntdll/NtTestAlert.S +++ b/libc/nt/ntdll/NtTestAlert.S @@ -2,11 +2,12 @@ .ntimp NtTestAlert,NtTestAlert .text.windows + .ftrace1 NtTestAlert: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_NtTestAlert(%rip) leave diff --git a/libc/nt/ntdll/NtUnmapViewOfSection.S b/libc/nt/ntdll/NtUnmapViewOfSection.S index 9530c8dba..34a3b2029 100644 --- a/libc/nt/ntdll/NtUnmapViewOfSection.S +++ b/libc/nt/ntdll/NtUnmapViewOfSection.S @@ -2,11 +2,12 @@ .ntimp NtUnmapViewOfSection,NtUnmapViewOfSection .text.windows + .ftrace1 NtUnmapViewOfSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtUnmapViewOfSection(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtWaitForKeyedEvent.S b/libc/nt/ntdll/NtWaitForKeyedEvent.S index 7735ccc2c..d2758c18e 100644 --- a/libc/nt/ntdll/NtWaitForKeyedEvent.S +++ b/libc/nt/ntdll/NtWaitForKeyedEvent.S @@ -2,11 +2,12 @@ .ntimp NtWaitForKeyedEvent,NtWaitForKeyedEvent .text.windows + .ftrace1 NtWaitForKeyedEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtWaitForKeyedEvent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtWaitForSingleObject.S b/libc/nt/ntdll/NtWaitForSingleObject.S index b38b9beb7..f869d9c7b 100644 --- a/libc/nt/ntdll/NtWaitForSingleObject.S +++ b/libc/nt/ntdll/NtWaitForSingleObject.S @@ -2,11 +2,12 @@ .ntimp NtWaitForSingleObject,NtWaitForSingleObject .text.windows + .ftrace1 NtWaitForSingleObject: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtWaitForSingleObject(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtWriteFile.S b/libc/nt/ntdll/NtWriteFile.S index 7619b17e5..28e1ae810 100644 --- a/libc/nt/ntdll/NtWriteFile.S +++ b/libc/nt/ntdll/NtWriteFile.S @@ -2,11 +2,12 @@ .ntimp NtWriteFile,NtWriteFile .text.windows + .ftrace1 NtWriteFile: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtWriteFile(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtWriteVirtualMemory.S b/libc/nt/ntdll/NtWriteVirtualMemory.S index dc2898b44..e7c6d710c 100644 --- a/libc/nt/ntdll/NtWriteVirtualMemory.S +++ b/libc/nt/ntdll/NtWriteVirtualMemory.S @@ -2,11 +2,12 @@ .ntimp NtWriteVirtualMemory,NtWriteVirtualMemory .text.windows + .ftrace1 NtWriteVirtualMemory: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_NtWriteVirtualMemory(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/NtYieldExecution.S b/libc/nt/ntdll/NtYieldExecution.S index 5a0a9ccd3..9881e9420 100644 --- a/libc/nt/ntdll/NtYieldExecution.S +++ b/libc/nt/ntdll/NtYieldExecution.S @@ -2,11 +2,12 @@ .ntimp NtYieldExecution,NtYieldExecution .text.windows + .ftrace1 NtYieldExecution: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_NtYieldExecution(%rip) leave diff --git a/libc/nt/ntdll/RtlAllocateHeap.S b/libc/nt/ntdll/RtlAllocateHeap.S index 40b536f65..aaa13c70f 100644 --- a/libc/nt/ntdll/RtlAllocateHeap.S +++ b/libc/nt/ntdll/RtlAllocateHeap.S @@ -2,11 +2,12 @@ .ntimp RtlAllocateHeap,RtlAllocateHeap .text.windows + .ftrace1 RtlAllocateHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlAllocateHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlCloneUserProcess.S b/libc/nt/ntdll/RtlCloneUserProcess.S index 9d251e30e..9c62f5819 100644 --- a/libc/nt/ntdll/RtlCloneUserProcess.S +++ b/libc/nt/ntdll/RtlCloneUserProcess.S @@ -2,11 +2,12 @@ .ntimp RtlCloneUserProcess,RtlCloneUserProcess .text.windows + .ftrace1 RtlCloneUserProcess: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlCloneUserProcess(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlConvertSidToUnicodeString.S b/libc/nt/ntdll/RtlConvertSidToUnicodeString.S index 3636aa6d4..baa215f76 100644 --- a/libc/nt/ntdll/RtlConvertSidToUnicodeString.S +++ b/libc/nt/ntdll/RtlConvertSidToUnicodeString.S @@ -2,11 +2,12 @@ .ntimp RtlConvertSidToUnicodeString,RtlConvertSidToUnicodeString .text.windows + .ftrace1 RtlConvertSidToUnicodeString: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlConvertSidToUnicodeString(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlCreateHeap.S b/libc/nt/ntdll/RtlCreateHeap.S index 914db40b2..ae45e2440 100644 --- a/libc/nt/ntdll/RtlCreateHeap.S +++ b/libc/nt/ntdll/RtlCreateHeap.S @@ -2,11 +2,12 @@ .ntimp RtlCreateHeap,RtlCreateHeap .text.windows + .ftrace1 RtlCreateHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlCreateHeap(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlCreateProcessParameters.S b/libc/nt/ntdll/RtlCreateProcessParameters.S index 4a43a5a65..86efc2e26 100644 --- a/libc/nt/ntdll/RtlCreateProcessParameters.S +++ b/libc/nt/ntdll/RtlCreateProcessParameters.S @@ -2,11 +2,12 @@ .ntimp RtlCreateProcessParameters,RtlCreateProcessParameters .text.windows + .ftrace1 RtlCreateProcessParameters: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlCreateProcessParameters(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlDeleteCriticalSection.S b/libc/nt/ntdll/RtlDeleteCriticalSection.S index 508a3a3a0..2231999ea 100644 --- a/libc/nt/ntdll/RtlDeleteCriticalSection.S +++ b/libc/nt/ntdll/RtlDeleteCriticalSection.S @@ -2,11 +2,12 @@ .ntimp RtlDeleteCriticalSection,RtlDeleteCriticalSection .text.windows + .ftrace1 RtlDeleteCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlDeleteCriticalSection(%rip) diff --git a/libc/nt/ntdll/RtlDestroyHeap.S b/libc/nt/ntdll/RtlDestroyHeap.S index 448da6ec2..81073ce82 100644 --- a/libc/nt/ntdll/RtlDestroyHeap.S +++ b/libc/nt/ntdll/RtlDestroyHeap.S @@ -2,11 +2,12 @@ .ntimp RtlDestroyHeap,RtlDestroyHeap .text.windows + .ftrace1 RtlDestroyHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlDestroyHeap(%rip) diff --git a/libc/nt/ntdll/RtlDestroyProcessParameters.S b/libc/nt/ntdll/RtlDestroyProcessParameters.S index 35b665e53..d8c03db61 100644 --- a/libc/nt/ntdll/RtlDestroyProcessParameters.S +++ b/libc/nt/ntdll/RtlDestroyProcessParameters.S @@ -2,11 +2,12 @@ .ntimp RtlDestroyProcessParameters,RtlDestroyProcessParameters .text.windows + .ftrace1 RtlDestroyProcessParameters: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlDestroyProcessParameters(%rip) diff --git a/libc/nt/ntdll/RtlEnterCriticalSection.S b/libc/nt/ntdll/RtlEnterCriticalSection.S index eb03e7833..f68cf2cfc 100644 --- a/libc/nt/ntdll/RtlEnterCriticalSection.S +++ b/libc/nt/ntdll/RtlEnterCriticalSection.S @@ -2,11 +2,12 @@ .ntimp RtlEnterCriticalSection,RtlEnterCriticalSection .text.windows + .ftrace1 RtlEnterCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlEnterCriticalSection(%rip) diff --git a/libc/nt/ntdll/RtlFreeHeap.S b/libc/nt/ntdll/RtlFreeHeap.S index 5ab3a042c..d878a3c12 100644 --- a/libc/nt/ntdll/RtlFreeHeap.S +++ b/libc/nt/ntdll/RtlFreeHeap.S @@ -2,11 +2,12 @@ .ntimp RtlFreeHeap,RtlFreeHeap .text.windows + .ftrace1 RtlFreeHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlFreeHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlFreeUnicodeString.S b/libc/nt/ntdll/RtlFreeUnicodeString.S index 5c108fdf5..ea48ef15d 100644 --- a/libc/nt/ntdll/RtlFreeUnicodeString.S +++ b/libc/nt/ntdll/RtlFreeUnicodeString.S @@ -2,11 +2,12 @@ .ntimp RtlFreeUnicodeString,RtlFreeUnicodeString .text.windows + .ftrace1 RtlFreeUnicodeString: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlFreeUnicodeString(%rip) diff --git a/libc/nt/ntdll/RtlGetProcessHeaps.S b/libc/nt/ntdll/RtlGetProcessHeaps.S index fbac606c8..3697a6630 100644 --- a/libc/nt/ntdll/RtlGetProcessHeaps.S +++ b/libc/nt/ntdll/RtlGetProcessHeaps.S @@ -2,11 +2,12 @@ .ntimp RtlGetProcessHeaps,RtlGetProcessHeaps .text.windows + .ftrace1 RtlGetProcessHeaps: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlGetProcessHeaps(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlInitUnicodeString.S b/libc/nt/ntdll/RtlInitUnicodeString.S index 07f81947a..9e3eed1aa 100644 --- a/libc/nt/ntdll/RtlInitUnicodeString.S +++ b/libc/nt/ntdll/RtlInitUnicodeString.S @@ -2,11 +2,12 @@ .ntimp RtlInitUnicodeString,RtlInitUnicodeString .text.windows + .ftrace1 RtlInitUnicodeString: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlInitUnicodeString(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlInitializeCriticalSection.S b/libc/nt/ntdll/RtlInitializeCriticalSection.S index fe580c3ce..fa1f1c32b 100644 --- a/libc/nt/ntdll/RtlInitializeCriticalSection.S +++ b/libc/nt/ntdll/RtlInitializeCriticalSection.S @@ -2,11 +2,12 @@ .ntimp RtlInitializeCriticalSection,RtlInitializeCriticalSection .text.windows + .ftrace1 RtlInitializeCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlInitializeCriticalSection(%rip) diff --git a/libc/nt/ntdll/RtlLeaveCriticalSection.S b/libc/nt/ntdll/RtlLeaveCriticalSection.S index cbb82541c..d0243521a 100644 --- a/libc/nt/ntdll/RtlLeaveCriticalSection.S +++ b/libc/nt/ntdll/RtlLeaveCriticalSection.S @@ -2,11 +2,12 @@ .ntimp RtlLeaveCriticalSection,RtlLeaveCriticalSection .text.windows + .ftrace1 RtlLeaveCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlLeaveCriticalSection(%rip) diff --git a/libc/nt/ntdll/RtlLockHeap.S b/libc/nt/ntdll/RtlLockHeap.S index 7a4034fc8..d5fe45c61 100644 --- a/libc/nt/ntdll/RtlLockHeap.S +++ b/libc/nt/ntdll/RtlLockHeap.S @@ -2,11 +2,12 @@ .ntimp RtlLockHeap,RtlLockHeap .text.windows + .ftrace1 RtlLockHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlLockHeap(%rip) diff --git a/libc/nt/ntdll/RtlNtStatusToDosError.S b/libc/nt/ntdll/RtlNtStatusToDosError.S index f2f3f8eef..e4d9f3519 100644 --- a/libc/nt/ntdll/RtlNtStatusToDosError.S +++ b/libc/nt/ntdll/RtlNtStatusToDosError.S @@ -2,11 +2,12 @@ .ntimp RtlNtStatusToDosError,RtlNtStatusToDosError .text.windows + .ftrace1 RtlNtStatusToDosError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlNtStatusToDosError(%rip) diff --git a/libc/nt/ntdll/RtlQueryEnvironmentVariable.S b/libc/nt/ntdll/RtlQueryEnvironmentVariable.S index c9b9eba47..b40f4060d 100644 --- a/libc/nt/ntdll/RtlQueryEnvironmentVariable.S +++ b/libc/nt/ntdll/RtlQueryEnvironmentVariable.S @@ -2,11 +2,12 @@ .ntimp RtlQueryEnvironmentVariable,RtlQueryEnvironmentVariable .text.windows + .ftrace1 RtlQueryEnvironmentVariable: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlQueryEnvironmentVariable(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlReAllocateHeap.S b/libc/nt/ntdll/RtlReAllocateHeap.S index e28ac38b5..fea7827d3 100644 --- a/libc/nt/ntdll/RtlReAllocateHeap.S +++ b/libc/nt/ntdll/RtlReAllocateHeap.S @@ -2,11 +2,12 @@ .ntimp RtlReAllocateHeap,RtlReAllocateHeap .text.windows + .ftrace1 RtlReAllocateHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlReAllocateHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlSizeHeap.S b/libc/nt/ntdll/RtlSizeHeap.S index f3f973f56..7b97fc047 100644 --- a/libc/nt/ntdll/RtlSizeHeap.S +++ b/libc/nt/ntdll/RtlSizeHeap.S @@ -2,11 +2,12 @@ .ntimp RtlSizeHeap,RtlSizeHeap .text.windows + .ftrace1 RtlSizeHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlSizeHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlTryEnterCriticalSection.S b/libc/nt/ntdll/RtlTryEnterCriticalSection.S index 2f7b6fa89..0580e967a 100644 --- a/libc/nt/ntdll/RtlTryEnterCriticalSection.S +++ b/libc/nt/ntdll/RtlTryEnterCriticalSection.S @@ -2,11 +2,12 @@ .ntimp RtlTryEnterCriticalSection,RtlTryEnterCriticalSection .text.windows + .ftrace1 RtlTryEnterCriticalSection: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlTryEnterCriticalSection(%rip) diff --git a/libc/nt/ntdll/RtlUnlockHeap.S b/libc/nt/ntdll/RtlUnlockHeap.S index 017929681..e07b81852 100644 --- a/libc/nt/ntdll/RtlUnlockHeap.S +++ b/libc/nt/ntdll/RtlUnlockHeap.S @@ -2,11 +2,12 @@ .ntimp RtlUnlockHeap,RtlUnlockHeap .text.windows + .ftrace1 RtlUnlockHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RtlUnlockHeap(%rip) diff --git a/libc/nt/ntdll/RtlValidateHeap.S b/libc/nt/ntdll/RtlValidateHeap.S index 766e39c1d..1311d2762 100644 --- a/libc/nt/ntdll/RtlValidateHeap.S +++ b/libc/nt/ntdll/RtlValidateHeap.S @@ -2,11 +2,12 @@ .ntimp RtlValidateHeap,RtlValidateHeap .text.windows + .ftrace1 RtlValidateHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlValidateHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/RtlWalkHeap.S b/libc/nt/ntdll/RtlWalkHeap.S index b6c3cf0ff..859f3af8f 100644 --- a/libc/nt/ntdll/RtlWalkHeap.S +++ b/libc/nt/ntdll/RtlWalkHeap.S @@ -2,11 +2,12 @@ .ntimp RtlWalkHeap,RtlWalkHeap .text.windows + .ftrace1 RtlWalkHeap: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RtlWalkHeap(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ntdll/ZwAreMappedFilesTheSame.S b/libc/nt/ntdll/ZwAreMappedFilesTheSame.S index d363ebcf7..16bc0035c 100644 --- a/libc/nt/ntdll/ZwAreMappedFilesTheSame.S +++ b/libc/nt/ntdll/ZwAreMappedFilesTheSame.S @@ -2,11 +2,12 @@ .ntimp ZwAreMappedFilesTheSame,ZwAreMappedFilesTheSame .text.windows + .ftrace1 ZwAreMappedFilesTheSame: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ZwAreMappedFilesTheSame(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/pdh/PdhAddEnglishCounterW.S b/libc/nt/pdh/PdhAddEnglishCounterW.S index bde00ace7..9fbb8cb96 100644 --- a/libc/nt/pdh/PdhAddEnglishCounterW.S +++ b/libc/nt/pdh/PdhAddEnglishCounterW.S @@ -2,11 +2,12 @@ .imp pdh,__imp_PdhAddEnglishCounterW,PdhAddEnglishCounterW,0 .text.windows + .ftrace1 PdhAddEnglishCounter: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PdhAddEnglishCounterW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/pdh/PdhCollectQueryDataEx.S b/libc/nt/pdh/PdhCollectQueryDataEx.S index f214a4308..c1e0e72ff 100644 --- a/libc/nt/pdh/PdhCollectQueryDataEx.S +++ b/libc/nt/pdh/PdhCollectQueryDataEx.S @@ -2,11 +2,12 @@ .imp pdh,__imp_PdhCollectQueryDataEx,PdhCollectQueryDataEx,0 .text.windows + .ftrace1 PdhCollectQueryDataEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PdhCollectQueryDataEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/pdh/PdhGetFormattedCounterValue.S b/libc/nt/pdh/PdhGetFormattedCounterValue.S index 8ebbf201b..b2e5ccb60 100644 --- a/libc/nt/pdh/PdhGetFormattedCounterValue.S +++ b/libc/nt/pdh/PdhGetFormattedCounterValue.S @@ -2,11 +2,12 @@ .imp pdh,__imp_PdhGetFormattedCounterValue,PdhGetFormattedCounterValue,0 .text.windows + .ftrace1 PdhGetFormattedCounterValue: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PdhGetFormattedCounterValue(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/pdh/PdhOpenQueryW.S b/libc/nt/pdh/PdhOpenQueryW.S index 4d8097552..01d563d51 100644 --- a/libc/nt/pdh/PdhOpenQueryW.S +++ b/libc/nt/pdh/PdhOpenQueryW.S @@ -2,11 +2,12 @@ .imp pdh,__imp_PdhOpenQueryW,PdhOpenQueryW,0 .text.windows + .ftrace1 PdhOpenQuery: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PdhOpenQueryW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/psapi/GetProcessImageFileNameW.S b/libc/nt/psapi/GetProcessImageFileNameW.S index 549120a01..53ab4a125 100644 --- a/libc/nt/psapi/GetProcessImageFileNameW.S +++ b/libc/nt/psapi/GetProcessImageFileNameW.S @@ -2,11 +2,12 @@ .imp psapi,__imp_GetProcessImageFileNameW,GetProcessImageFileNameW,0 .text.windows + .ftrace1 GetProcessImageFileName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessImageFileNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/psapi/GetProcessMemoryInfo.S b/libc/nt/psapi/GetProcessMemoryInfo.S index 65c05ab8e..b44a2cf7a 100644 --- a/libc/nt/psapi/GetProcessMemoryInfo.S +++ b/libc/nt/psapi/GetProcessMemoryInfo.S @@ -2,11 +2,12 @@ .imp psapi,__imp_GetProcessMemoryInfo,GetProcessMemoryInfo,0 .text.windows + .ftrace1 GetProcessMemoryInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetProcessMemoryInfo(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/thunk/msabi.h b/libc/nt/thunk/msabi.h index 73152b52e..0891f83b8 100644 --- a/libc/nt/thunk/msabi.h +++ b/libc/nt/thunk/msabi.h @@ -20,7 +20,7 @@ * Returns true if header should provide MS-ABI overrides. */ #ifndef ShouldUseMsabiAttribute -#if defined(__msabi) && defined(NDEBUG) && !defined(__PG__) +#if defined(__msabi) && defined(NDEBUG) && !defined(__PG__) && !defined(FTRACE) #define ShouldUseMsabiAttribute() 1 #else #define ShouldUseMsabiAttribute() 0 diff --git a/libc/nt/user32/AdjustWindowRect.S b/libc/nt/user32/AdjustWindowRect.S index 827bec2c2..b4b2b1650 100644 --- a/libc/nt/user32/AdjustWindowRect.S +++ b/libc/nt/user32/AdjustWindowRect.S @@ -2,11 +2,12 @@ .imp user32,__imp_AdjustWindowRect,AdjustWindowRect,1507 .text.windows + .ftrace1 AdjustWindowRect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AdjustWindowRect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/AnimateWindow.S b/libc/nt/user32/AnimateWindow.S index 3750ed660..daf201b23 100644 --- a/libc/nt/user32/AnimateWindow.S +++ b/libc/nt/user32/AnimateWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_AnimateWindow,AnimateWindow,1513 .text.windows + .ftrace1 AnimateWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AnimateWindow(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/AppendMenuA.S b/libc/nt/user32/AppendMenuA.S index afea7d383..1579513dd 100644 --- a/libc/nt/user32/AppendMenuA.S +++ b/libc/nt/user32/AppendMenuA.S @@ -2,11 +2,12 @@ .imp user32,__imp_AppendMenuA,AppendMenuA,1515 .text.windows + .ftrace1 AppendMenuA: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AppendMenuA(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/AppendMenuW.S b/libc/nt/user32/AppendMenuW.S index 3041ee7a7..e02b358ba 100644 --- a/libc/nt/user32/AppendMenuW.S +++ b/libc/nt/user32/AppendMenuW.S @@ -2,11 +2,12 @@ .imp user32,__imp_AppendMenuW,AppendMenuW,1516 .text.windows + .ftrace1 AppendMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_AppendMenuW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/BeginPaint.S b/libc/nt/user32/BeginPaint.S index b144b4651..19f72da52 100644 --- a/libc/nt/user32/BeginPaint.S +++ b/libc/nt/user32/BeginPaint.S @@ -2,11 +2,12 @@ .imp user32,__imp_BeginPaint,BeginPaint,1521 .text.windows + .ftrace1 BeginPaint: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_BeginPaint(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/BringWindowToTop.S b/libc/nt/user32/BringWindowToTop.S index bb39f0e9a..7fc77c849 100644 --- a/libc/nt/user32/BringWindowToTop.S +++ b/libc/nt/user32/BringWindowToTop.S @@ -2,11 +2,12 @@ .imp user32,__imp_BringWindowToTop,BringWindowToTop,1523 .text.windows + .ftrace1 BringWindowToTop: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_BringWindowToTop(%rip) diff --git a/libc/nt/user32/CallNextHookEx.S b/libc/nt/user32/CallNextHookEx.S index d25e63643..95dac3a57 100644 --- a/libc/nt/user32/CallNextHookEx.S +++ b/libc/nt/user32/CallNextHookEx.S @@ -2,11 +2,12 @@ .imp user32,__imp_CallNextHookEx,CallNextHookEx,1535 .text.windows + .ftrace1 CallNextHookEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CallNextHookEx(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/CloseWindow.S b/libc/nt/user32/CloseWindow.S index 9754e0d6c..236b63032 100644 --- a/libc/nt/user32/CloseWindow.S +++ b/libc/nt/user32/CloseWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_CloseWindow,CloseWindow,1591 .text.windows + .ftrace1 CloseWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_CloseWindow(%rip) diff --git a/libc/nt/user32/CreateIconIndirect.S b/libc/nt/user32/CreateIconIndirect.S index 2f54c2411..d13de35be 100644 --- a/libc/nt/user32/CreateIconIndirect.S +++ b/libc/nt/user32/CreateIconIndirect.S @@ -2,11 +2,12 @@ .imp user32,__imp_CreateIconIndirect,CreateIconIndirect,1618 .text.windows + .ftrace1 CreateIconIndirect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_CreateIconIndirect(%rip) diff --git a/libc/nt/user32/CreateMenu.S b/libc/nt/user32/CreateMenu.S index b262ef979..31b3840d2 100644 --- a/libc/nt/user32/CreateMenu.S +++ b/libc/nt/user32/CreateMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_CreateMenu,CreateMenu,1621 .text.windows + .ftrace1 CreateMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_CreateMenu(%rip) leave diff --git a/libc/nt/user32/CreatePopupMenu.S b/libc/nt/user32/CreatePopupMenu.S index c60c6e9dc..8732e6fb8 100644 --- a/libc/nt/user32/CreatePopupMenu.S +++ b/libc/nt/user32/CreatePopupMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_CreatePopupMenu,CreatePopupMenu,1622 .text.windows + .ftrace1 CreatePopupMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_CreatePopupMenu(%rip) leave diff --git a/libc/nt/user32/CreateWindowExW.S b/libc/nt/user32/CreateWindowExW.S index 4991a5960..0d9cd64e9 100644 --- a/libc/nt/user32/CreateWindowExW.S +++ b/libc/nt/user32/CreateWindowExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_CreateWindowExW,CreateWindowExW,1625 .text.windows + .ftrace1 CreateWindowEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_CreateWindowExW(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/user32/DefWindowProcW.S b/libc/nt/user32/DefWindowProcW.S index 7c3599454..6573118a6 100644 --- a/libc/nt/user32/DefWindowProcW.S +++ b/libc/nt/user32/DefWindowProcW.S @@ -2,11 +2,12 @@ .imp user32,__imp_DefWindowProcW,DefWindowProcW,174 .text.windows + .ftrace1 DefWindowProc: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DefWindowProcW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/DeleteMenu.S b/libc/nt/user32/DeleteMenu.S index a61d2781e..33902b9a1 100644 --- a/libc/nt/user32/DeleteMenu.S +++ b/libc/nt/user32/DeleteMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_DeleteMenu,DeleteMenu,1681 .text.windows + .ftrace1 DeleteMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DeleteMenu(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/DestroyIcon.S b/libc/nt/user32/DestroyIcon.S index bc7c9fd42..e68585df9 100644 --- a/libc/nt/user32/DestroyIcon.S +++ b/libc/nt/user32/DestroyIcon.S @@ -2,11 +2,12 @@ .imp user32,__imp_DestroyIcon,DestroyIcon,1687 .text.windows + .ftrace1 DestroyIcon: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DestroyIcon(%rip) diff --git a/libc/nt/user32/DestroyMenu.S b/libc/nt/user32/DestroyMenu.S index 967859623..1bd78d00c 100644 --- a/libc/nt/user32/DestroyMenu.S +++ b/libc/nt/user32/DestroyMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_DestroyMenu,DestroyMenu,1688 .text.windows + .ftrace1 DestroyMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DestroyMenu(%rip) diff --git a/libc/nt/user32/DestroyWindow.S b/libc/nt/user32/DestroyWindow.S index 0a758a427..b072fa583 100644 --- a/libc/nt/user32/DestroyWindow.S +++ b/libc/nt/user32/DestroyWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_DestroyWindow,DestroyWindow,1690 .text.windows + .ftrace1 DestroyWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DestroyWindow(%rip) diff --git a/libc/nt/user32/DispatchMessageW.S b/libc/nt/user32/DispatchMessageW.S index 066b1144c..2130d709b 100644 --- a/libc/nt/user32/DispatchMessageW.S +++ b/libc/nt/user32/DispatchMessageW.S @@ -2,11 +2,12 @@ .imp user32,__imp_DispatchMessageW,DispatchMessageW,1698 .text.windows + .ftrace1 DispatchMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_DispatchMessageW(%rip) diff --git a/libc/nt/user32/DrawTextExW.S b/libc/nt/user32/DrawTextExW.S index cd0614714..5d997769d 100644 --- a/libc/nt/user32/DrawTextExW.S +++ b/libc/nt/user32/DrawTextExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_DrawTextExW,DrawTextExW,1730 .text.windows + .ftrace1 DrawTextEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DrawTextExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/DrawTextW.S b/libc/nt/user32/DrawTextW.S index d21c24db4..20c729aeb 100644 --- a/libc/nt/user32/DrawTextW.S +++ b/libc/nt/user32/DrawTextW.S @@ -2,11 +2,12 @@ .imp user32,__imp_DrawTextW,DrawTextW,1731 .text.windows + .ftrace1 DrawText: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_DrawTextW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/EndPaint.S b/libc/nt/user32/EndPaint.S index eedd48387..1f998c9ee 100644 --- a/libc/nt/user32/EndPaint.S +++ b/libc/nt/user32/EndPaint.S @@ -2,11 +2,12 @@ .imp user32,__imp_EndPaint,EndPaint,1752 .text.windows + .ftrace1 EndPaint: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_EndPaint(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/EnumChildWindows.S b/libc/nt/user32/EnumChildWindows.S index fd1182821..43d0cc02c 100644 --- a/libc/nt/user32/EnumChildWindows.S +++ b/libc/nt/user32/EnumChildWindows.S @@ -2,11 +2,12 @@ .imp user32,__imp_EnumChildWindows,EnumChildWindows,1755 .text.windows + .ftrace1 EnumChildWindows: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_EnumChildWindows(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/FillRect.S b/libc/nt/user32/FillRect.S index 57ed4c1b7..d57026b8b 100644 --- a/libc/nt/user32/FillRect.S +++ b/libc/nt/user32/FillRect.S @@ -2,11 +2,12 @@ .imp user32,__imp_FillRect,FillRect,1780 .text.windows + .ftrace1 FillRect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FillRect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/FindWindowExW.S b/libc/nt/user32/FindWindowExW.S index 8249b20ad..a8f3e94c6 100644 --- a/libc/nt/user32/FindWindowExW.S +++ b/libc/nt/user32/FindWindowExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_FindWindowExW,FindWindowExW,1783 .text.windows + .ftrace1 FindWindowEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindWindowExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/FindWindowW.S b/libc/nt/user32/FindWindowW.S index 80db66bc5..2ceb29754 100644 --- a/libc/nt/user32/FindWindowW.S +++ b/libc/nt/user32/FindWindowW.S @@ -2,11 +2,12 @@ .imp user32,__imp_FindWindowW,FindWindowW,1784 .text.windows + .ftrace1 FindWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_FindWindowW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetClientRect.S b/libc/nt/user32/GetClientRect.S index 26ac36100..5c0d55093 100644 --- a/libc/nt/user32/GetClientRect.S +++ b/libc/nt/user32/GetClientRect.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetClientRect,GetClientRect,1815 .text.windows + .ftrace1 GetClientRect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetClientRect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetCursor.S b/libc/nt/user32/GetCursor.S index a26b0911a..839dd9b98 100644 --- a/libc/nt/user32/GetCursor.S +++ b/libc/nt/user32/GetCursor.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetCursor,GetCursor,1826 .text.windows + .ftrace1 GetCursor: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetCursor(%rip) leave diff --git a/libc/nt/user32/GetCursorPos.S b/libc/nt/user32/GetCursorPos.S index 215c72c4e..1e8e3ba7d 100644 --- a/libc/nt/user32/GetCursorPos.S +++ b/libc/nt/user32/GetCursorPos.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetCursorPos,GetCursorPos,1829 .text.windows + .ftrace1 GetCursorPos: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetCursorPos(%rip) diff --git a/libc/nt/user32/GetDC.S b/libc/nt/user32/GetDC.S index 278cf91ba..e57356c3e 100644 --- a/libc/nt/user32/GetDC.S +++ b/libc/nt/user32/GetDC.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetDC,GetDC,1830 .text.windows + .ftrace1 GetDC: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetDC(%rip) diff --git a/libc/nt/user32/GetDesktopWindow.S b/libc/nt/user32/GetDesktopWindow.S index 5a1cc1a1d..7314ad1a6 100644 --- a/libc/nt/user32/GetDesktopWindow.S +++ b/libc/nt/user32/GetDesktopWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetDesktopWindow,GetDesktopWindow,1833 .text.windows + .ftrace1 GetDesktopWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetDesktopWindow(%rip) leave diff --git a/libc/nt/user32/GetKeyState.S b/libc/nt/user32/GetKeyState.S index f0811cf11..feb578a4f 100644 --- a/libc/nt/user32/GetKeyState.S +++ b/libc/nt/user32/GetKeyState.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetKeyState,GetKeyState,1866 .text.windows + .ftrace1 GetKeyState: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetKeyState(%rip) diff --git a/libc/nt/user32/GetKeyboardLayout.S b/libc/nt/user32/GetKeyboardLayout.S index 10ad3daa6..45f492da2 100644 --- a/libc/nt/user32/GetKeyboardLayout.S +++ b/libc/nt/user32/GetKeyboardLayout.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetKeyboardLayout,GetKeyboardLayout,1867 .text.windows + .ftrace1 GetKeyboardLayout: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetKeyboardLayout(%rip) diff --git a/libc/nt/user32/GetMenu.S b/libc/nt/user32/GetMenu.S index 52df950da..7fe2ec3dc 100644 --- a/libc/nt/user32/GetMenu.S +++ b/libc/nt/user32/GetMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetMenu,GetMenu,1881 .text.windows + .ftrace1 GetMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetMenu(%rip) diff --git a/libc/nt/user32/GetMessageW.S b/libc/nt/user32/GetMessageW.S index 285981960..f4c8eb9ba 100644 --- a/libc/nt/user32/GetMessageW.S +++ b/libc/nt/user32/GetMessageW.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetMessageW,GetMessageW,1899 .text.windows + .ftrace1 GetMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetMessageW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetParent.S b/libc/nt/user32/GetParent.S index 1734ce46d..87bebe54e 100644 --- a/libc/nt/user32/GetParent.S +++ b/libc/nt/user32/GetParent.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetParent,GetParent,1906 .text.windows + .ftrace1 GetParent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetParent(%rip) diff --git a/libc/nt/user32/GetShellWindow.S b/libc/nt/user32/GetShellWindow.S index cb5112764..45fa9a188 100644 --- a/libc/nt/user32/GetShellWindow.S +++ b/libc/nt/user32/GetShellWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetShellWindow,GetShellWindow,1950 .text.windows + .ftrace1 GetShellWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_GetShellWindow(%rip) leave diff --git a/libc/nt/user32/GetSystemMenu.S b/libc/nt/user32/GetSystemMenu.S index 9d5beeed8..168d85289 100644 --- a/libc/nt/user32/GetSystemMenu.S +++ b/libc/nt/user32/GetSystemMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetSystemMenu,GetSystemMenu,1955 .text.windows + .ftrace1 GetSystemMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetSystemMenu(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetWindow.S b/libc/nt/user32/GetWindow.S index d7e60eeb5..6d5653d89 100644 --- a/libc/nt/user32/GetWindow.S +++ b/libc/nt/user32/GetWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetWindow,GetWindow,1976 .text.windows + .ftrace1 GetWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindow(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetWindowPlacement.S b/libc/nt/user32/GetWindowPlacement.S index 18762d0ec..8f2357a24 100644 --- a/libc/nt/user32/GetWindowPlacement.S +++ b/libc/nt/user32/GetWindowPlacement.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetWindowPlacement,GetWindowPlacement,1995 .text.windows + .ftrace1 GetWindowPlacement: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindowPlacement(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetWindowRect.S b/libc/nt/user32/GetWindowRect.S index 28c2bbf7f..2208a8218 100644 --- a/libc/nt/user32/GetWindowRect.S +++ b/libc/nt/user32/GetWindowRect.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetWindowRect,GetWindowRect,1997 .text.windows + .ftrace1 GetWindowRect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindowRect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/GetWindowTextW.S b/libc/nt/user32/GetWindowTextW.S index 483fd0a33..d5c394dfd 100644 --- a/libc/nt/user32/GetWindowTextW.S +++ b/libc/nt/user32/GetWindowTextW.S @@ -2,11 +2,12 @@ .imp user32,__imp_GetWindowTextW,GetWindowTextW,2007 .text.windows + .ftrace1 GetWindowText: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetWindowTextW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/InsertMenuW.S b/libc/nt/user32/InsertMenuW.S index c0d99b1d1..ecf0cad0e 100644 --- a/libc/nt/user32/InsertMenuW.S +++ b/libc/nt/user32/InsertMenuW.S @@ -2,11 +2,12 @@ .imp user32,__imp_InsertMenuW,InsertMenuW,2044 .text.windows + .ftrace1 InsertMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_InsertMenuW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/InvalidateRect.S b/libc/nt/user32/InvalidateRect.S index 547e40fa0..2e23672ce 100644 --- a/libc/nt/user32/InvalidateRect.S +++ b/libc/nt/user32/InvalidateRect.S @@ -2,11 +2,12 @@ .imp user32,__imp_InvalidateRect,InvalidateRect,2048 .text.windows + .ftrace1 InvalidateRect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_InvalidateRect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/IsChild.S b/libc/nt/user32/IsChild.S index 2c461805a..fd5d5f4fd 100644 --- a/libc/nt/user32/IsChild.S +++ b/libc/nt/user32/IsChild.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsChild,IsChild,2059 .text.windows + .ftrace1 IsChild: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_IsChild(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/IsIconic.S b/libc/nt/user32/IsIconic.S index 8f2a3ef5a..c0e20bd0e 100644 --- a/libc/nt/user32/IsIconic.S +++ b/libc/nt/user32/IsIconic.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsIconic,IsIconic,2067 .text.windows + .ftrace1 IsIconic: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_IsIconic(%rip) diff --git a/libc/nt/user32/IsMenu.S b/libc/nt/user32/IsMenu.S index e4419014a..893cd3b88 100644 --- a/libc/nt/user32/IsMenu.S +++ b/libc/nt/user32/IsMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsMenu,IsMenu,2070 .text.windows + .ftrace1 IsMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_IsMenu(%rip) diff --git a/libc/nt/user32/IsWindow.S b/libc/nt/user32/IsWindow.S index b49c1d5e2..cd89d36db 100644 --- a/libc/nt/user32/IsWindow.S +++ b/libc/nt/user32/IsWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsWindow,IsWindow,2084 .text.windows + .ftrace1 IsWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_IsWindow(%rip) diff --git a/libc/nt/user32/IsWindowVisible.S b/libc/nt/user32/IsWindowVisible.S index 1f18ad0ee..4531878b2 100644 --- a/libc/nt/user32/IsWindowVisible.S +++ b/libc/nt/user32/IsWindowVisible.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsWindowVisible,IsWindowVisible,2090 .text.windows + .ftrace1 IsWindowVisible: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_IsWindowVisible(%rip) diff --git a/libc/nt/user32/IsZoomed.S b/libc/nt/user32/IsZoomed.S index d17e55c81..61425c299 100644 --- a/libc/nt/user32/IsZoomed.S +++ b/libc/nt/user32/IsZoomed.S @@ -2,11 +2,12 @@ .imp user32,__imp_IsZoomed,IsZoomed,2092 .text.windows + .ftrace1 IsZoomed: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_IsZoomed(%rip) diff --git a/libc/nt/user32/KillTimer.S b/libc/nt/user32/KillTimer.S index 547a062fe..5e0b51445 100644 --- a/libc/nt/user32/KillTimer.S +++ b/libc/nt/user32/KillTimer.S @@ -2,11 +2,12 @@ .imp user32,__imp_KillTimer,KillTimer,2093 .text.windows + .ftrace1 KillTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_KillTimer(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/LoadCursorW.S b/libc/nt/user32/LoadCursorW.S index 5fef52d6b..ff068b250 100644 --- a/libc/nt/user32/LoadCursorW.S +++ b/libc/nt/user32/LoadCursorW.S @@ -2,11 +2,12 @@ .imp user32,__imp_LoadCursorW,LoadCursorW,2101 .text.windows + .ftrace1 LoadCursor: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LoadCursorW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/LoadIconW.S b/libc/nt/user32/LoadIconW.S index 8b09084ac..847cd4336 100644 --- a/libc/nt/user32/LoadIconW.S +++ b/libc/nt/user32/LoadIconW.S @@ -2,11 +2,12 @@ .imp user32,__imp_LoadIconW,LoadIconW,2103 .text.windows + .ftrace1 LoadIcon: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LoadIconW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/LoadImageW.S b/libc/nt/user32/LoadImageW.S index 9c6bb2c71..39428b7e6 100644 --- a/libc/nt/user32/LoadImageW.S +++ b/libc/nt/user32/LoadImageW.S @@ -2,11 +2,12 @@ .imp user32,__imp_LoadImageW,LoadImageW,2105 .text.windows + .ftrace1 LoadImage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_LoadImageW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/MapVirtualKeyExW.S b/libc/nt/user32/MapVirtualKeyExW.S index f081be352..b316f9dd0 100644 --- a/libc/nt/user32/MapVirtualKeyExW.S +++ b/libc/nt/user32/MapVirtualKeyExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_MapVirtualKeyExW,MapVirtualKeyExW,2155 .text.windows + .ftrace1 MapVirtualKeyEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MapVirtualKeyExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/MessageBoxExW.S b/libc/nt/user32/MessageBoxExW.S index 78ed056b3..6e2cc411e 100644 --- a/libc/nt/user32/MessageBoxExW.S +++ b/libc/nt/user32/MessageBoxExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_MessageBoxExW,MessageBoxExW,2165 .text.windows + .ftrace1 MessageBoxEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MessageBoxExW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/MessageBoxW.S b/libc/nt/user32/MessageBoxW.S index f34d46251..8755002ea 100644 --- a/libc/nt/user32/MessageBoxW.S +++ b/libc/nt/user32/MessageBoxW.S @@ -2,11 +2,12 @@ .imp user32,__imp_MessageBoxW,MessageBoxW,2170 .text.windows + .ftrace1 MessageBox: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MessageBoxW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/MoveWindow.S b/libc/nt/user32/MoveWindow.S index bf8f5b037..9fb3b8de6 100644 --- a/libc/nt/user32/MoveWindow.S +++ b/libc/nt/user32/MoveWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_MoveWindow,MoveWindow,2176 .text.windows + .ftrace1 MoveWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_MoveWindow(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/PeekMessageW.S b/libc/nt/user32/PeekMessageW.S index 7b29240e1..34e99907f 100644 --- a/libc/nt/user32/PeekMessageW.S +++ b/libc/nt/user32/PeekMessageW.S @@ -2,11 +2,12 @@ .imp user32,__imp_PeekMessageW,PeekMessageW,2201 .text.windows + .ftrace1 PeekMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_PeekMessageW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/user32/PostQuitMessage.S b/libc/nt/user32/PostQuitMessage.S index 05a56a0c1..ecc4c2207 100644 --- a/libc/nt/user32/PostQuitMessage.S +++ b/libc/nt/user32/PostQuitMessage.S @@ -2,11 +2,12 @@ .imp user32,__imp_PostQuitMessage,PostQuitMessage,2206 .text.windows + .ftrace1 PostQuitMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_PostQuitMessage(%rip) diff --git a/libc/nt/user32/RedrawWindow.S b/libc/nt/user32/RedrawWindow.S index 33e77cb44..596dcfdb7 100644 --- a/libc/nt/user32/RedrawWindow.S +++ b/libc/nt/user32/RedrawWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_RedrawWindow,RedrawWindow,2246 .text.windows + .ftrace1 RedrawWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_RedrawWindow(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/RegisterClassExW.S b/libc/nt/user32/RegisterClassExW.S index d993503dd..06540807a 100644 --- a/libc/nt/user32/RegisterClassExW.S +++ b/libc/nt/user32/RegisterClassExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_RegisterClassExW,RegisterClassExW,2250 .text.windows + .ftrace1 RegisterClassEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegisterClassExW(%rip) diff --git a/libc/nt/user32/RegisterClassW.S b/libc/nt/user32/RegisterClassW.S index a6f5ee4eb..8ec964c09 100644 --- a/libc/nt/user32/RegisterClassW.S +++ b/libc/nt/user32/RegisterClassW.S @@ -2,11 +2,12 @@ .imp user32,__imp_RegisterClassW,RegisterClassW,2251 .text.windows + .ftrace1 RegisterClass: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_RegisterClassW(%rip) diff --git a/libc/nt/user32/ReleaseCapture.S b/libc/nt/user32/ReleaseCapture.S index 6a27409bf..5084dfbfd 100644 --- a/libc/nt/user32/ReleaseCapture.S +++ b/libc/nt/user32/ReleaseCapture.S @@ -2,11 +2,12 @@ .imp user32,__imp_ReleaseCapture,ReleaseCapture,2279 .text.windows + .ftrace1 ReleaseCapture: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_ReleaseCapture(%rip) leave diff --git a/libc/nt/user32/ReleaseDC.S b/libc/nt/user32/ReleaseDC.S index 816e69d7b..4e5b8c595 100644 --- a/libc/nt/user32/ReleaseDC.S +++ b/libc/nt/user32/ReleaseDC.S @@ -2,11 +2,12 @@ .imp user32,__imp_ReleaseDC,ReleaseDC,2280 .text.windows + .ftrace1 ReleaseDC: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ReleaseDC(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SendMessageW.S b/libc/nt/user32/SendMessageW.S index f6c02a747..f2d9148a4 100644 --- a/libc/nt/user32/SendMessageW.S +++ b/libc/nt/user32/SendMessageW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SendMessageW,SendMessageW,2306 .text.windows + .ftrace1 SendMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SendMessageW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetCapture.S b/libc/nt/user32/SetCapture.S index 241150dbf..3a3d09613 100644 --- a/libc/nt/user32/SetCapture.S +++ b/libc/nt/user32/SetCapture.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetCapture,SetCapture,2310 .text.windows + .ftrace1 SetCapture: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetCapture(%rip) diff --git a/libc/nt/user32/SetClassLongW.S b/libc/nt/user32/SetClassLongW.S index 6258d5e1d..7c566cc24 100644 --- a/libc/nt/user32/SetClassLongW.S +++ b/libc/nt/user32/SetClassLongW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetClassLongW,SetClassLongW,2316 .text.windows + .ftrace1 SetClassLong: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetClassLongW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetCursor.S b/libc/nt/user32/SetCursor.S index 1292e2c4b..b6556e4c0 100644 --- a/libc/nt/user32/SetCursor.S +++ b/libc/nt/user32/SetCursor.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetCursor,SetCursor,2321 .text.windows + .ftrace1 SetCursor: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_SetCursor(%rip) diff --git a/libc/nt/user32/SetParent.S b/libc/nt/user32/SetParent.S index 0ce09a3ae..ab1d29aaa 100644 --- a/libc/nt/user32/SetParent.S +++ b/libc/nt/user32/SetParent.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetParent,SetParent,2357 .text.windows + .ftrace1 SetParent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetParent(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetTimer.S b/libc/nt/user32/SetTimer.S index 5d2691305..d117e5078 100644 --- a/libc/nt/user32/SetTimer.S +++ b/libc/nt/user32/SetTimer.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetTimer,SetTimer,2384 .text.windows + .ftrace1 SetTimer: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetTimer(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowLongW.S b/libc/nt/user32/SetWindowLongW.S index a1749c165..c4d3db95f 100644 --- a/libc/nt/user32/SetWindowLongW.S +++ b/libc/nt/user32/SetWindowLongW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowLongW,SetWindowLongW,2398 .text.windows + .ftrace1 SetWindowLong: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowLongW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowPlacement.S b/libc/nt/user32/SetWindowPlacement.S index e56881f44..5fc9d87ee 100644 --- a/libc/nt/user32/SetWindowPlacement.S +++ b/libc/nt/user32/SetWindowPlacement.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowPlacement,SetWindowPlacement,2399 .text.windows + .ftrace1 SetWindowPlacement: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowPlacement(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowPos.S b/libc/nt/user32/SetWindowPos.S index 17ad5bbbc..d3af77906 100644 --- a/libc/nt/user32/SetWindowPos.S +++ b/libc/nt/user32/SetWindowPos.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowPos,SetWindowPos,2400 .text.windows + .ftrace1 SetWindowPos: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowPos(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowTextW.S b/libc/nt/user32/SetWindowTextW.S index 527308908..64a7c61d6 100644 --- a/libc/nt/user32/SetWindowTextW.S +++ b/libc/nt/user32/SetWindowTextW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowTextW,SetWindowTextW,2405 .text.windows + .ftrace1 SetWindowText: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowTextW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowsHookExW.S b/libc/nt/user32/SetWindowsHookExW.S index 80c1b08da..68d272104 100644 --- a/libc/nt/user32/SetWindowsHookExW.S +++ b/libc/nt/user32/SetWindowsHookExW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowsHookExW,SetWindowsHookExW,2409 .text.windows + .ftrace1 SetWindowsHookEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowsHookExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/SetWindowsHookW.S b/libc/nt/user32/SetWindowsHookW.S index e84205ae8..660b016fe 100644 --- a/libc/nt/user32/SetWindowsHookW.S +++ b/libc/nt/user32/SetWindowsHookW.S @@ -2,11 +2,12 @@ .imp user32,__imp_SetWindowsHookW,SetWindowsHookW,2410 .text.windows + .ftrace1 SetWindowsHook: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetWindowsHookW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/ShowCaret.S b/libc/nt/user32/ShowCaret.S index 605c19201..14b5d2b14 100644 --- a/libc/nt/user32/ShowCaret.S +++ b/libc/nt/user32/ShowCaret.S @@ -2,11 +2,12 @@ .imp user32,__imp_ShowCaret,ShowCaret,2411 .text.windows + .ftrace1 ShowCaret: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ShowCaret(%rip) diff --git a/libc/nt/user32/ShowCursor.S b/libc/nt/user32/ShowCursor.S index 0dcc54d5f..b884e97d8 100644 --- a/libc/nt/user32/ShowCursor.S +++ b/libc/nt/user32/ShowCursor.S @@ -2,11 +2,12 @@ .imp user32,__imp_ShowCursor,ShowCursor,2412 .text.windows + .ftrace1 ShowCursor: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_ShowCursor(%rip) diff --git a/libc/nt/user32/ShowWindow.S b/libc/nt/user32/ShowWindow.S index 6beed522e..8395affcc 100644 --- a/libc/nt/user32/ShowWindow.S +++ b/libc/nt/user32/ShowWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_ShowWindow,ShowWindow,2417 .text.windows + .ftrace1 ShowWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ShowWindow(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/TrackPopupMenu.S b/libc/nt/user32/TrackPopupMenu.S index e5fa5793e..3a16e4ec6 100644 --- a/libc/nt/user32/TrackPopupMenu.S +++ b/libc/nt/user32/TrackPopupMenu.S @@ -2,11 +2,12 @@ .imp user32,__imp_TrackPopupMenu,TrackPopupMenu,2443 .text.windows + .ftrace1 TrackPopupMenu: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_TrackPopupMenu(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/user32/TranslateMessage.S b/libc/nt/user32/TranslateMessage.S index ae91c3b86..9eb891ecf 100644 --- a/libc/nt/user32/TranslateMessage.S +++ b/libc/nt/user32/TranslateMessage.S @@ -2,11 +2,12 @@ .imp user32,__imp_TranslateMessage,TranslateMessage,2449 .text.windows + .ftrace1 TranslateMessage: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_TranslateMessage(%rip) diff --git a/libc/nt/user32/UnhookWindowsHook.S b/libc/nt/user32/UnhookWindowsHook.S index 85b4aa6ef..a2e529f07 100644 --- a/libc/nt/user32/UnhookWindowsHook.S +++ b/libc/nt/user32/UnhookWindowsHook.S @@ -2,11 +2,12 @@ .imp user32,__imp_UnhookWindowsHook,UnhookWindowsHook,2452 .text.windows + .ftrace1 UnhookWindowsHook: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_UnhookWindowsHook(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/user32/UnhookWindowsHookEx.S b/libc/nt/user32/UnhookWindowsHookEx.S index 04adae9d0..cbc96c680 100644 --- a/libc/nt/user32/UnhookWindowsHookEx.S +++ b/libc/nt/user32/UnhookWindowsHookEx.S @@ -2,11 +2,12 @@ .imp user32,__imp_UnhookWindowsHookEx,UnhookWindowsHookEx,2453 .text.windows + .ftrace1 UnhookWindowsHookEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_UnhookWindowsHookEx(%rip) diff --git a/libc/nt/user32/UpdateWindow.S b/libc/nt/user32/UpdateWindow.S index 8dc392548..75462ba37 100644 --- a/libc/nt/user32/UpdateWindow.S +++ b/libc/nt/user32/UpdateWindow.S @@ -2,11 +2,12 @@ .imp user32,__imp_UpdateWindow,UpdateWindow,2474 .text.windows + .ftrace1 UpdateWindow: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_UpdateWindow(%rip) diff --git a/libc/nt/user32/WaitForInputIdle.S b/libc/nt/user32/WaitForInputIdle.S index dccfdd92b..d8694ceb4 100644 --- a/libc/nt/user32/WaitForInputIdle.S +++ b/libc/nt/user32/WaitForInputIdle.S @@ -2,11 +2,12 @@ .imp user32,__imp_WaitForInputIdle,WaitForInputIdle,2495 .text.windows + .ftrace1 WaitForInputIdle: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WaitForInputIdle(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/FreeAddrInfoExW.S b/libc/nt/ws2_32/FreeAddrInfoExW.S index eeaea9f84..616ac559e 100644 --- a/libc/nt/ws2_32/FreeAddrInfoExW.S +++ b/libc/nt/ws2_32/FreeAddrInfoExW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_FreeAddrInfoExW,FreeAddrInfoExW,26 .text.windows + .ftrace1 FreeAddrInfoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FreeAddrInfoExW(%rip) diff --git a/libc/nt/ws2_32/FreeAddrInfoW.S b/libc/nt/ws2_32/FreeAddrInfoW.S index ab0a19c61..acaae47c8 100644 --- a/libc/nt/ws2_32/FreeAddrInfoW.S +++ b/libc/nt/ws2_32/FreeAddrInfoW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_FreeAddrInfoW,FreeAddrInfoW,27 .text.windows + .ftrace1 FreeAddrInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_FreeAddrInfoW(%rip) diff --git a/libc/nt/ws2_32/GetAddrInfoExCancel.S b/libc/nt/ws2_32/GetAddrInfoExCancel.S index 5e74165fe..d8666707c 100644 --- a/libc/nt/ws2_32/GetAddrInfoExCancel.S +++ b/libc/nt/ws2_32/GetAddrInfoExCancel.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetAddrInfoExCancel,GetAddrInfoExCancel,29 .text.windows + .ftrace1 GetAddrInfoExCancel: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetAddrInfoExCancel(%rip) diff --git a/libc/nt/ws2_32/GetAddrInfoExOverlappedResult.S b/libc/nt/ws2_32/GetAddrInfoExOverlappedResult.S index bb1590e31..1dac2ac5e 100644 --- a/libc/nt/ws2_32/GetAddrInfoExOverlappedResult.S +++ b/libc/nt/ws2_32/GetAddrInfoExOverlappedResult.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetAddrInfoExOverlappedResult,GetAddrInfoExOverlappedResult,30 .text.windows + .ftrace1 GetAddrInfoExOverlappedResult: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_GetAddrInfoExOverlappedResult(%rip) diff --git a/libc/nt/ws2_32/GetAddrInfoExW.S b/libc/nt/ws2_32/GetAddrInfoExW.S index 1c4671121..498dc8330 100644 --- a/libc/nt/ws2_32/GetAddrInfoExW.S +++ b/libc/nt/ws2_32/GetAddrInfoExW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetAddrInfoExW,GetAddrInfoExW,31 .text.windows + .ftrace1 GetAddrInfoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetAddrInfoExW(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/GetAddrInfoW.S b/libc/nt/ws2_32/GetAddrInfoW.S index b6576bc5c..d6c4f96a4 100644 --- a/libc/nt/ws2_32/GetAddrInfoW.S +++ b/libc/nt/ws2_32/GetAddrInfoW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetAddrInfoW,GetAddrInfoW,32 .text.windows + .ftrace1 GetAddrInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetAddrInfoW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/GetHostNameW.S b/libc/nt/ws2_32/GetHostNameW.S index 04d3a75ef..f35275c71 100644 --- a/libc/nt/ws2_32/GetHostNameW.S +++ b/libc/nt/ws2_32/GetHostNameW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetHostNameW,GetHostNameW,33 .text.windows + .ftrace1 GetHostName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetHostNameW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/GetNameInfoW.S b/libc/nt/ws2_32/GetNameInfoW.S index 9181db017..d7a74dd77 100644 --- a/libc/nt/ws2_32/GetNameInfoW.S +++ b/libc/nt/ws2_32/GetNameInfoW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_GetNameInfoW,GetNameInfoW,34 .text.windows + .ftrace1 GetNameInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_GetNameInfoW(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/SetAddrInfoExW.S b/libc/nt/ws2_32/SetAddrInfoExW.S index 893c9628d..9dc80d02c 100644 --- a/libc/nt/ws2_32/SetAddrInfoExW.S +++ b/libc/nt/ws2_32/SetAddrInfoExW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_SetAddrInfoExW,SetAddrInfoExW,38 .text.windows + .ftrace1 SetAddrInfoEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_SetAddrInfoExW(%rip),%rax jmp __sysv2nt12 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAccept.S b/libc/nt/ws2_32/WSAAccept.S index a93311445..fbc85d731 100644 --- a/libc/nt/ws2_32/WSAAccept.S +++ b/libc/nt/ws2_32/WSAAccept.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAccept,WSAAccept,41 .text.windows + .ftrace1 WSAAccept: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAccept(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAddressToStringW.S b/libc/nt/ws2_32/WSAAddressToStringW.S index 95e0bfb29..ca1daa768 100644 --- a/libc/nt/ws2_32/WSAAddressToStringW.S +++ b/libc/nt/ws2_32/WSAAddressToStringW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAddressToStringW,WSAAddressToStringW,43 .text.windows + .ftrace1 WSAAddressToString: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAddressToStringW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAsyncGetHostByAddr.S b/libc/nt/ws2_32/WSAAsyncGetHostByAddr.S index 5baffa202..5098ad0c8 100644 --- a/libc/nt/ws2_32/WSAAsyncGetHostByAddr.S +++ b/libc/nt/ws2_32/WSAAsyncGetHostByAddr.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAsyncGetHostByAddr,WSAAsyncGetHostByAddr,102 .text.windows + .ftrace1 WSAAsyncGetHostByAddr: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAsyncGetHostByAddr(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAsyncGetHostByName.S b/libc/nt/ws2_32/WSAAsyncGetHostByName.S index 38d2a5bfc..bf7bef497 100644 --- a/libc/nt/ws2_32/WSAAsyncGetHostByName.S +++ b/libc/nt/ws2_32/WSAAsyncGetHostByName.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAsyncGetHostByName,WSAAsyncGetHostByName,103 .text.windows + .ftrace1 WSAAsyncGetHostByName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAsyncGetHostByName(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAsyncGetProtoByName.S b/libc/nt/ws2_32/WSAAsyncGetProtoByName.S index 252474b86..fa36401d4 100644 --- a/libc/nt/ws2_32/WSAAsyncGetProtoByName.S +++ b/libc/nt/ws2_32/WSAAsyncGetProtoByName.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAsyncGetProtoByName,WSAAsyncGetProtoByName,105 .text.windows + .ftrace1 WSAAsyncGetProtoByName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAsyncGetProtoByName(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAAsyncGetProtoByNumber.S b/libc/nt/ws2_32/WSAAsyncGetProtoByNumber.S index 310b75437..956a82411 100644 --- a/libc/nt/ws2_32/WSAAsyncGetProtoByNumber.S +++ b/libc/nt/ws2_32/WSAAsyncGetProtoByNumber.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAAsyncGetProtoByNumber,WSAAsyncGetProtoByNumber,104 .text.windows + .ftrace1 WSAAsyncGetProtoByNumber: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAAsyncGetProtoByNumber(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSACleanup.S b/libc/nt/ws2_32/WSACleanup.S index d57962263..22149d74e 100644 --- a/libc/nt/ws2_32/WSACleanup.S +++ b/libc/nt/ws2_32/WSACleanup.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSACleanup,WSACleanup,116 .text.windows + .ftrace1 WSACleanup: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_WSACleanup(%rip) leave diff --git a/libc/nt/ws2_32/WSACloseEvent.S b/libc/nt/ws2_32/WSACloseEvent.S index 8fa277f33..0f7836804 100644 --- a/libc/nt/ws2_32/WSACloseEvent.S +++ b/libc/nt/ws2_32/WSACloseEvent.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSACloseEvent,WSACloseEvent,45 .text.windows + .ftrace1 WSACloseEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSACloseEvent(%rip) diff --git a/libc/nt/ws2_32/WSAConnect.S b/libc/nt/ws2_32/WSAConnect.S index b833e371f..9713b0132 100644 --- a/libc/nt/ws2_32/WSAConnect.S +++ b/libc/nt/ws2_32/WSAConnect.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAConnect,WSAConnect,46 .text.windows + .ftrace1 WSAConnect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAConnect(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAConnectByList.S b/libc/nt/ws2_32/WSAConnectByList.S index 8fc69b948..640e5e460 100644 --- a/libc/nt/ws2_32/WSAConnectByList.S +++ b/libc/nt/ws2_32/WSAConnectByList.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAConnectByList,WSAConnectByList,47 .text.windows + .ftrace1 WSAConnectByList: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAConnectByList(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAConnectByNameW.S b/libc/nt/ws2_32/WSAConnectByNameW.S index 6bc0085dc..ab68c260c 100644 --- a/libc/nt/ws2_32/WSAConnectByNameW.S +++ b/libc/nt/ws2_32/WSAConnectByNameW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAConnectByNameW,WSAConnectByNameW,49 .text.windows + .ftrace1 WSAConnectByName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAConnectByNameW(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSACreateEvent.S b/libc/nt/ws2_32/WSACreateEvent.S index cc8895e4e..43bd95732 100644 --- a/libc/nt/ws2_32/WSACreateEvent.S +++ b/libc/nt/ws2_32/WSACreateEvent.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSACreateEvent,WSACreateEvent,50 .text.windows + .ftrace1 WSACreateEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_WSACreateEvent(%rip) leave diff --git a/libc/nt/ws2_32/WSADuplicateSocketW.S b/libc/nt/ws2_32/WSADuplicateSocketW.S index 40119ab62..1ca8bc5cf 100644 --- a/libc/nt/ws2_32/WSADuplicateSocketW.S +++ b/libc/nt/ws2_32/WSADuplicateSocketW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSADuplicateSocketW,WSADuplicateSocketW,59 .text.windows + .ftrace1 WSADuplicateSocket: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSADuplicateSocketW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAEnumNameSpaceProvidersExW.S b/libc/nt/ws2_32/WSAEnumNameSpaceProvidersExW.S index 1e7d97e2a..c3e9daa15 100644 --- a/libc/nt/ws2_32/WSAEnumNameSpaceProvidersExW.S +++ b/libc/nt/ws2_32/WSAEnumNameSpaceProvidersExW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAEnumNameSpaceProvidersExW,WSAEnumNameSpaceProvidersExW,62 .text.windows + .ftrace1 WSAEnumNameSpaceProvidersEx: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAEnumNameSpaceProvidersExW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAEnumNameSpaceProvidersW.S b/libc/nt/ws2_32/WSAEnumNameSpaceProvidersW.S index f0d93bd61..2c9bc776a 100644 --- a/libc/nt/ws2_32/WSAEnumNameSpaceProvidersW.S +++ b/libc/nt/ws2_32/WSAEnumNameSpaceProvidersW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAEnumNameSpaceProvidersW,WSAEnumNameSpaceProvidersW,63 .text.windows + .ftrace1 WSAEnumNameSpaceProviders: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAEnumNameSpaceProvidersW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAEnumNetworkEvents.S b/libc/nt/ws2_32/WSAEnumNetworkEvents.S index 83d231103..6cc169622 100644 --- a/libc/nt/ws2_32/WSAEnumNetworkEvents.S +++ b/libc/nt/ws2_32/WSAEnumNetworkEvents.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAEnumNetworkEvents,WSAEnumNetworkEvents,64 .text.windows + .ftrace1 WSAEnumNetworkEvents: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAEnumNetworkEvents(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAEnumProtocolsW.S b/libc/nt/ws2_32/WSAEnumProtocolsW.S index 173ec5c67..2c070d52f 100644 --- a/libc/nt/ws2_32/WSAEnumProtocolsW.S +++ b/libc/nt/ws2_32/WSAEnumProtocolsW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAEnumProtocolsW,WSAEnumProtocolsW,66 .text.windows + .ftrace1 WSAEnumProtocols: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAEnumProtocolsW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAEventSelect.S b/libc/nt/ws2_32/WSAEventSelect.S index 8c07a9fc7..6f6b43125 100644 --- a/libc/nt/ws2_32/WSAEventSelect.S +++ b/libc/nt/ws2_32/WSAEventSelect.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAEventSelect,WSAEventSelect,67 .text.windows + .ftrace1 WSAEventSelect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAEventSelect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAGetLastError.S b/libc/nt/ws2_32/WSAGetLastError.S index fa50aa500..41cbe3285 100644 --- a/libc/nt/ws2_32/WSAGetLastError.S +++ b/libc/nt/ws2_32/WSAGetLastError.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAGetLastError,WSAGetLastError,111 .text.windows + .ftrace1 WSAGetLastError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable sub $32,%rsp call *__imp_WSAGetLastError(%rip) leave diff --git a/libc/nt/ws2_32/WSAGetOverlappedResult.S b/libc/nt/ws2_32/WSAGetOverlappedResult.S index a4605a220..8aea9aef0 100644 --- a/libc/nt/ws2_32/WSAGetOverlappedResult.S +++ b/libc/nt/ws2_32/WSAGetOverlappedResult.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAGetOverlappedResult,WSAGetOverlappedResult,68 .text.windows + .ftrace1 WSAGetOverlappedResult: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAGetOverlappedResult(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAGetQOSByName.S b/libc/nt/ws2_32/WSAGetQOSByName.S index 8856483ba..f8658ae5d 100644 --- a/libc/nt/ws2_32/WSAGetQOSByName.S +++ b/libc/nt/ws2_32/WSAGetQOSByName.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAGetQOSByName,WSAGetQOSByName,69 .text.windows + .ftrace1 WSAGetQOSByName: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAGetQOSByName(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAGetServiceClassInfoW.S b/libc/nt/ws2_32/WSAGetServiceClassInfoW.S index e2f9176c6..ec0eeebf5 100644 --- a/libc/nt/ws2_32/WSAGetServiceClassInfoW.S +++ b/libc/nt/ws2_32/WSAGetServiceClassInfoW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAGetServiceClassInfoW,WSAGetServiceClassInfoW,71 .text.windows + .ftrace1 WSAGetServiceClassInfo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAGetServiceClassInfoW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAGetServiceClassNameByClassIdW.S b/libc/nt/ws2_32/WSAGetServiceClassNameByClassIdW.S index ece3b3752..99c9560bf 100644 --- a/libc/nt/ws2_32/WSAGetServiceClassNameByClassIdW.S +++ b/libc/nt/ws2_32/WSAGetServiceClassNameByClassIdW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAGetServiceClassNameByClassIdW,WSAGetServiceClassNameByClassIdW,73 .text.windows + .ftrace1 WSAGetServiceClassNameByClassId: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAGetServiceClassNameByClassIdW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAInstallServiceClassW.S b/libc/nt/ws2_32/WSAInstallServiceClassW.S index 949cbc235..e0684e25e 100644 --- a/libc/nt/ws2_32/WSAInstallServiceClassW.S +++ b/libc/nt/ws2_32/WSAInstallServiceClassW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAInstallServiceClassW,WSAInstallServiceClassW,77 .text.windows + .ftrace1 WSAInstallServiceClass: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSAInstallServiceClassW(%rip) diff --git a/libc/nt/ws2_32/WSAIoctl.S b/libc/nt/ws2_32/WSAIoctl.S index a9895caaf..c138d2732 100644 --- a/libc/nt/ws2_32/WSAIoctl.S +++ b/libc/nt/ws2_32/WSAIoctl.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAIoctl,WSAIoctl,78 .text.windows + .ftrace1 WSAIoctl: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAIoctl(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAJoinLeaf.S b/libc/nt/ws2_32/WSAJoinLeaf.S index 066372fa7..ee7f68364 100644 --- a/libc/nt/ws2_32/WSAJoinLeaf.S +++ b/libc/nt/ws2_32/WSAJoinLeaf.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAJoinLeaf,WSAJoinLeaf,79 .text.windows + .ftrace1 WSAJoinLeaf: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAJoinLeaf(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSALookupServiceBeginW.S b/libc/nt/ws2_32/WSALookupServiceBeginW.S index 547cb0d17..9a0d4af46 100644 --- a/libc/nt/ws2_32/WSALookupServiceBeginW.S +++ b/libc/nt/ws2_32/WSALookupServiceBeginW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSALookupServiceBeginW,WSALookupServiceBeginW,81 .text.windows + .ftrace1 WSALookupServiceBegin: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSALookupServiceBeginW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSALookupServiceEnd.S b/libc/nt/ws2_32/WSALookupServiceEnd.S index 9f1215a63..d2257114b 100644 --- a/libc/nt/ws2_32/WSALookupServiceEnd.S +++ b/libc/nt/ws2_32/WSALookupServiceEnd.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSALookupServiceEnd,WSALookupServiceEnd,82 .text.windows + .ftrace1 WSALookupServiceEnd: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSALookupServiceEnd(%rip) diff --git a/libc/nt/ws2_32/WSALookupServiceNextW.S b/libc/nt/ws2_32/WSALookupServiceNextW.S index 9b3ec3ef7..757bde256 100644 --- a/libc/nt/ws2_32/WSALookupServiceNextW.S +++ b/libc/nt/ws2_32/WSALookupServiceNextW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSALookupServiceNextW,WSALookupServiceNextW,84 .text.windows + .ftrace1 WSALookupServiceNext: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSALookupServiceNextW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSANSPIoctl.S b/libc/nt/ws2_32/WSANSPIoctl.S index 360099a44..545704429 100644 --- a/libc/nt/ws2_32/WSANSPIoctl.S +++ b/libc/nt/ws2_32/WSANSPIoctl.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSANSPIoctl,WSANSPIoctl,85 .text.windows + .ftrace1 WSANSPIoctl: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSANSPIoctl(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAPoll.S b/libc/nt/ws2_32/WSAPoll.S index a9f8b2e33..c2d2a8305 100644 --- a/libc/nt/ws2_32/WSAPoll.S +++ b/libc/nt/ws2_32/WSAPoll.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAPoll,WSAPoll,88 .text.windows + .ftrace1 WSAPoll: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAPoll(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAProviderConfigChange.S b/libc/nt/ws2_32/WSAProviderConfigChange.S index 35fb4d628..61d2e2f6a 100644 --- a/libc/nt/ws2_32/WSAProviderConfigChange.S +++ b/libc/nt/ws2_32/WSAProviderConfigChange.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAProviderConfigChange,WSAProviderConfigChange,90 .text.windows + .ftrace1 WSAProviderConfigChange: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAProviderConfigChange(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSARecv.S b/libc/nt/ws2_32/WSARecv.S index 5f2eb8954..099f2c3ed 100644 --- a/libc/nt/ws2_32/WSARecv.S +++ b/libc/nt/ws2_32/WSARecv.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSARecv,WSARecv,91 .text.windows + .ftrace1 __WSARecv: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSARecv(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSARecvDisconnect.S b/libc/nt/ws2_32/WSARecvDisconnect.S index 02c08986e..2362f2629 100644 --- a/libc/nt/ws2_32/WSARecvDisconnect.S +++ b/libc/nt/ws2_32/WSARecvDisconnect.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSARecvDisconnect,WSARecvDisconnect,92 .text.windows + .ftrace1 WSARecvDisconnect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSARecvDisconnect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSARecvFrom.S b/libc/nt/ws2_32/WSARecvFrom.S index 7762588f6..561de503f 100644 --- a/libc/nt/ws2_32/WSARecvFrom.S +++ b/libc/nt/ws2_32/WSARecvFrom.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSARecvFrom,WSARecvFrom,93 .text.windows + .ftrace1 __WSARecvFrom: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSARecvFrom(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSARemoveServiceClass.S b/libc/nt/ws2_32/WSARemoveServiceClass.S index c98548798..d8d204443 100644 --- a/libc/nt/ws2_32/WSARemoveServiceClass.S +++ b/libc/nt/ws2_32/WSARemoveServiceClass.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSARemoveServiceClass,WSARemoveServiceClass,94 .text.windows + .ftrace1 WSARemoveServiceClass: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSARemoveServiceClass(%rip) diff --git a/libc/nt/ws2_32/WSAResetEvent.S b/libc/nt/ws2_32/WSAResetEvent.S index 3ae4c7006..b2536bb37 100644 --- a/libc/nt/ws2_32/WSAResetEvent.S +++ b/libc/nt/ws2_32/WSAResetEvent.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAResetEvent,WSAResetEvent,95 .text.windows + .ftrace1 WSAResetEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSAResetEvent(%rip) diff --git a/libc/nt/ws2_32/WSASend.S b/libc/nt/ws2_32/WSASend.S index 158a0d41a..bff0454df 100644 --- a/libc/nt/ws2_32/WSASend.S +++ b/libc/nt/ws2_32/WSASend.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASend,WSASend,96 .text.windows + .ftrace1 WSASend: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASend(%rip),%rax jmp __sysv2nt8 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSASendDisconnect.S b/libc/nt/ws2_32/WSASendDisconnect.S index 1876156cd..32ff3e688 100644 --- a/libc/nt/ws2_32/WSASendDisconnect.S +++ b/libc/nt/ws2_32/WSASendDisconnect.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASendDisconnect,WSASendDisconnect,97 .text.windows + .ftrace1 WSASendDisconnect: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASendDisconnect(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSASendMsg.S b/libc/nt/ws2_32/WSASendMsg.S index 2c03815e0..70beebdf0 100644 --- a/libc/nt/ws2_32/WSASendMsg.S +++ b/libc/nt/ws2_32/WSASendMsg.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASendMsg,WSASendMsg,98 .text.windows + .ftrace1 WSASendMsg: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASendMsg(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSASendTo.S b/libc/nt/ws2_32/WSASendTo.S index a278c88c6..f616c5efb 100644 --- a/libc/nt/ws2_32/WSASendTo.S +++ b/libc/nt/ws2_32/WSASendTo.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASendTo,WSASendTo,99 .text.windows + .ftrace1 WSASendTo: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASendTo(%rip),%rax jmp __sysv2nt10 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSASetEvent.S b/libc/nt/ws2_32/WSASetEvent.S index 8b849f2a2..24120ecb0 100644 --- a/libc/nt/ws2_32/WSASetEvent.S +++ b/libc/nt/ws2_32/WSASetEvent.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASetEvent,WSASetEvent,100 .text.windows + .ftrace1 WSASetEvent: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSASetEvent(%rip) diff --git a/libc/nt/ws2_32/WSASetLastError.S b/libc/nt/ws2_32/WSASetLastError.S index 541b5daf7..09c319991 100644 --- a/libc/nt/ws2_32/WSASetLastError.S +++ b/libc/nt/ws2_32/WSASetLastError.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASetLastError,WSASetLastError,112 .text.windows + .ftrace1 WSASetLastError: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_WSASetLastError(%rip) diff --git a/libc/nt/ws2_32/WSASetServiceW.S b/libc/nt/ws2_32/WSASetServiceW.S index d02e997e9..10f020cb4 100644 --- a/libc/nt/ws2_32/WSASetServiceW.S +++ b/libc/nt/ws2_32/WSASetServiceW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASetServiceW,WSASetServiceW,118 .text.windows + .ftrace1 WSASetService: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASetServiceW(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSASocketW.S b/libc/nt/ws2_32/WSASocketW.S index 3e97660dc..bc262dd55 100644 --- a/libc/nt/ws2_32/WSASocketW.S +++ b/libc/nt/ws2_32/WSASocketW.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSASocketW,WSASocketW,120 .text.windows + .ftrace1 WSASocket: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSASocketW(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAStartup.S b/libc/nt/ws2_32/WSAStartup.S index 7c0a600a7..81f30ff8d 100644 --- a/libc/nt/ws2_32/WSAStartup.S +++ b/libc/nt/ws2_32/WSAStartup.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAStartup,WSAStartup,115 .text.windows + .ftrace1 WSAStartup: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAStartup(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/WSAWaitForMultipleEvents.S b/libc/nt/ws2_32/WSAWaitForMultipleEvents.S index 9c671bc90..db9c4fc09 100644 --- a/libc/nt/ws2_32/WSAWaitForMultipleEvents.S +++ b/libc/nt/ws2_32/WSAWaitForMultipleEvents.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_WSAWaitForMultipleEvents,WSAWaitForMultipleEvents,124 .text.windows + .ftrace1 __WSAWaitForMultipleEvents: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_WSAWaitForMultipleEvents(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/accept.S b/libc/nt/ws2_32/accept.S index 829574ae0..ba05080d3 100644 --- a/libc/nt/ws2_32/accept.S +++ b/libc/nt/ws2_32/accept.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_accept,accept,1 .text.windows + .ftrace1 __sys_accept_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_accept(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/bind.S b/libc/nt/ws2_32/bind.S index 841b96b81..ac97229ae 100644 --- a/libc/nt/ws2_32/bind.S +++ b/libc/nt/ws2_32/bind.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_bind,bind,2 .text.windows + .ftrace1 __sys_bind_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_bind(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/closesocket.S b/libc/nt/ws2_32/closesocket.S index 405512c10..41171e168 100644 --- a/libc/nt/ws2_32/closesocket.S +++ b/libc/nt/ws2_32/closesocket.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_closesocket,closesocket,3 .text.windows + .ftrace1 __sys_closesocket_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov %rdi,%rcx sub $32,%rsp call *__imp_closesocket(%rip) diff --git a/libc/nt/ws2_32/getpeername.S b/libc/nt/ws2_32/getpeername.S index 41ef2455d..1e5863930 100644 --- a/libc/nt/ws2_32/getpeername.S +++ b/libc/nt/ws2_32/getpeername.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_getpeername,getpeername,5 .text.windows + .ftrace1 __sys_getpeername_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_getpeername(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/getsockname.S b/libc/nt/ws2_32/getsockname.S index 1f29c8194..340c9f0c7 100644 --- a/libc/nt/ws2_32/getsockname.S +++ b/libc/nt/ws2_32/getsockname.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_getsockname,getsockname,6 .text.windows + .ftrace1 __sys_getsockname_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_getsockname(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/getsockopt.S b/libc/nt/ws2_32/getsockopt.S index 8b7dca234..206a332ed 100644 --- a/libc/nt/ws2_32/getsockopt.S +++ b/libc/nt/ws2_32/getsockopt.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_getsockopt,getsockopt,7 .text.windows + .ftrace1 __sys_getsockopt_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_getsockopt(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/ioctlsocket.S b/libc/nt/ws2_32/ioctlsocket.S index 1071fb893..b8b543acd 100644 --- a/libc/nt/ws2_32/ioctlsocket.S +++ b/libc/nt/ws2_32/ioctlsocket.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_ioctlsocket,ioctlsocket,10 .text.windows + .ftrace1 __sys_ioctlsocket_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_ioctlsocket(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/listen.S b/libc/nt/ws2_32/listen.S index 6da0081c8..f05c58667 100644 --- a/libc/nt/ws2_32/listen.S +++ b/libc/nt/ws2_32/listen.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_listen,listen,13 .text.windows + .ftrace1 __sys_listen_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_listen(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/recv.S b/libc/nt/ws2_32/recv.S index ed9d09524..08dae5573 100644 --- a/libc/nt/ws2_32/recv.S +++ b/libc/nt/ws2_32/recv.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_recv,recv,16 .text.windows + .ftrace1 __sys_recv_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_recv(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/recvfrom.S b/libc/nt/ws2_32/recvfrom.S index 0292c4f0e..d52dc5382 100644 --- a/libc/nt/ws2_32/recvfrom.S +++ b/libc/nt/ws2_32/recvfrom.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_recvfrom,recvfrom,17 .text.windows + .ftrace1 __sys_recvfrom_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_recvfrom(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/select.S b/libc/nt/ws2_32/select.S index 4fc140bdd..34e831801 100644 --- a/libc/nt/ws2_32/select.S +++ b/libc/nt/ws2_32/select.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_select,select,18 .text.windows + .ftrace1 __sys_select_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_select(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/send.S b/libc/nt/ws2_32/send.S index 611571541..34f5856bb 100644 --- a/libc/nt/ws2_32/send.S +++ b/libc/nt/ws2_32/send.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_send,send,19 .text.windows + .ftrace1 __sys_send_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_send(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/sendto.S b/libc/nt/ws2_32/sendto.S index 1db62a961..ffcd1771d 100644 --- a/libc/nt/ws2_32/sendto.S +++ b/libc/nt/ws2_32/sendto.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_sendto,sendto,20 .text.windows + .ftrace1 __sys_sendto_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_sendto(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/setsockopt.S b/libc/nt/ws2_32/setsockopt.S index 0249d76a9..3b6768c9c 100644 --- a/libc/nt/ws2_32/setsockopt.S +++ b/libc/nt/ws2_32/setsockopt.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_setsockopt,setsockopt,21 .text.windows + .ftrace1 __sys_setsockopt_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_setsockopt(%rip),%rax jmp __sysv2nt6 #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/shutdown.S b/libc/nt/ws2_32/shutdown.S index 4b5e119ad..5445b2b5b 100644 --- a/libc/nt/ws2_32/shutdown.S +++ b/libc/nt/ws2_32/shutdown.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_shutdown,shutdown,22 .text.windows + .ftrace1 __sys_shutdown_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_shutdown(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/nt/ws2_32/socket.S b/libc/nt/ws2_32/socket.S index 971d090d4..390fddc81 100644 --- a/libc/nt/ws2_32/socket.S +++ b/libc/nt/ws2_32/socket.S @@ -2,11 +2,12 @@ .imp ws2_32,__imp_socket,socket,23 .text.windows + .ftrace1 __sys_socket_nt: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable mov __imp_socket(%rip),%rax jmp __sysv2nt #elif defined(__aarch64__) diff --git a/libc/runtime/cosmo.S b/libc/runtime/cosmo.S index 0a712a802..3c02c5eb6 100644 --- a/libc/runtime/cosmo.S +++ b/libc/runtime/cosmo.S @@ -191,7 +191,7 @@ cosmo: push %rbp .init.end 305,_init_symbols #endif -#ifdef __PG__ +#ifdef FTRACE .init.start 306,_init_ftrace push %rdi push %rsi diff --git a/libc/runtime/cosmo2.c b/libc/runtime/cosmo2.c index ef4dce934..f8d08251c 100644 --- a/libc/runtime/cosmo2.c +++ b/libc/runtime/cosmo2.c @@ -154,7 +154,7 @@ textstartup void cosmo(long *sp, struct Syslib *m1) { environ = envp; if (argc) program_invocation_name = argv[0]; - // run initialization callbacks + // initialize program _init(); __enable_tls(); #ifdef SYSDEBUG @@ -163,6 +163,9 @@ textstartup void cosmo(long *sp, struct Syslib *m1) { for (fp = __init_array_end; fp-- > __init_array_start;) { (*fp)(argc, argv, envp, auxv); } +#ifdef FTRACE + argc = ftrace_init(); +#endif // run program if (!IsTiny()) __wipe(0); diff --git a/libc/runtime/fpreset.S b/libc/runtime/fpreset.S index 59a812b92..bf981c3f6 100644 --- a/libc/runtime/fpreset.S +++ b/libc/runtime/fpreset.S @@ -19,10 +19,11 @@ #include "libc/macros.internal.h" // Re-initializes FPU. + .ftrace1 fpreset: _fpreset: + .ftrace2 .leafprologue - .profilable finit .leafepilogue .endfn _fpreset,globl diff --git a/libc/runtime/ftrace-hook.S b/libc/runtime/ftrace-hook.S index 718d4b2d8..2bae5295f 100644 --- a/libc/runtime/ftrace-hook.S +++ b/libc/runtime/ftrace-hook.S @@ -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 diff --git a/libc/runtime/ftracer.c b/libc/runtime/ftracer.c index b8132437f..b74f2245e 100644 --- a/libc/runtime/ftracer.c +++ b/libc/runtime/ftracer.c @@ -31,8 +31,6 @@ #include "libc/thread/tls.h" #include "libc/thread/tls2.h" -#define MAX_NESTING 512 - /** * @fileoverview Plain-text function call logging. * @@ -41,6 +39,14 @@ * into gzip. */ +#define MAX_NESTING 512 + +#ifdef __x86_64__ +#define DETOUR_SKEW 2 +#elif defined(__aarch64__) +#define DETOUR_SKEW 8 +#endif + void ftrace_hook(void); static int g_stackdigs; @@ -72,6 +78,7 @@ static privileged inline int GetNestingLevel(struct CosmoFtrace *ft, * according to the System Five NexGen32e ABI. */ privileged void ftracer(void) { + uintptr_t fn; long stackuse; struct CosmoTib *tib; struct StackFrame *sf; @@ -91,11 +98,12 @@ privileged void ftracer(void) { if (_cmpxchg(&ft->ft_noreentry, false, true)) { sf = __builtin_frame_address(0); sf = sf->next; - if (sf->addr != ft->ft_lastaddr) { + fn = sf->addr + DETOUR_SKEW; + if (fn != ft->ft_lastaddr) { stackuse = GetStackAddr() + GetStackSize() - (intptr_t)sf; kprintf("%rFUN %6P %'13T %'*ld %*s%t\n", g_stackdigs, stackuse, - GetNestingLevel(ft, sf) * 2, "", sf->addr); - ft->ft_lastaddr = sf->addr; + GetNestingLevel(ft, sf) * 2, "", fn); + ft->ft_lastaddr = fn; } ft->ft_noreentry = false; } diff --git a/libc/runtime/hook.greg.c b/libc/runtime/hook.greg.c index 04145bfbb..d5c071a27 100644 --- a/libc/runtime/hook.greg.c +++ b/libc/runtime/hook.greg.c @@ -18,99 +18,114 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "ape/sections.internal.h" #include "libc/calls/struct/sigset.h" +#include "libc/limits.h" +#include "libc/macros.internal.h" #include "libc/runtime/morph.h" -#include "libc/runtime/runtime.h" #include "libc/runtime/symbols.internal.h" +#ifdef __x86_64__ +typedef uint8_t code_t; +#elif defined(__aarch64__) +typedef uint32_t code_t; +#else +#error "unsupported architecture" +#endif + +static privileged bool IsVirginFunction(const code_t *func) { +#ifdef __x86_64__ + long i; + // function must be preceeded by 9 nops + for (i = -9; i < 0; ++i) { + if (func[i] != 0x90) return false; + } + // function must start with `nop nop` or `xchg %ax,%ax` + if (func[0] == 0x90 && func[1] == 0x90) return true; + if (func[0] == 0x66 && func[1] == 0x90) return true; + return false; +#elif defined(__aarch64__) + long i; + // function must be preceeded by 6 nops + for (i = -6; i < 0; ++i) { + if (func[i] != 0xd503201f) return false; + } + // function must start with one nop + return func[0] == 0xd503201f; +#endif +} + +static privileged void HookFunction(code_t *func, void *dest) { + long dp; +#ifdef __x86_64__ + dp = (intptr_t)dest - (intptr_t)(func - 7 + 5); + if (!(INT32_MIN <= dp && dp <= INT32_MAX)) return; + // emit `ud2` signature for safety and checkability + func[-9] = 0x0f; + func[-8] = 0x0b; + // emit `call dest` instruction + func[-7] = 0xe8; + func[-6] = dp; + func[-5] = dp >> 8; + func[-4] = dp >> 16; + func[-3] = dp >> 24; + // emit `jmp +2` instruction to re-enter hooked function + func[-2] = 0xeb; + func[-1] = 0x02; + // emit `jmp -2` instruction to enter detour + func[+0] = 0xeb; + func[+1] = -7 - 2; +#elif defined(__aarch64__) + dp = (code_t *)dest - (func - 3); + if (!(-33554432 <= dp && dp <= +33554431)) return; + func[-6] = 0xd4200000 | (31337 << 5); // brk #31337 + func[-5] = 0xa9bf7bfd; // stp x29,x30,[sp, #-16]! + func[-4] = 0x910003fd; // mov x29,sp + func[-3] = 0x94000000 | (dp & 0x03ffffff); // bl dest + func[-2] = 0xa8c17bfd; // ldp x29,x30,[sp], #16 + func[-1] = 0x14000000 | (+2 & 0x03ffffff); // b +1 + func[+0] = 0x14000000 | (-5 & 0x03ffffff); // b -5 +#endif +} + /** * Rewrites code in memory to hook function calls. * - * We do this by searching each function for the nop instruction - * inserted by GCC when we use the -pg -mnop-mcount flags. There's no - * risk of corrupting data since the linker scripts won't mix code and - * data. + * On x86_64 you need the compiler flag: * - * Modules built with -O3 and without the profiling flags might have - * these same nop instructions, but that shouldn't be problematic since - * they're only there for the puposes of aligning jumps, and therefore - * aren't actually executed. However codebases that use huge function - * alignments with wide-nop slides could pose minor issues. Further note - * that Cosmopolitan sources are almost never intentionally written to - * use code alignment, since we've only seen a few cases where it helps. + * -fpatchable-function-entry=11,9 * + * On Aarch64 you need the compiler flag: + * + * -fpatchable-function-entry=7,6 + * + * This function can currently only be called once. + * + * @param dest is the address of the target function, which all hookable + * functions shall be reprogrammed to call from their epilogues; and + * must be sufficiently close in memory to the the program image, in + * order to meet ISA displacement requirements + * @param st can be obtained using `GetSymbolTable()` * @see ape/ape.lds */ -privileged noinstrument noasan int __hook(void *ifunc, - struct SymbolTable *symbols) { - int rc; - size_t i; - char *p, *pe; - intptr_t addr; +privileged noinstrument noasan int __hook(void *dest, struct SymbolTable *st) { + long i; sigset_t mask; - uint64_t code, mcode; - intptr_t kMcount = (intptr_t)&mcount; - intptr_t kProgramCodeStart = (intptr_t)_ereal; - intptr_t kPrivilegedStart = (intptr_t)__privileged_addr; - if (!symbols) return -1; + code_t *p, *pe; + intptr_t lowest; + if (!st) return -1; __morph_begin(&mask); - for (i = 0; i < symbols->count; ++i) { - if (symbols->addr_base + symbols->symbols[i].x < kProgramCodeStart) { - continue; - } - if (symbols->addr_base + symbols->symbols[i].y >= kPrivilegedStart) { - break; - } - for (p = (char *)symbols->addr_base + symbols->symbols[i].x, - pe = (char *)symbols->addr_base + symbols->symbols[i].y; - p + 8 - 1 <= pe; ++p) { - code = ((uint64_t)(255 & p[7]) << 070 | (uint64_t)(255 & p[6]) << 060 | - (uint64_t)(255 & p[5]) << 050 | (uint64_t)(255 & p[4]) << 040 | - (uint64_t)(255 & p[3]) << 030 | (uint64_t)(255 & p[2]) << 020 | - (uint64_t)(255 & p[1]) << 010 | (uint64_t)(255 & p[0]) << 000); - - /* - * Test for -mrecord-mcount (w/ -fpie or -fpic) - * - * nopw 0x00(%rax,%rax,1) ← morphed by package.com - * call *mcount(%rip) ← linked w/o -static - * addr32 call mcount ← relaxed w/ -static - * addr32 call mcount ← relaxed w/ -static - * - * Note that gcc refuses to insert the six byte nop. - */ - if ((code & 0x0000FFFFFFFFFFFF) == 0x0000441F0F66 || - (code & 0x0000FFFFFFFFFFFF) == - ((((kMcount - ((intptr_t)&p[2] + 4)) << 16) | 0xE867) & - 0x0000FFFFFFFFFFFF) || - (code & 0x0000FFFFFFFFFFFF) == - ((((kMcount - ((intptr_t)&p[2] + 4)) << 16) | 0xFF15) & - 0x0000FFFFFFFFFFFF)) { - p[0] = 0x67; - p[1] = 0xE8; - addr = (intptr_t)ifunc - ((intptr_t)&p[2] + 4); - p[2] = (addr & 0x000000ff) >> 000; - p[3] = (addr & 0x0000ff00) >> 010; - p[4] = (addr & 0x00ff0000) >> 020; - p[5] = (addr & 0xff000000) >> 030; - break; - } - - /* - * Test for -mnop-mcount (w/ -fno-pie) - */ - mcode = code & 0x000000FFFFFFFFFF; - if ((mcode == 0x00441F0F /* nopl 0x00(%eax,%eax,1) [canonical] */) || - (mcode == 0x00041F0F67 /* nopl (%eax,%eax,1) [older gcc] */)) { - if (p[-1] != 0x66 /* nopw 0x0(%rax,%rax,1) [donotwant] */) { - p[0] = 0xE8 /* call Jvds */; - addr = (intptr_t)ifunc - ((intptr_t)&p[1] + 4); - p[1] = (addr & 0x000000ff) >> 000; - p[2] = (addr & 0x0000ff00) >> 010; - p[3] = (addr & 0x00ff0000) >> 020; - p[4] = (addr & 0xff000000) >> 030; - } - break; - } + lowest = MAX((intptr_t)__executable_start, (intptr_t)_ereal); + for (i = 0; i < st->count; ++i) { + if (st->symbols[i].x < 9) continue; + if (st->addr_base + st->symbols[i].x < lowest) continue; + if (st->addr_base + st->symbols[i].y >= (intptr_t)__privileged_addr) break; + p = (code_t *)((char *)st->addr_base + st->symbols[i].x); + pe = (code_t *)((char *)st->addr_base + st->symbols[i].y); + if (pe - p < 2) continue; + if (IsVirginFunction(p)) { + // kprintf("hooking %t\n", p); + HookFunction(p, dest); + } else { + // kprintf("can't hook %t at %lx\n", p, p); } } __morph_end(&mask); diff --git a/libc/runtime/init.S b/libc/runtime/init.S index c9028c5f4..2ccc87e55 100644 --- a/libc/runtime/init.S +++ b/libc/runtime/init.S @@ -48,11 +48,12 @@ .section .initprologue,"ax",@progbits .type _init,@function .globl _init + .ftrace1 _init: + .ftrace2 #ifdef __x86_64__ push %rbp mov %rsp,%rbp - .profilable ezlea __init_bss_start,di ezlea __init_rodata_start,si #elif defined(__aarch64__) diff --git a/libc/runtime/internal.h b/libc/runtime/internal.h index 6e52a8cb9..abdf5efc1 100644 --- a/libc/runtime/internal.h +++ b/libc/runtime/internal.h @@ -29,8 +29,9 @@ extern unsigned char _tls_size[] __attribute__((__weak__)); extern unsigned char _tls_content[] __attribute__((__weak__)); void _init(void) _Hide; -void __morph_tls(void); -void __enable_tls(void); +int ftrace_init(void) _Hide; +void __morph_tls(void) _Hide; +void __enable_tls(void) _Hide; void __enable_threads(void) _Hide; void *__cxa_finalize(void *) _Hide; void __stack_chk_fail(void) wontreturn relegated; diff --git a/libc/runtime/morph.greg.c b/libc/runtime/morph.greg.c index ec03efaa4..960e68a68 100644 --- a/libc/runtime/morph.greg.c +++ b/libc/runtime/morph.greg.c @@ -18,14 +18,12 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define ShouldUseMsabiAttribute() 1 #include "ape/sections.internal.h" -#include "libc/assert.h" #include "libc/calls/internal.h" #include "libc/calls/struct/sigset.h" #include "libc/dce.h" #include "libc/errno.h" #include "libc/intrin/asmflag.h" #include "libc/intrin/kprintf.h" -#include "libc/intrin/strace.internal.h" #include "libc/nt/enum/pageflags.h" #include "libc/nt/memory.h" #include "libc/nt/runtime.h" @@ -38,29 +36,21 @@ __msabi extern typeof(VirtualProtect) *const __imp_VirtualProtect; -static inline int __morph_rt_sigprocmask(int h, const sigset_t *s, sigset_t *o, - size_t c) { #ifdef __aarch64__ - register long r0 asm("x0") = (long)h; - register long r1 asm("x1") = (long)s; - register long r2 asm("x2") = (long)o; - register long r3 asm("x3") = (long)c; - register long r8 asm("x8") = (long)__NR_sigprocmask; - register long res_x0 asm("x0"); +static privileged void __aarch64_sigprocmask(int how, const sigset_t *set, + sigset_t *oldset) { + register int r0 asm("x0") = how; + register long r1 asm("x1") = (long)set; + register long r2 asm("x2") = (long)oldset; + register long r3 asm("x3") = 8; + register long r8 asm("x8") = __NR_sigprocmask; + register long r16 asm("x16") = __NR_sigprocmask; asm volatile("svc\t0" - : "=r"(res_x0) - : "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r8) + : "+r"(r0) + : "r"(r1), "r"(r2), "r"(r3), "r"(r8), "r"(r16) : "memory"); - return res_x0; -#else - return 0; +} #endif -} - -static inline int __morph_sigprocmask(int how, const sigset_t *set, - sigset_t *oldset) { - return __morph_rt_sigprocmask(how, set, oldset, sizeof(*set)); -} static privileged void __morph_mprotect(void *addr, size_t size, int prot, int ntprot) { @@ -81,7 +71,7 @@ static privileged void __morph_mprotect(void *addr, size_t size, int prot, _Exit(26); } #endif - _npassert(!ax); + if (ax) notpossible; } else { __imp_VirtualProtect(addr, size, ntprot, &op); } @@ -90,12 +80,11 @@ static privileged void __morph_mprotect(void *addr, size_t size, int prot, register long r1 asm("x1") = (long)size; register long r2 asm("x2") = (long)prot; register long r8 asm("x8") = (long)__NR_mprotect; - register long res_x0 asm("x0"); + register long r16 asm("x16") = (long)__NR_mprotect; asm volatile("svc\t0" - : "=r"(res_x0) - : "r"(r0), "r"(r1), "r"(r2), "r"(r8) + : "+r"(r0) + : "r"(r1), "r"(r2), "r"(r8), "r"(r16) : "memory"); - _npassert(!res_x0); #endif } @@ -109,7 +98,6 @@ privileged void __morph_begin(sigset_t *save) { bool cf; intptr_t dx; sigset_t ss = {{-1, -1}}; - STRACE("__morph_begin()"); #ifdef __x86_64__ if (IsOpenbsd()) { asm volatile(CFLAG_ASM("syscall") @@ -117,17 +105,19 @@ privileged void __morph_begin(sigset_t *save) { : "1"(__NR_sigprocmask), "D"(SIG_BLOCK), "S"(-1u) : "rcx", "r8", "r9", "r10", "r11", "memory"); save->__bits[0] = ax & 0xffffffff; - _npassert(!cf); + if (cf) notpossible; } else if (!IsWindows() && !IsMetal()) { asm volatile("mov\t$8,%%r10d\n\t" "syscall" : "=a"(ax), "=d"(dx) : "0"(__NR_sigprocmask), "D"(SIG_BLOCK), "S"(&ss), "1"(save) : "rcx", "r8", "r9", "r10", "r11", "memory", "cc"); - _npassert(!ax); + if (ax) notpossible; } +#elif defined(__aarch64__) + __aarch64_sigprocmask(SIG_BLOCK, &ss, save); #else - __morph_sigprocmask(SIG_BLOCK, &ss, save); +#error "unsupported architecture" #endif __morph_mprotect(__executable_start, __privileged_addr - __executable_start, PROT_READ | PROT_WRITE, kNtPageWritecopy); @@ -148,17 +138,18 @@ privileged void __morph_end(sigset_t *save) { : CFLAG_CONSTRAINT(cf), "=a"(ax), "=d"(dx) : "1"(__NR_sigprocmask), "D"(SIG_SETMASK), "S"(save->__bits[0]) : "rcx", "r8", "r9", "r10", "r11", "memory"); - _npassert(!cf); + if (cf) notpossible; } else if (!IsWindows() && !IsMetal()) { asm volatile("mov\t$8,%%r10d\n\t" "syscall" : "=a"(ax), "=d"(dx) : "0"(__NR_sigprocmask), "D"(SIG_SETMASK), "S"(save), "1"(0L) : "rcx", "r8", "r9", "r10", "r11", "memory", "cc"); - _npassert(!ax); + if (ax) notpossible; } +#elif defined(__aarch64__) + __aarch64_sigprocmask(SIG_SETMASK, save, 0); #else - __morph_sigprocmask(SIG_SETMASK, save, 0); +#error "unsupported architecture" #endif - STRACE("__morph_end()"); } diff --git a/libc/runtime/runtime.mk b/libc/runtime/runtime.mk index 8f0f7d034..3d5dfa32e 100644 --- a/libc/runtime/runtime.mk +++ b/libc/runtime/runtime.mk @@ -65,10 +65,10 @@ $(LIBC_RUNTIME_A).pkg: \ # we can't use function tracing because: # this is the function tracing runtime o/$(MODE)/libc/runtime/cosmo2.o: private \ - OVERRIDE_CFLAGS += -O0 + CFLAGS += -O0 o/$(MODE)/libc/runtime/ftracer.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -x-no-pg \ $(MNO_FENTRY) \ -ffreestanding \ @@ -94,7 +94,7 @@ o/$(MODE)/libc/runtime/stackchkfail.o \ o/$(MODE)/libc/runtime/stackchkfaillocal.o \ o/$(MODE)/libc/runtime/winmain.greg.o \ o/$(MODE)/libc/runtime/opensymboltable.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os \ -ffreestanding \ $(NO_MAGIC) @@ -102,11 +102,11 @@ o/$(MODE)/libc/runtime/opensymboltable.o: private \ # must use alloca() # can't use asan or any runtime services o/$(MODE)/libc/runtime/fork-nt.o: private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DSTACK_FRAME_UNLIMITED o/$(MODE)/libc/runtime/qsort.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Og # make always linked runtimes less huge when it's profitable @@ -114,13 +114,13 @@ o//libc/runtime/mmap.o \ o//libc/runtime/munmap.o \ o//libc/runtime/memtrack.greg.o \ o//libc/runtime/opensymboltable.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os ifeq ($(ARCH), aarch64) o/$(MODE)/libc/runtime/mmap.o \ o/$(MODE)/libc/runtime/enable_tls.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -mcmodel=large endif diff --git a/libc/runtime/vfork.S b/libc/runtime/vfork.S index aa1cff693..d72849820 100644 --- a/libc/runtime/vfork.S +++ b/libc/runtime/vfork.S @@ -52,14 +52,15 @@ // @returnstwice // @threadsafe // @vforksafe + .ftrace1 vfork: + .ftrace2 #ifdef __x86_64__ #if !IsTiny() push %rbp mov %rsp,%rbp - .profilable call __require_tls #ifdef SYSDEBUG ezlea .Llog,di diff --git a/libc/stdio/stdio.mk b/libc/stdio/stdio.mk index 3157a33e9..ac8558b51 100644 --- a/libc/stdio/stdio.mk +++ b/libc/stdio/stdio.mk @@ -50,17 +50,17 @@ $(LIBC_STDIO_A).pkg: \ $(foreach x,$(LIBC_STDIO_A_DIRECTDEPS),$($(x)_A).pkg) o/$(MODE)/libc/stdio/fputc.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 o//libc/stdio/appendw.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os o/$(MODE)/libc/stdio/posix_spawnattr.o \ o/$(MODE)/libc/stdio/posix_spawn_file_actions.o \ o/$(MODE)/libc/stdio/mt19937.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections LIBC_STDIO_LIBS = $(foreach x,$(LIBC_STDIO_ARTIFACTS),$($(x))) diff --git a/libc/str/str.mk b/libc/str/str.mk index 417d4f0e4..56270ed29 100644 --- a/libc/str/str.mk +++ b/libc/str/str.mk @@ -51,7 +51,7 @@ o/$(MODE)/libc/str/wow.o: private \ o/$(MODE)/libc/str/wmemset.o \ o/$(MODE)/libc/str/memset16.o \ o/$(MODE)/libc/str/dosdatetimetounix.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 o/$(MODE)/libc/str/getzipcdir.o \ @@ -66,14 +66,14 @@ o/$(MODE)/libc/str/getzipcfileuncompressedsize.o \ o/$(MODE)/libc/str/getziplfilecompressedsize.o \ o/$(MODE)/libc/str/getziplfileuncompressedsize.o \ o/$(MODE)/libc/str/getzipcfiletimestamps.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os o/$(MODE)/libc/str/iswpunct.o \ o/$(MODE)/libc/str/iswupper.o \ o/$(MODE)/libc/str/iswlower.o \ o/$(MODE)/libc/str/iswseparator.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-jump-tables o/$(MODE)/libc/str/bcmp.o \ @@ -84,13 +84,13 @@ o/$(MODE)/libc/str/timevaltowindowstime.o \ o/$(MODE)/libc/str/timespectowindowstime.o \ o/$(MODE)/libc/str/windowstimetotimeval.o \ o/$(MODE)/libc/str/windowstimetotimespec.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 # we can't use compiler magic because: # kprintf() depends on these functions o/$(MODE)/libc/fmt/strsignal.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie \ -ffreestanding \ $(NO_MAGIC) diff --git a/libc/str/strcspn.c b/libc/str/strcspn.c index 0235d6a88..8a8726112 100644 --- a/libc/str/strcspn.c +++ b/libc/str/strcspn.c @@ -16,16 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/intrin/pcmpeqb.h" -#include "libc/intrin/pmovmskb.h" -#include "libc/intrin/pshufd.h" -#include "libc/intrin/punpcklbw.h" -#include "libc/intrin/punpcklwd.h" -#include "libc/nexgen32e/hascharacter.internal.h" #include "libc/str/str.h" -#define V(p) (void *)(p) - /** * Returns prefix length, consisting of chars not in reject. * a.k.a. Return index of first byte that's in charset. @@ -35,28 +27,24 @@ * @asyncsignalsafe */ size_t strcspn(const char *s, const char *reject) { - size_t i, n; - unsigned m; - char cv[16], sv[16]; - if ((n = strlen(reject)) < 16) { - bzero(sv, 16); - memcpy(sv, reject, n); - for (i = 0;; ++i) { - cv[0] = s[i]; - punpcklbw(V(cv), V(cv), V(cv)); - punpcklwd(V(cv), V(cv), V(cv)); - pshufd(V(cv), V(cv), 0); - pcmpeqb(V(cv), V(cv), V(sv)); - if ((m = pmovmskb(V(cv)))) { - break; - } - } - return i; + int c; + size_t i; + bool lut[256]; +#ifndef TINY + if (!reject[0]) { + return strlen(s); } - for (i = 0; s[i]; ++i) { - if (HasCharacter(s[i], reject)) { - break; + if (!reject[1]) { + return strchrnul(s, reject[0]) - s; + } +#endif + bzero(lut, sizeof(lut)); + do { + lut[(c = *reject++ & 255)] = true; + } while (c); + for (i = 0;; i++) { + if (lut[s[i] & 255]) { + return i; } } - return i; } diff --git a/libc/str/strspn.c b/libc/str/strspn.c index baa4fc68a..e44f815e8 100644 --- a/libc/str/strspn.c +++ b/libc/str/strspn.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/nexgen32e/hascharacter.internal.h" #include "libc/str/str.h" /** @@ -27,11 +26,28 @@ * @asyncsignalsafe */ size_t strspn(const char *s, const char *accept) { + int c; size_t i; - for (i = 0; s[i]; ++i) { - if (!HasCharacter(s[i], accept)) { - break; + bool lut[256]; +#ifndef TINY + if (!accept[0]) { + return 0; + } + if (!accept[1]) { + for (i = 0;; i++) { + if (s[i] != accept[0]) { + return i; + } + } + } +#endif + bzero(lut, sizeof(lut)); + while ((c = *accept++ & 255)) { + lut[c] = true; + } + for (i = 0;; i++) { + if (!lut[s[i] & 255]) { + return i; } } - return i; } diff --git a/libc/sysv/errfuns/e2big.S b/libc/sysv/errfuns/e2big.S index 17080bc72..32ac86542 100644 --- a/libc/sysv/errfuns/e2big.S +++ b/libc/sysv/errfuns/e2big.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 e2big: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov E2BIG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eacces.S b/libc/sysv/errfuns/eacces.S index f2d0dcc4b..2ba289170 100644 --- a/libc/sysv/errfuns/eacces.S +++ b/libc/sysv/errfuns/eacces.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eacces: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EACCES(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eaddrinuse.S b/libc/sysv/errfuns/eaddrinuse.S index 6450019cb..4d8c41d34 100644 --- a/libc/sysv/errfuns/eaddrinuse.S +++ b/libc/sysv/errfuns/eaddrinuse.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eaddrinuse: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EADDRINUSE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eaddrnotavail.S b/libc/sysv/errfuns/eaddrnotavail.S index c82654523..101b936a6 100644 --- a/libc/sysv/errfuns/eaddrnotavail.S +++ b/libc/sysv/errfuns/eaddrnotavail.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eaddrnotavail: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EADDRNOTAVAIL(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eadv.S b/libc/sysv/errfuns/eadv.S index 4af71a93f..aeadda509 100644 --- a/libc/sysv/errfuns/eadv.S +++ b/libc/sysv/errfuns/eadv.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eadv: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EADV(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eafnosupport.S b/libc/sysv/errfuns/eafnosupport.S index f8d5c1235..0f4fa0b5a 100644 --- a/libc/sysv/errfuns/eafnosupport.S +++ b/libc/sysv/errfuns/eafnosupport.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eafnosupport: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EAFNOSUPPORT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eagain.S b/libc/sysv/errfuns/eagain.S index 244a9249b..5124a43f1 100644 --- a/libc/sysv/errfuns/eagain.S +++ b/libc/sysv/errfuns/eagain.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eagain: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EAGAIN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ealready.S b/libc/sysv/errfuns/ealready.S index 4aebad0de..e8b32b0eb 100644 --- a/libc/sysv/errfuns/ealready.S +++ b/libc/sysv/errfuns/ealready.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ealready: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EALREADY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebade.S b/libc/sysv/errfuns/ebade.S index 0174c5a30..8d0a0c19f 100644 --- a/libc/sysv/errfuns/ebade.S +++ b/libc/sysv/errfuns/ebade.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebade: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadf.S b/libc/sysv/errfuns/ebadf.S index 1499c8105..693fe7c46 100644 --- a/libc/sysv/errfuns/ebadf.S +++ b/libc/sysv/errfuns/ebadf.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadf: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADF(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadfd.S b/libc/sysv/errfuns/ebadfd.S index b7c1a204c..fb4fc502d 100644 --- a/libc/sysv/errfuns/ebadfd.S +++ b/libc/sysv/errfuns/ebadfd.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadfd: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADFD(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadmsg.S b/libc/sysv/errfuns/ebadmsg.S index 1d11a238e..e650ed296 100644 --- a/libc/sysv/errfuns/ebadmsg.S +++ b/libc/sysv/errfuns/ebadmsg.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadmsg: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADMSG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadr.S b/libc/sysv/errfuns/ebadr.S index e94358e26..e8f9ab68d 100644 --- a/libc/sysv/errfuns/ebadr.S +++ b/libc/sysv/errfuns/ebadr.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadr: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadrqc.S b/libc/sysv/errfuns/ebadrqc.S index a4d0eb790..e5fd44915 100644 --- a/libc/sysv/errfuns/ebadrqc.S +++ b/libc/sysv/errfuns/ebadrqc.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadrqc: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADRQC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebadslt.S b/libc/sysv/errfuns/ebadslt.S index 11653b401..4bc407c0e 100644 --- a/libc/sysv/errfuns/ebadslt.S +++ b/libc/sysv/errfuns/ebadslt.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebadslt: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBADSLT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ebusy.S b/libc/sysv/errfuns/ebusy.S index 2bd15239d..54a436001 100644 --- a/libc/sysv/errfuns/ebusy.S +++ b/libc/sysv/errfuns/ebusy.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ebusy: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EBUSY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ecanceled.S b/libc/sysv/errfuns/ecanceled.S index 57e39253b..58007cb2d 100644 --- a/libc/sysv/errfuns/ecanceled.S +++ b/libc/sysv/errfuns/ecanceled.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ecanceled: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECANCELED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/echild.S b/libc/sysv/errfuns/echild.S index f86488a0f..e3e79409b 100644 --- a/libc/sysv/errfuns/echild.S +++ b/libc/sysv/errfuns/echild.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 echild: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECHILD(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/echrng.S b/libc/sysv/errfuns/echrng.S index 30be06936..0ffa5c922 100644 --- a/libc/sysv/errfuns/echrng.S +++ b/libc/sysv/errfuns/echrng.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 echrng: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECHRNG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ecomm.S b/libc/sysv/errfuns/ecomm.S index fdff163d3..1a9a98286 100644 --- a/libc/sysv/errfuns/ecomm.S +++ b/libc/sysv/errfuns/ecomm.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ecomm: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECOMM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/econnaborted.S b/libc/sysv/errfuns/econnaborted.S index 630fd4d4b..ec62e3e67 100644 --- a/libc/sysv/errfuns/econnaborted.S +++ b/libc/sysv/errfuns/econnaborted.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 econnaborted: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECONNABORTED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/econnrefused.S b/libc/sysv/errfuns/econnrefused.S index c6706270f..b16e4ce73 100644 --- a/libc/sysv/errfuns/econnrefused.S +++ b/libc/sysv/errfuns/econnrefused.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 econnrefused: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECONNREFUSED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/econnreset.S b/libc/sysv/errfuns/econnreset.S index 25c288444..0c8fd94f4 100644 --- a/libc/sysv/errfuns/econnreset.S +++ b/libc/sysv/errfuns/econnreset.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 econnreset: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ECONNRESET(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/edeadlk.S b/libc/sysv/errfuns/edeadlk.S index afe0d4079..caf4dbc2f 100644 --- a/libc/sysv/errfuns/edeadlk.S +++ b/libc/sysv/errfuns/edeadlk.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 edeadlk: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EDEADLK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/edestaddrreq.S b/libc/sysv/errfuns/edestaddrreq.S index a0a5ab9cb..74dd51f96 100644 --- a/libc/sysv/errfuns/edestaddrreq.S +++ b/libc/sysv/errfuns/edestaddrreq.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 edestaddrreq: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EDESTADDRREQ(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/edom.S b/libc/sysv/errfuns/edom.S index 8cd201eb2..c26449ac2 100644 --- a/libc/sysv/errfuns/edom.S +++ b/libc/sysv/errfuns/edom.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 edom: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EDOM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/edotdot.S b/libc/sysv/errfuns/edotdot.S index 76639d868..e1a347a3a 100644 --- a/libc/sysv/errfuns/edotdot.S +++ b/libc/sysv/errfuns/edotdot.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 edotdot: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EDOTDOT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/edquot.S b/libc/sysv/errfuns/edquot.S index 84c12a85c..0e3e6fe79 100644 --- a/libc/sysv/errfuns/edquot.S +++ b/libc/sysv/errfuns/edquot.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 edquot: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EDQUOT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eexist.S b/libc/sysv/errfuns/eexist.S index 4a81f63e6..d1fb3a314 100644 --- a/libc/sysv/errfuns/eexist.S +++ b/libc/sysv/errfuns/eexist.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eexist: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EEXIST(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/efault.S b/libc/sysv/errfuns/efault.S index 5ce7cfc9a..a219fff84 100644 --- a/libc/sysv/errfuns/efault.S +++ b/libc/sysv/errfuns/efault.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 efault: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EFAULT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/efbig.S b/libc/sysv/errfuns/efbig.S index 5326e8392..0d614e720 100644 --- a/libc/sysv/errfuns/efbig.S +++ b/libc/sysv/errfuns/efbig.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 efbig: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EFBIG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ehostdown.S b/libc/sysv/errfuns/ehostdown.S index a57d3921c..55a766ca9 100644 --- a/libc/sysv/errfuns/ehostdown.S +++ b/libc/sysv/errfuns/ehostdown.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ehostdown: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EHOSTDOWN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ehostunreach.S b/libc/sysv/errfuns/ehostunreach.S index 031051d88..bc5c311f0 100644 --- a/libc/sysv/errfuns/ehostunreach.S +++ b/libc/sysv/errfuns/ehostunreach.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ehostunreach: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EHOSTUNREACH(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ehwpoison.S b/libc/sysv/errfuns/ehwpoison.S index 26ea95b75..d1d261565 100644 --- a/libc/sysv/errfuns/ehwpoison.S +++ b/libc/sysv/errfuns/ehwpoison.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ehwpoison: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EHWPOISON(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eidrm.S b/libc/sysv/errfuns/eidrm.S index f0cceddad..0c0d72542 100644 --- a/libc/sysv/errfuns/eidrm.S +++ b/libc/sysv/errfuns/eidrm.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eidrm: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EIDRM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eilseq.S b/libc/sysv/errfuns/eilseq.S index a8623b805..d34482cea 100644 --- a/libc/sysv/errfuns/eilseq.S +++ b/libc/sysv/errfuns/eilseq.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eilseq: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EILSEQ(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/einprogress.S b/libc/sysv/errfuns/einprogress.S index c99ce0da1..9d356fd2a 100644 --- a/libc/sysv/errfuns/einprogress.S +++ b/libc/sysv/errfuns/einprogress.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 einprogress: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EINPROGRESS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eintr.S b/libc/sysv/errfuns/eintr.S index 6bf106a31..e6a3f88d3 100644 --- a/libc/sysv/errfuns/eintr.S +++ b/libc/sysv/errfuns/eintr.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eintr: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EINTR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/einval.S b/libc/sysv/errfuns/einval.S index d98320575..537af95c8 100644 --- a/libc/sysv/errfuns/einval.S +++ b/libc/sysv/errfuns/einval.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 einval: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EINVAL(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eio.S b/libc/sysv/errfuns/eio.S index 65805237d..cdf541c95 100644 --- a/libc/sysv/errfuns/eio.S +++ b/libc/sysv/errfuns/eio.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eio: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EIO(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eisconn.S b/libc/sysv/errfuns/eisconn.S index 1635b8858..148423224 100644 --- a/libc/sysv/errfuns/eisconn.S +++ b/libc/sysv/errfuns/eisconn.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eisconn: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EISCONN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eisdir.S b/libc/sysv/errfuns/eisdir.S index 5d2f8ad72..83e775f51 100644 --- a/libc/sysv/errfuns/eisdir.S +++ b/libc/sysv/errfuns/eisdir.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eisdir: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EISDIR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eisnam.S b/libc/sysv/errfuns/eisnam.S index 87c3e74c4..4450ca1ea 100644 --- a/libc/sysv/errfuns/eisnam.S +++ b/libc/sysv/errfuns/eisnam.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eisnam: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EISNAM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ekeyexpired.S b/libc/sysv/errfuns/ekeyexpired.S index 58ee6a832..89f4507bc 100644 --- a/libc/sysv/errfuns/ekeyexpired.S +++ b/libc/sysv/errfuns/ekeyexpired.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ekeyexpired: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EKEYEXPIRED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ekeyrejected.S b/libc/sysv/errfuns/ekeyrejected.S index c9e589c60..fda4019bd 100644 --- a/libc/sysv/errfuns/ekeyrejected.S +++ b/libc/sysv/errfuns/ekeyrejected.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ekeyrejected: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EKEYREJECTED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/ekeyrevoked.S b/libc/sysv/errfuns/ekeyrevoked.S index 96fad68ef..d8e2e11c2 100644 --- a/libc/sysv/errfuns/ekeyrevoked.S +++ b/libc/sysv/errfuns/ekeyrevoked.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 ekeyrevoked: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EKEYREVOKED(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/el2hlt.S b/libc/sysv/errfuns/el2hlt.S index 9b6b4d19c..5462d3ec9 100644 --- a/libc/sysv/errfuns/el2hlt.S +++ b/libc/sysv/errfuns/el2hlt.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 el2hlt: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EL2HLT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/el2nsync.S b/libc/sysv/errfuns/el2nsync.S index 1ceffcbe2..bb249b131 100644 --- a/libc/sysv/errfuns/el2nsync.S +++ b/libc/sysv/errfuns/el2nsync.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 el2nsync: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EL2NSYNC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/el3hlt.S b/libc/sysv/errfuns/el3hlt.S index 5300ffc5b..40535b6d6 100644 --- a/libc/sysv/errfuns/el3hlt.S +++ b/libc/sysv/errfuns/el3hlt.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 el3hlt: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EL3HLT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/el3rst.S b/libc/sysv/errfuns/el3rst.S index 12dc3c4ab..036afd48e 100644 --- a/libc/sysv/errfuns/el3rst.S +++ b/libc/sysv/errfuns/el3rst.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 el3rst: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EL3RST(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elibacc.S b/libc/sysv/errfuns/elibacc.S index 4e856b961..b598c2e47 100644 --- a/libc/sysv/errfuns/elibacc.S +++ b/libc/sysv/errfuns/elibacc.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elibacc: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELIBACC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elibbad.S b/libc/sysv/errfuns/elibbad.S index 4e933c43c..4a0f7f72b 100644 --- a/libc/sysv/errfuns/elibbad.S +++ b/libc/sysv/errfuns/elibbad.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elibbad: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELIBBAD(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elibexec.S b/libc/sysv/errfuns/elibexec.S index d12efe9b5..6b5093216 100644 --- a/libc/sysv/errfuns/elibexec.S +++ b/libc/sysv/errfuns/elibexec.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elibexec: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELIBEXEC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elibmax.S b/libc/sysv/errfuns/elibmax.S index b1bc56d8b..73dc1d570 100644 --- a/libc/sysv/errfuns/elibmax.S +++ b/libc/sysv/errfuns/elibmax.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elibmax: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELIBMAX(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elibscn.S b/libc/sysv/errfuns/elibscn.S index 62f783e21..fd3fbe245 100644 --- a/libc/sysv/errfuns/elibscn.S +++ b/libc/sysv/errfuns/elibscn.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elibscn: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELIBSCN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/elnrng.S b/libc/sysv/errfuns/elnrng.S index 82de694ed..0e0e37ed4 100644 --- a/libc/sysv/errfuns/elnrng.S +++ b/libc/sysv/errfuns/elnrng.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 elnrng: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELNRNG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eloop.S b/libc/sysv/errfuns/eloop.S index 2d4b9f6db..faef0e95c 100644 --- a/libc/sysv/errfuns/eloop.S +++ b/libc/sysv/errfuns/eloop.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eloop: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ELOOP(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/emediumtype.S b/libc/sysv/errfuns/emediumtype.S index 10d5b477c..448080938 100644 --- a/libc/sysv/errfuns/emediumtype.S +++ b/libc/sysv/errfuns/emediumtype.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 emediumtype: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EMEDIUMTYPE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/emfile.S b/libc/sysv/errfuns/emfile.S index ebd1d9535..6adb57077 100644 --- a/libc/sysv/errfuns/emfile.S +++ b/libc/sysv/errfuns/emfile.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 emfile: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EMFILE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/emlink.S b/libc/sysv/errfuns/emlink.S index a6de73a9d..8c6b7d95a 100644 --- a/libc/sysv/errfuns/emlink.S +++ b/libc/sysv/errfuns/emlink.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 emlink: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EMLINK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/emsgsize.S b/libc/sysv/errfuns/emsgsize.S index aed2a305d..9870b85a1 100644 --- a/libc/sysv/errfuns/emsgsize.S +++ b/libc/sysv/errfuns/emsgsize.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 emsgsize: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EMSGSIZE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/emultihop.S b/libc/sysv/errfuns/emultihop.S index 4ea9303af..27140db9f 100644 --- a/libc/sysv/errfuns/emultihop.S +++ b/libc/sysv/errfuns/emultihop.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 emultihop: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EMULTIHOP(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enametoolong.S b/libc/sysv/errfuns/enametoolong.S index 77918516a..d46f2bfa1 100644 --- a/libc/sysv/errfuns/enametoolong.S +++ b/libc/sysv/errfuns/enametoolong.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enametoolong: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENAMETOOLONG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enavail.S b/libc/sysv/errfuns/enavail.S index 05f1dc1de..d7aa15d49 100644 --- a/libc/sysv/errfuns/enavail.S +++ b/libc/sysv/errfuns/enavail.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enavail: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENAVAIL(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enetdown.S b/libc/sysv/errfuns/enetdown.S index ce94bef35..7850a5892 100644 --- a/libc/sysv/errfuns/enetdown.S +++ b/libc/sysv/errfuns/enetdown.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enetdown: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENETDOWN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enetreset.S b/libc/sysv/errfuns/enetreset.S index cae447be1..fd6cf0c53 100644 --- a/libc/sysv/errfuns/enetreset.S +++ b/libc/sysv/errfuns/enetreset.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enetreset: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENETRESET(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enetunreach.S b/libc/sysv/errfuns/enetunreach.S index e2a1e3619..36a6ee69e 100644 --- a/libc/sysv/errfuns/enetunreach.S +++ b/libc/sysv/errfuns/enetunreach.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enetunreach: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENETUNREACH(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enfile.S b/libc/sysv/errfuns/enfile.S index f67d0d043..a2b5157dd 100644 --- a/libc/sysv/errfuns/enfile.S +++ b/libc/sysv/errfuns/enfile.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enfile: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENFILE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enoano.S b/libc/sysv/errfuns/enoano.S index ee5fe4f27..f3a713901 100644 --- a/libc/sysv/errfuns/enoano.S +++ b/libc/sysv/errfuns/enoano.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enoano: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOANO(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enobufs.S b/libc/sysv/errfuns/enobufs.S index e1a559917..7936a1e1f 100644 --- a/libc/sysv/errfuns/enobufs.S +++ b/libc/sysv/errfuns/enobufs.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enobufs: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOBUFS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enocsi.S b/libc/sysv/errfuns/enocsi.S index d0a985a42..ab63ad071 100644 --- a/libc/sysv/errfuns/enocsi.S +++ b/libc/sysv/errfuns/enocsi.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enocsi: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOCSI(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enodata.S b/libc/sysv/errfuns/enodata.S index eecb6c5e0..e5fd06425 100644 --- a/libc/sysv/errfuns/enodata.S +++ b/libc/sysv/errfuns/enodata.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enodata: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENODATA(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enodev.S b/libc/sysv/errfuns/enodev.S index 990597d9d..1be5d5846 100644 --- a/libc/sysv/errfuns/enodev.S +++ b/libc/sysv/errfuns/enodev.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enodev: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENODEV(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enoent.S b/libc/sysv/errfuns/enoent.S index 3d6fdaac4..3929a214d 100644 --- a/libc/sysv/errfuns/enoent.S +++ b/libc/sysv/errfuns/enoent.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enoent: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOENT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enoexec.S b/libc/sysv/errfuns/enoexec.S index 5901facff..30cee1e8a 100644 --- a/libc/sysv/errfuns/enoexec.S +++ b/libc/sysv/errfuns/enoexec.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enoexec: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOEXEC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enokey.S b/libc/sysv/errfuns/enokey.S index c387526b5..399aa97c9 100644 --- a/libc/sysv/errfuns/enokey.S +++ b/libc/sysv/errfuns/enokey.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enokey: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOKEY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enolck.S b/libc/sysv/errfuns/enolck.S index ac26cda1e..ceda33862 100644 --- a/libc/sysv/errfuns/enolck.S +++ b/libc/sysv/errfuns/enolck.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enolck: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOLCK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enolink.S b/libc/sysv/errfuns/enolink.S index 114e649a4..189d8ad7b 100644 --- a/libc/sysv/errfuns/enolink.S +++ b/libc/sysv/errfuns/enolink.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enolink: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOLINK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enomedium.S b/libc/sysv/errfuns/enomedium.S index 5beff7380..c7a6893ec 100644 --- a/libc/sysv/errfuns/enomedium.S +++ b/libc/sysv/errfuns/enomedium.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enomedium: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOMEDIUM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enomem.S b/libc/sysv/errfuns/enomem.S index 85ffc0a77..d9a7050c8 100644 --- a/libc/sysv/errfuns/enomem.S +++ b/libc/sysv/errfuns/enomem.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enomem: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOMEM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enomsg.S b/libc/sysv/errfuns/enomsg.S index fac5e5439..0307c3ec2 100644 --- a/libc/sysv/errfuns/enomsg.S +++ b/libc/sysv/errfuns/enomsg.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enomsg: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOMSG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enonet.S b/libc/sysv/errfuns/enonet.S index ae755f97e..fc2e5468c 100644 --- a/libc/sysv/errfuns/enonet.S +++ b/libc/sysv/errfuns/enonet.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enonet: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENONET(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enopkg.S b/libc/sysv/errfuns/enopkg.S index 78c7c60a7..3b08e87a5 100644 --- a/libc/sysv/errfuns/enopkg.S +++ b/libc/sysv/errfuns/enopkg.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enopkg: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOPKG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enoprotoopt.S b/libc/sysv/errfuns/enoprotoopt.S index 164344c14..80fca7bb5 100644 --- a/libc/sysv/errfuns/enoprotoopt.S +++ b/libc/sysv/errfuns/enoprotoopt.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enoprotoopt: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOPROTOOPT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enospc.S b/libc/sysv/errfuns/enospc.S index 019c925d4..69023893d 100644 --- a/libc/sysv/errfuns/enospc.S +++ b/libc/sysv/errfuns/enospc.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enospc: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOSPC(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enosr.S b/libc/sysv/errfuns/enosr.S index d0a145a51..9d7119e53 100644 --- a/libc/sysv/errfuns/enosr.S +++ b/libc/sysv/errfuns/enosr.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enosr: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOSR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enostr.S b/libc/sysv/errfuns/enostr.S index 59c4f1bb4..6705b7155 100644 --- a/libc/sysv/errfuns/enostr.S +++ b/libc/sysv/errfuns/enostr.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enostr: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOSTR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enosys.S b/libc/sysv/errfuns/enosys.S index 82d91d533..c0f6e7c36 100644 --- a/libc/sysv/errfuns/enosys.S +++ b/libc/sysv/errfuns/enosys.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enosys: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOSYS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotblk.S b/libc/sysv/errfuns/enotblk.S index 744329526..c4812cb03 100644 --- a/libc/sysv/errfuns/enotblk.S +++ b/libc/sysv/errfuns/enotblk.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotblk: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTBLK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotconn.S b/libc/sysv/errfuns/enotconn.S index de34411ef..b6c26d55c 100644 --- a/libc/sysv/errfuns/enotconn.S +++ b/libc/sysv/errfuns/enotconn.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotconn: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTCONN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotdir.S b/libc/sysv/errfuns/enotdir.S index 81bd1359e..7afc1762f 100644 --- a/libc/sysv/errfuns/enotdir.S +++ b/libc/sysv/errfuns/enotdir.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotdir: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTDIR(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotempty.S b/libc/sysv/errfuns/enotempty.S index 84215d914..67bbdc837 100644 --- a/libc/sysv/errfuns/enotempty.S +++ b/libc/sysv/errfuns/enotempty.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotempty: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTEMPTY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotnam.S b/libc/sysv/errfuns/enotnam.S index 23a82028d..7a1094e5b 100644 --- a/libc/sysv/errfuns/enotnam.S +++ b/libc/sysv/errfuns/enotnam.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotnam: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTNAM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotrecoverable.S b/libc/sysv/errfuns/enotrecoverable.S index 3d0aa5772..e50430452 100644 --- a/libc/sysv/errfuns/enotrecoverable.S +++ b/libc/sysv/errfuns/enotrecoverable.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotrecoverable: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTRECOVERABLE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotsock.S b/libc/sysv/errfuns/enotsock.S index 9826d2a17..8f0753ce5 100644 --- a/libc/sysv/errfuns/enotsock.S +++ b/libc/sysv/errfuns/enotsock.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotsock: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTSOCK(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotsup.S b/libc/sysv/errfuns/enotsup.S index 7133bb285..59d130623 100644 --- a/libc/sysv/errfuns/enotsup.S +++ b/libc/sysv/errfuns/enotsup.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotsup: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTSUP(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotty.S b/libc/sysv/errfuns/enotty.S index bd66b8c3d..beed92e95 100644 --- a/libc/sysv/errfuns/enotty.S +++ b/libc/sysv/errfuns/enotty.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotty: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTTY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enotuniq.S b/libc/sysv/errfuns/enotuniq.S index 9c5080872..57b04e9ba 100644 --- a/libc/sysv/errfuns/enotuniq.S +++ b/libc/sysv/errfuns/enotuniq.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enotuniq: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENOTUNIQ(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/enxio.S b/libc/sysv/errfuns/enxio.S index c21d6cf6b..637241908 100644 --- a/libc/sysv/errfuns/enxio.S +++ b/libc/sysv/errfuns/enxio.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 enxio: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ENXIO(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eopnotsupp.S b/libc/sysv/errfuns/eopnotsupp.S index 95bfc35b5..fa974a998 100644 --- a/libc/sysv/errfuns/eopnotsupp.S +++ b/libc/sysv/errfuns/eopnotsupp.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eopnotsupp: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EOPNOTSUPP(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eoverflow.S b/libc/sysv/errfuns/eoverflow.S index c52f142b9..81aad5b64 100644 --- a/libc/sysv/errfuns/eoverflow.S +++ b/libc/sysv/errfuns/eoverflow.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eoverflow: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EOVERFLOW(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eownerdead.S b/libc/sysv/errfuns/eownerdead.S index 4549b2257..5968f3807 100644 --- a/libc/sysv/errfuns/eownerdead.S +++ b/libc/sysv/errfuns/eownerdead.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eownerdead: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EOWNERDEAD(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eperm.S b/libc/sysv/errfuns/eperm.S index 101a2052d..cc4fefa78 100644 --- a/libc/sysv/errfuns/eperm.S +++ b/libc/sysv/errfuns/eperm.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eperm: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPERM(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/epfnosupport.S b/libc/sysv/errfuns/epfnosupport.S index 979fe71ce..73da7dd25 100644 --- a/libc/sysv/errfuns/epfnosupport.S +++ b/libc/sysv/errfuns/epfnosupport.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 epfnosupport: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPFNOSUPPORT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/epipe.S b/libc/sysv/errfuns/epipe.S index 197a1cf64..5c1f01948 100644 --- a/libc/sysv/errfuns/epipe.S +++ b/libc/sysv/errfuns/epipe.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 epipe: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPIPE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eproto.S b/libc/sysv/errfuns/eproto.S index 5436c6830..22ceb6bd7 100644 --- a/libc/sysv/errfuns/eproto.S +++ b/libc/sysv/errfuns/eproto.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eproto: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPROTO(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eprotonosupport.S b/libc/sysv/errfuns/eprotonosupport.S index 64c578001..f8f9bcd6a 100644 --- a/libc/sysv/errfuns/eprotonosupport.S +++ b/libc/sysv/errfuns/eprotonosupport.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eprotonosupport: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPROTONOSUPPORT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eprototype.S b/libc/sysv/errfuns/eprototype.S index a470f315a..ceb8efbb3 100644 --- a/libc/sysv/errfuns/eprototype.S +++ b/libc/sysv/errfuns/eprototype.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eprototype: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EPROTOTYPE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/erange.S b/libc/sysv/errfuns/erange.S index 3a3c1ca29..1dc1b07e3 100644 --- a/libc/sysv/errfuns/erange.S +++ b/libc/sysv/errfuns/erange.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 erange: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ERANGE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eremchg.S b/libc/sysv/errfuns/eremchg.S index be644bf71..201ae2688 100644 --- a/libc/sysv/errfuns/eremchg.S +++ b/libc/sysv/errfuns/eremchg.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eremchg: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EREMCHG(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eremote.S b/libc/sysv/errfuns/eremote.S index 20dfb61c1..db3ddb627 100644 --- a/libc/sysv/errfuns/eremote.S +++ b/libc/sysv/errfuns/eremote.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eremote: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EREMOTE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eremoteio.S b/libc/sysv/errfuns/eremoteio.S index e08da6e1c..12e2a74b5 100644 --- a/libc/sysv/errfuns/eremoteio.S +++ b/libc/sysv/errfuns/eremoteio.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eremoteio: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EREMOTEIO(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/erestart.S b/libc/sysv/errfuns/erestart.S index f3fa1aecf..30eaa1d0b 100644 --- a/libc/sysv/errfuns/erestart.S +++ b/libc/sysv/errfuns/erestart.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 erestart: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ERESTART(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/erfkill.S b/libc/sysv/errfuns/erfkill.S index 6e4f72cf1..141b8e85a 100644 --- a/libc/sysv/errfuns/erfkill.S +++ b/libc/sysv/errfuns/erfkill.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 erfkill: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ERFKILL(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/erofs.S b/libc/sysv/errfuns/erofs.S index e074430d3..fdab8c9a8 100644 --- a/libc/sysv/errfuns/erofs.S +++ b/libc/sysv/errfuns/erofs.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 erofs: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EROFS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eshutdown.S b/libc/sysv/errfuns/eshutdown.S index f0e734c2a..1f6d8cfd1 100644 --- a/libc/sysv/errfuns/eshutdown.S +++ b/libc/sysv/errfuns/eshutdown.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eshutdown: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESHUTDOWN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/esocktnosupport.S b/libc/sysv/errfuns/esocktnosupport.S index 46b083aae..6a29e9c81 100644 --- a/libc/sysv/errfuns/esocktnosupport.S +++ b/libc/sysv/errfuns/esocktnosupport.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 esocktnosupport: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESOCKTNOSUPPORT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/espipe.S b/libc/sysv/errfuns/espipe.S index 8eb6f1ebf..373a08844 100644 --- a/libc/sysv/errfuns/espipe.S +++ b/libc/sysv/errfuns/espipe.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 espipe: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESPIPE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/esrch.S b/libc/sysv/errfuns/esrch.S index cc3b68d77..91dc831d6 100644 --- a/libc/sysv/errfuns/esrch.S +++ b/libc/sysv/errfuns/esrch.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 esrch: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESRCH(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/esrmnt.S b/libc/sysv/errfuns/esrmnt.S index d90b0d979..109dc659e 100644 --- a/libc/sysv/errfuns/esrmnt.S +++ b/libc/sysv/errfuns/esrmnt.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 esrmnt: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESRMNT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/estale.S b/libc/sysv/errfuns/estale.S index ee9a24ffb..88a27e0c8 100644 --- a/libc/sysv/errfuns/estale.S +++ b/libc/sysv/errfuns/estale.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 estale: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESTALE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/estrpipe.S b/libc/sysv/errfuns/estrpipe.S index b736116d8..52a5c083e 100644 --- a/libc/sysv/errfuns/estrpipe.S +++ b/libc/sysv/errfuns/estrpipe.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 estrpipe: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ESTRPIPE(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/etime.S b/libc/sysv/errfuns/etime.S index cb50018ce..a0071f600 100644 --- a/libc/sysv/errfuns/etime.S +++ b/libc/sysv/errfuns/etime.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 etime: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ETIME(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/etimedout.S b/libc/sysv/errfuns/etimedout.S index b53ed6abf..7787c672a 100644 --- a/libc/sysv/errfuns/etimedout.S +++ b/libc/sysv/errfuns/etimedout.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 etimedout: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ETIMEDOUT(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/etoomanyrefs.S b/libc/sysv/errfuns/etoomanyrefs.S index f7fba30c0..5e2fe7174 100644 --- a/libc/sysv/errfuns/etoomanyrefs.S +++ b/libc/sysv/errfuns/etoomanyrefs.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 etoomanyrefs: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ETOOMANYREFS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/etxtbsy.S b/libc/sysv/errfuns/etxtbsy.S index 53bdc8477..672146f58 100644 --- a/libc/sysv/errfuns/etxtbsy.S +++ b/libc/sysv/errfuns/etxtbsy.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 etxtbsy: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov ETXTBSY(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/euclean.S b/libc/sysv/errfuns/euclean.S index 41ae1eb6c..891e5f866 100644 --- a/libc/sysv/errfuns/euclean.S +++ b/libc/sysv/errfuns/euclean.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 euclean: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EUCLEAN(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eunatch.S b/libc/sysv/errfuns/eunatch.S index 21a86eb4c..655cfc37d 100644 --- a/libc/sysv/errfuns/eunatch.S +++ b/libc/sysv/errfuns/eunatch.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eunatch: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EUNATCH(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/eusers.S b/libc/sysv/errfuns/eusers.S index f3af8b287..de75227d8 100644 --- a/libc/sysv/errfuns/eusers.S +++ b/libc/sysv/errfuns/eusers.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 eusers: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EUSERS(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/exdev.S b/libc/sysv/errfuns/exdev.S index e4dd8b967..679c3a67b 100644 --- a/libc/sysv/errfuns/exdev.S +++ b/libc/sysv/errfuns/exdev.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 exdev: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EXDEV(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/errfuns/exfull.S b/libc/sysv/errfuns/exfull.S index 0979bf38c..fdc83132a 100644 --- a/libc/sysv/errfuns/exfull.S +++ b/libc/sysv/errfuns/exfull.S @@ -1,10 +1,11 @@ #include "libc/macros.internal.h" .text.unlikely + .ftrace1 exfull: + .ftrace2 #ifdef __x86_64__ .leafprologue - .profilable mov EXFULL(%rip),%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/gen.sh b/libc/sysv/gen.sh index 129e9bc37..6a637b58d 100644 --- a/libc/sysv/gen.sh +++ b/libc/sysv/gen.sh @@ -66,10 +66,11 @@ errfun() { ERRNO="$2" { printf '#include "libc/macros.internal.h"\n.text.unlikely\n\n' + printf '\t.ftrace1\n' printf '%s:\n' "$NAME" + printf '\t.ftrace2\n' printf '#ifdef __x86_64__ .leafprologue - .profilable mov %s(%%rip),%%ecx jmp __errfun #elif defined(__aarch64__) diff --git a/libc/sysv/macros.internal.h b/libc/sysv/macros.internal.h index 20052cf20..ed3f80ce0 100644 --- a/libc/sysv/macros.internal.h +++ b/libc/sysv/macros.internal.h @@ -19,14 +19,16 @@ .section .text.syscall,"ax",@progbits #ifdef __x86_64__ .ifnb \kw2 - .balign 16 -\name: movabs $\amd,%rax + .ftrace1 +\name: .ftrace2 + movabs $\amd,%rax jmp *__systemfive(%rip) .else -\name: push %rbp + .ftrace1 +\name: .ftrace2 + push %rbp mov %rsp,%rbp movabs $\amd,%rax - .hookable call *__systemfive(%rip) pop %rbp ret @@ -36,11 +38,15 @@ .ifc \arm_linux,4095 .ifc \arm_xnu,4095 // return enosys(); -\name: b enosys + .ftrace1 +\name: .ftrace2 + b enosys .endfn \name,\kw1,\kw2 .else // return IsXnu() ? syscall(x16, ...) : syscall(x8, ...); -\name: adrp x9,__hostos + .ftrace1 +\name: .ftrace2 + adrp x9,__hostos ldr w9,[x9,#:lo12:__hostos] tbz x9,#3,1f // !IsXnu() mov x16,#\arm_xnu // apple ordinal @@ -55,7 +61,9 @@ .else .ifc \arm_xnu,4095 // return IsLinux() ? syscall(x8, ...) : enosys(); -\name: adrp x9,__hostos + .ftrace1 +\name: .ftrace2 + adrp x9,__hostos ldr w9,[x9,#:lo12:__hostos] tbz x9,#0,1f // !IsLinux() mov x8,#\arm_linux // systemd ordinal @@ -66,7 +74,9 @@ 1: b enosys .endfn \name,\kw1,\kw2 .else -\name: mov x16,#\arm_xnu // apple ordinal + .ftrace1 +\name: .ftrace2 + mov x16,#\arm_xnu // apple ordinal mov x8,#\arm_linux // systemd ordinal mov x9,#0 // clear carry flag adds x9,x9,#0 // clear carry flag diff --git a/libc/sysv/syscall.S b/libc/sysv/syscall.S index b0003200e..0c8c490fe 100644 --- a/libc/sysv/syscall.S +++ b/libc/sysv/syscall.S @@ -33,10 +33,11 @@ // @param %rsi,%rdx,%rcx,%r8,%r9 may supply parameters 1 through 5 // @param sixth is optionally pushed on the stack before call // @return %rax has result, or -1 w/ errno on failure + .ftrace1 syscall: + .ftrace2 push %rbp mov %rsp,%rbp - .profilable // slide arguments into their right places mov %rdi,%rax // nr diff --git a/libc/sysv/sysv.mk b/libc/sysv/sysv.mk index 1b503a48c..78bf083c6 100644 --- a/libc/sysv/sysv.mk +++ b/libc/sysv/sysv.mk @@ -78,7 +78,7 @@ o/$(MODE)/libc/sysv/errno.o \ o/$(MODE)/libc/sysv/sysret.o \ o/$(MODE)/libc/sysv/errfun2.o \ o/$(MODE)/libc/sysv/sysret.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(NO_MAGIC) #─────────────────────────────────────────────────────────────────────────────── diff --git a/libc/thread/tls2.h b/libc/thread/tls2.h index 6129a8e5f..d16c49685 100644 --- a/libc/thread/tls2.h +++ b/libc/thread/tls2.h @@ -12,7 +12,7 @@ COSMOPOLITAN_C_START_ * This should be favored over __get_tls() for .privileged code that * can't be self-modified by __enable_tls(). */ -static noasan inline struct CosmoTib *__get_tls_privileged(void) { +privileged static inline noasan struct CosmoTib *__get_tls_privileged(void) { char *tib, *lin = (char *)0x30; if (IsLinux() || IsFreebsd() || IsNetbsd() || IsOpenbsd() || IsMetal()) { asm("mov\t%%fs:(%1),%0" : "=a"(tib) : "r"(lin) : "memory"); diff --git a/libc/time/time.mk b/libc/time/time.mk index f89d59820..40d46457b 100644 --- a/libc/time/time.mk +++ b/libc/time/time.mk @@ -55,11 +55,11 @@ $(LIBC_TIME_A).pkg: \ $(foreach x,$(LIBC_TIME_A_DIRECTDEPS),$($(x)_A).pkg) o/$(MODE)/libc/time/strftime.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-jump-tables o/$(MODE)/libc/time/localtime.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fdata-sections \ -ffunction-sections @@ -67,7 +67,7 @@ o/$(MODE)/libc/time/localtime.o: private \ # we're dividing by constants o/$(MODE)/libc/time/iso8601.o \ o/$(MODE)/libc/time/iso8601us.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 o/$(MODE)/usr/share/zoneinfo/.zip.o: \ diff --git a/libc/tinymath/tinymath.mk b/libc/tinymath/tinymath.mk index 18bc084f3..f10dcbe8d 100644 --- a/libc/tinymath/tinymath.mk +++ b/libc/tinymath/tinymath.mk @@ -45,16 +45,16 @@ $(LIBC_TINYMATH_A).pkg: \ o/$(MODE)/libc/tinymath/lround.o \ o/$(MODE)/libc/tinymath/lroundf.o \ o/$(MODE)/libc/tinymath/lroundl.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-builtin o/$(MODE)/libc/tinymath/expl.o \ o/$(MODE)/libc/tinymath/loglq.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections $(LIBC_TINYMATH_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fsigned-zeros \ -ftrapping-math \ -frounding-math \ diff --git a/net/http/http.mk b/net/http/http.mk index 55c917f96..5630fd652 100644 --- a/net/http/http.mk +++ b/net/http/http.mk @@ -50,13 +50,13 @@ o/$(MODE)/net/http/isloopbackip.o \ o/$(MODE)/net/http/ismulticastip.o \ o/$(MODE)/net/http/isripeip.o \ o/$(MODE)/net/http/istestnetip.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os # we need -O3 because: # we're dividing by constants o/$(MODE)/net/http/formathttpdatetime.o: private\ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 NET_HTTP_LIBS = $(foreach x,$(NET_HTTP_ARTIFACTS),$($(x))) diff --git a/test/libc/intrin/test.mk b/test/libc/intrin/test.mk index e4789b625..afbd74181 100644 --- a/test/libc/intrin/test.mk +++ b/test/libc/intrin/test.mk @@ -69,7 +69,7 @@ o/$(MODE)/test/libc/intrin/lock_test.com.dbg: \ @$(APELINK) $(TEST_LIBC_INTRIN_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-builtin .PHONY: o/$(MODE)/test/libc/intrin diff --git a/test/libc/runtime/test.mk b/test/libc/runtime/test.mk index f42075df3..aea345878 100644 --- a/test/libc/runtime/test.mk +++ b/test/libc/runtime/test.mk @@ -77,7 +77,7 @@ o/$(MODE)/test/libc/runtime/getenv_test.com.runs: \ @HELLO=THERE build/runit $@ $< o/$(MODE)/test/libc/runtime/itsatrap_test.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-sanitize=all \ -ftrapv diff --git a/test/libc/str/test.mk b/test/libc/str/test.mk index d3a00d86a..f609ecbff 100644 --- a/test/libc/str/test.mk +++ b/test/libc/str/test.mk @@ -63,7 +63,7 @@ o/$(MODE)/test/libc/str/str.pkg: \ $(foreach x,$(TEST_LIBC_STR_DIRECTDEPS),$($(x)_A).pkg) o/$(MODE)/test/libc/str/tpenc_test.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(TRADITIONAL) o/$(MODE)/test/libc/str/%.com.dbg: \ @@ -80,7 +80,7 @@ $(TEST_LIBC_STR_OBJS): private \ -fno-builtin o/$(MODE)/test/libc/str/memmove_test.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 -D_FORTIFY_SOURCE=2 .PHONY: o/$(MODE)/test/libc/str diff --git a/test/libc/thread/test.mk b/test/libc/thread/test.mk index 87d3e3cca..c3c230f38 100644 --- a/test/libc/thread/test.mk +++ b/test/libc/thread/test.mk @@ -56,7 +56,7 @@ o/$(MODE)/test/libc/thread/%.com.dbg: \ @$(APELINK) o/$(MODE)/test/libc/thread/pthread_create_test.o: \ - private OVERRIDE_CPPFLAGS += \ + private CPPFLAGS += \ -DSTACK_FRAME_UNLIMITED .PHONY: o/$(MODE)/test/libc/thread diff --git a/test/libc/tinymath/test.mk b/test/libc/tinymath/test.mk index b6a3d1d3d..5a7ffb2f8 100644 --- a/test/libc/tinymath/test.mk +++ b/test/libc/tinymath/test.mk @@ -58,7 +58,7 @@ o/$(MODE)/test/libc/tinymath/%.com.dbg: \ @$(APELINK) $(TEST_LIBC_TINYMATH_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-builtin .PHONY: o/$(MODE)/test/libc/tinymath diff --git a/test/tool/build/lib/asmdown_test.c b/test/tool/build/lib/asmdown_test.c index eee69258b..dd60e06d8 100644 --- a/test/tool/build/lib/asmdown_test.c +++ b/test/tool/build/lib/asmdown_test.c @@ -16,9 +16,9 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "tool/build/lib/asmdown.h" #include "libc/str/str.h" #include "libc/testlib/testlib.h" -#include "tool/build/lib/asmdown.h" TEST(ParseAsmdown, test) { struct Asmdown *ad; @@ -30,8 +30,9 @@ TEST(ParseAsmdown, test) { /\n\ / @param xmm0 has double in lower half\n\ / @return xmm0 has result in lower half\n\ -fabs: .leafprologue\n\ - .profilable\n\ + .ftrace1\n\ +fabs: .ftrace2\n\ + .leafprologue\n\ mov $0x7fffffffffffffff,%rax\n\ movq %xmm0,%rdx\n\ and %rax,%rdx\n\ @@ -67,7 +68,7 @@ tinymath_acos:\n\ EXPECT_STREQ("xmm0 has result in lower half", ad->symbols.p[0].javadown->tags.p[1].text); - EXPECT_EQ(17, ad->symbols.p[1].line); + EXPECT_EQ(18, ad->symbols.p[1].line); EXPECT_STREQ("tinymath_acos", ad->symbols.p[1].name); EXPECT_FALSE(ad->symbols.p[1].javadown->isfileoverview); EXPECT_STREQ("Returns arc cosine of 𝑥.", ad->symbols.p[1].javadown->title); diff --git a/third_party/argon2/argon2.mk b/third_party/argon2/argon2.mk index e550db33d..5095c9845 100644 --- a/third_party/argon2/argon2.mk +++ b/third_party/argon2/argon2.mk @@ -43,7 +43,7 @@ $(THIRD_PARTY_ARGON2_A).pkg: \ # we can't use ubsan because: # it's just too slow to be practical (like 6s vs. 13s) $(THIRD_PARTY_ARGON2_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections \ -fno-sanitize=undefined diff --git a/third_party/bzip2/bzip2.mk b/third_party/bzip2/bzip2.mk index cd4427bfe..123e6a7bb 100644 --- a/third_party/bzip2/bzip2.mk +++ b/third_party/bzip2/bzip2.mk @@ -63,7 +63,7 @@ o/$(MODE)/third_party/bzip2/bzip2recover.com.dbg: \ @$(APELINK) $(THIRD_PARTY_BZIP2_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/chibicc/chibicc.mk b/third_party/chibicc/chibicc.mk index fa2688610..eb7c8f5df 100644 --- a/third_party/chibicc/chibicc.mk +++ b/third_party/chibicc/chibicc.mk @@ -103,7 +103,7 @@ o/$(MODE)/third_party/chibicc/as.com.dbg: \ @$(APELINK) o/$(MODE)/third_party/chibicc/chibicc.o: private \ - OVERRIDE_CPPFLAGS += $(THIRD_PARTY_CHIBICC_DEFINES) + CPPFLAGS += $(THIRD_PARTY_CHIBICC_DEFINES ) THIRD_PARTY_CHIBICC_LIBS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x))) THIRD_PARTY_CHIBICC_SRCS = $(foreach x,$(THIRD_PARTY_CHIBICC_ARTIFACTS),$($(x)_SRCS)) diff --git a/third_party/dlmalloc/dlmalloc.mk b/third_party/dlmalloc/dlmalloc.mk index a0da1c366..39c5c58a6 100644 --- a/third_party/dlmalloc/dlmalloc.mk +++ b/third_party/dlmalloc/dlmalloc.mk @@ -46,7 +46,7 @@ ifneq ($(MODE),tinylinux) # README file recommends -O3 # It does double performance in default mode o/$(MODE)/third_party/dlmalloc/dlmalloc.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 endif endif @@ -54,14 +54,14 @@ endif # we can't use address sanitizer because: # address sanitizer depends on dlmalloc o/$(MODE)/third_party/dlmalloc/dlmalloc.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffreestanding \ -fno-sanitize=address # we must segregate codegen because: # file contains multiple independently linkable apis o/$(MODE)/third_party/dlmalloc/dlmalloc.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/double-conversion/dc.mk b/third_party/double-conversion/dc.mk index 34591b39c..1a022fc97 100644 --- a/third_party/double-conversion/dc.mk +++ b/third_party/double-conversion/dc.mk @@ -48,7 +48,7 @@ $(THIRD_PARTY_DOUBLECONVERSION_A).pkg: \ $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_DOUBLECONVERSION_A_OBJS): private \ - OVERRIDE_CXXFLAGS += \ + CXXFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/gdtoa/gdtoa.mk b/third_party/gdtoa/gdtoa.mk index 9607c285b..4aeb3bf3c 100644 --- a/third_party/gdtoa/gdtoa.mk +++ b/third_party/gdtoa/gdtoa.mk @@ -39,7 +39,7 @@ $(THIRD_PARTY_GDTOA_A).pkg: \ $(foreach x,$(THIRD_PARTY_GDTOA_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_GDTOA_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/ggml/ggml.mk b/third_party/ggml/ggml.mk index e09536389..afec5a401 100644 --- a/third_party/ggml/ggml.mk +++ b/third_party/ggml/ggml.mk @@ -81,14 +81,14 @@ $(THIRD_PARTY_GGML_A).pkg: \ $(foreach x,$(THIRD_PARTY_GGML_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_GGML_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 \ -ffunction-sections \ -fdata-sections ifeq ($(ARCH), x86_64) $(THIRD_PARTY_GGML_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -msse3 \ -mavx \ -mavx2 \ @@ -97,13 +97,13 @@ $(THIRD_PARTY_GGML_A_OBJS): private \ endif o/opt/third_party/ggml/ggml.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -x-no-pg ifeq ($(ARCH), x86_64) o/rel/third_party/ggml/ggml.o \ o/opt/third_party/ggml/ggml.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fschedule-insns2 \ -mred-zone endif diff --git a/third_party/libcxx/libcxx.mk b/third_party/libcxx/libcxx.mk index ff1ab6b55..4820b23c9 100644 --- a/third_party/libcxx/libcxx.mk +++ b/third_party/libcxx/libcxx.mk @@ -209,7 +209,7 @@ $(THIRD_PARTY_LIBCXX_A).pkg: \ $(foreach x,$(THIRD_PARTY_LIBCXX_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_LIBCXX_A_OBJS): private \ - OVERRIDE_CXXFLAGS += \ + CXXFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/linenoise/linenoise.mk b/third_party/linenoise/linenoise.mk index 32228934c..1f0750e0c 100644 --- a/third_party/linenoise/linenoise.mk +++ b/third_party/linenoise/linenoise.mk @@ -44,7 +44,7 @@ $(THIRD_PARTY_LINENOISE_A).pkg: \ $(foreach x,$(THIRD_PARTY_LINENOISE_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_LINENOISE_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-jump-tables \ -ffunction-sections \ -fdata-sections diff --git a/third_party/lua/lua.mk b/third_party/lua/lua.mk index 2fdbb9c92..f17ad4e89 100644 --- a/third_party/lua/lua.mk +++ b/third_party/lua/lua.mk @@ -148,15 +148,15 @@ $(THIRD_PARTY_LUA_A).pkg: \ o/$(MODE)/third_party/lua/lmathlib.o \ o//third_party/lua/lgc.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 o/$(MODE)/third_party/lua/lvm.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-gcse $(THIRD_PARTY_LUA_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/make/make.mk b/third_party/make/make.mk index f9bab762e..f166f44c4 100644 --- a/third_party/make/make.mk +++ b/third_party/make/make.mk @@ -162,15 +162,15 @@ o/$(MODE)/third_party/make/make.com: \ o/$(MODE)/third_party/make/strcache.o \ o/$(MODE)/third_party/make/expand.o \ o/$(MODE)/third_party/make/read.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 o/$(MODE)/third_party/make/hash.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 $(THIRD_PARTY_MAKE_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DNO_ARCHIVES \ -DHAVE_CONFIG_H \ -DSTACK_FRAME_UNLIMITED \ diff --git a/third_party/maxmind/maxmind.mk b/third_party/maxmind/maxmind.mk index 4b5e8c935..31cc33521 100644 --- a/third_party/maxmind/maxmind.mk +++ b/third_party/maxmind/maxmind.mk @@ -42,7 +42,7 @@ $(THIRD_PARTY_MAXMIND_A).pkg: \ $(foreach x,$(THIRD_PARTY_MAXMIND_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_MAXMIND_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fdata-sections \ -ffunction-sections diff --git a/third_party/mbedtls/mbedtls.mk b/third_party/mbedtls/mbedtls.mk index 9a900be40..3a493d64e 100644 --- a/third_party/mbedtls/mbedtls.mk +++ b/third_party/mbedtls/mbedtls.mk @@ -48,27 +48,27 @@ $(THIRD_PARTY_MBEDTLS_A).pkg: \ $(foreach x,$(THIRD_PARTY_MBEDTLS_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_MBEDTLS_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fdata-sections \ -ffunction-sections o/$(MODE)/third_party/mbedtls/everest.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 o/$(MODE)/third_party/mbedtls/bigmul4.o \ o/$(MODE)/third_party/mbedtls/bigmul6.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 ifeq ($(ARCH), x86_64) o/$(MODE)/third_party/mbedtls/shiftright-avx.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 -mavx endif o/$(MODE)/third_party/mbedtls/zeroize.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 \ -x-no-pg \ -fomit-frame-pointer \ diff --git a/third_party/mbedtls/test/test.mk b/third_party/mbedtls/test/test.mk index 4346f0cbd..4490f72d7 100644 --- a/third_party/mbedtls/test/test.mk +++ b/third_party/mbedtls/test/test.mk @@ -135,7 +135,7 @@ o/$(MODE)/third_party/mbedtls/test/%.com.runs: o/$(MODE)/third_party/mbedtls/tes @$(COMPILE) -ACHECK -wtT$@ $(VM) $< $(TESTARGS) o/$(MODE)/third_party/mbedtls/test/lib.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fdata-sections \ -ffunction-sections diff --git a/third_party/mbedtls/test/test_suite_ssl.c b/third_party/mbedtls/test/test_suite_ssl.c index 63ca7e6d1..ec915c82d 100644 --- a/third_party/mbedtls/test/test_suite_ssl.c +++ b/third_party/mbedtls/test/test_suite_ssl.c @@ -91,7 +91,7 @@ void log_analyzer( void *ctx, int level, /* Invalid minor version used when not specifying a min/max version or expecting a test to fail */ #define TEST_SSL_MINOR_VERSION_NONE -1 -s + typedef struct handshake_test_options { const char *cipher; diff --git a/third_party/nsync/mem/mem.mk b/third_party/nsync/mem/mem.mk index 5b17ee960..922fe9414 100644 --- a/third_party/nsync/mem/mem.mk +++ b/third_party/nsync/mem/mem.mk @@ -40,7 +40,7 @@ $(THIRD_PARTY_NSYNC_MEM_A).pkg: \ $(foreach x,$(THIRD_PARTY_NSYNC_MEM_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_NSYNC_MEM_A_OBJS): private \ - OVERRIDE_CCFLAGS += \ + CCFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/nsync/nsync.mk b/third_party/nsync/nsync.mk index c36d6e773..64a92f4aa 100644 --- a/third_party/nsync/nsync.mk +++ b/third_party/nsync/nsync.mk @@ -50,7 +50,7 @@ $(THIRD_PARTY_NSYNC_A).pkg: \ $(foreach x,$(THIRD_PARTY_NSYNC_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_NSYNC_A_OBJS): private \ - OVERRIDE_CCFLAGS += \ + CCFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/python/Python/cosmomodule.c b/third_party/python/Python/cosmomodule.c index 52e6bdd7b..10aebb28a 100644 --- a/third_party/python/Python/cosmomodule.c +++ b/third_party/python/Python/cosmomodule.c @@ -342,7 +342,7 @@ static PyMethodDef cosmo_methods[] = { {"getcpucore", cosmo_getcpucore, METH_NOARGS, getcpucore_doc}, {"getcpunode", cosmo_getcpunode, METH_NOARGS, getcpunode_doc}, #endif /* __x86_64__ */ -#ifdef __PG__ +#ifdef FTRACE {"ftrace", cosmo_ftrace, METH_NOARGS, ftrace_doc}, #endif {0}, diff --git a/third_party/python/python.mk b/third_party/python/python.mk index af5f9aafe..4dae2ebd4 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -3375,7 +3375,7 @@ o/$(MODE)/third_party/python/Modules/posixmodule.o: \ $(THIRD_PARTY_PYTHON_STAGE1_A_OBJS) \ $(THIRD_PARTY_PYTHON_STAGE2_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fwrapv \ -ffunction-sections \ -fdata-sections @@ -3384,7 +3384,7 @@ o/$(MODE)/third_party/python/Python/ceval.o \ o/$(MODE)/third_party/python/Objects/object.o \ o/$(MODE)/third_party/python/Python/graminit.o \ o/$(MODE)/third_party/python/Objects/abstract.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-function-sections \ -fno-data-sections @@ -3402,7 +3402,7 @@ o/$(MODE)/third_party/python/Objects/memoryobject.o \ o/$(MODE)/third_party/python/Objects/unicodeobject.o \ o/$(MODE)/third_party/python/Python/ast.o \ o/$(MODE)/third_party/python/Python/compile.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie o//third_party/python/Modules/_decimal/libmpdec/basearith.o \ @@ -3431,38 +3431,38 @@ o//third_party/python/Objects/obmalloc.o \ o//third_party/python/Objects/funcobject.o \ o//third_party/python/Objects/pyhash.o \ o//third_party/python/Python/ceval.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 $(THIRD_PARTY_PYTHON_STAGE1_A_OBJS) \ $(THIRD_PARTY_PYTHON_STAGE2_A_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DPy_BUILD_CORE \ -DMULTIARCH='"x86_64-cosmo"' ifneq ($(MODE),dbg) $(THIRD_PARTY_PYTHON_STAGE1_A_OBJS) \ $(THIRD_PARTY_PYTHON_STAGE2_A_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DNDEBUG endif o/$(MODE)/third_party/python/Python/sysmodule.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DABIFLAGS='"m"' # NOTE: Care must be taken that the compiler doesn't try to "optimize" # the indirect jumps by sharing them between all opcodes. Such # optimizations can be disabled on gcc by using -fno-gcse. o/$(MODE)/third_party/python/Python/ceval.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-gcse # Issue #23654: Turn off ICC's tail call optimization for the # stack_overflow generator. ICC turns the recursive tail # call into a loop. [Let's do GCC too, just to be safe.] o/$(MODE)/third_party/python/Modules/faulthandler.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fno-optimize-sibling-calls o/$(MODE)/third_party/python/Lib/mimetypes.o: private PYFLAGS += -Y.python/mime.types diff --git a/third_party/quickjs/quickjs.mk b/third_party/quickjs/quickjs.mk index 076f47e1d..0df3c8a84 100644 --- a/third_party/quickjs/quickjs.mk +++ b/third_party/quickjs/quickjs.mk @@ -194,18 +194,18 @@ o/$(MODE)/third_party/quickjs/unicode_gen.com.dbg: \ @$(APELINK) $(THIRD_PARTY_QUICKJS_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DCONFIG_BIGNUM \ -DCONFIG_VERSION=\"2021-03-27\" o/tiny/third_party/quickjs/call.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O2 # TODO(jart): Replace alloca() calls with malloc(). o/$(MODE)/third_party/quickjs/libregexp.o \ o/$(MODE)/third_party/quickjs/quickjs.o: private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DSTACK_FRAME_UNLIMITED o/$(MODE)/third_party/quickjs/call.o: private QUOTA = -M1024m -C32 -L180 diff --git a/third_party/regex/regex.mk b/third_party/regex/regex.mk index 6fc141aa4..e7441e684 100644 --- a/third_party/regex/regex.mk +++ b/third_party/regex/regex.mk @@ -51,7 +51,7 @@ $(THIRD_PARTY_REGEX_OBJS): third_party/regex/regex.mk o/$(MODE)/third_party/regex/regcomp.o \ o/$(MODE)/third_party/regex/regexec.o \ o/$(MODE)/third_party/regex/tre-mem.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(OLD_CODE) .PHONY: o/$(MODE)/third_party/regex diff --git a/third_party/sqlite3/sqlite3.mk b/third_party/sqlite3/sqlite3.mk index 9bff4f494..098233c39 100644 --- a/third_party/sqlite3/sqlite3.mk +++ b/third_party/sqlite3/sqlite3.mk @@ -138,12 +138,12 @@ THIRD_PARTY_SQLITE3_CPPFLAGS_DEBUG = -DSQLITE_DEBUG endif $(THIRD_PARTY_SQLITE3_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(THIRD_PARTY_SQLITE3_FLAGS) \ $(THIRD_PARTY_SQLITE3_CPPFLAGS_DEBUG) \ $(THIRD_PARTY_SQLITE3_SHELL_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(THIRD_PARTY_SQLITE3_FLAGS) \ $(THIRD_PARTY_SQLITE3_CPPFLAGS_DEBUG) \ -DHAVE_READLINE=0 \ @@ -170,16 +170,16 @@ o//third_party/sqlite3/parse.o \ o//third_party/sqlite3/select.o \ o//third_party/sqlite3/pragma.o \ o//third_party/sqlite3/vdbe.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os o/$(MODE)/third_party/sqlite3/shell.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DSTACK_FRAME_UNLIMITED $(THIRD_PARTY_SQLITE3_A_OBJS) \ $(THIRD_PARTY_SQLITE3_SHELL_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fdata-sections \ -ffunction-sections @@ -187,7 +187,7 @@ $(THIRD_PARTY_SQLITE3_SHELL_OBJS): private \ o/$(MODE)/third_party/sqlite3/expr.o \ o/$(MODE)/third_party/sqlite3/printf.o \ o/$(MODE)/third_party/sqlite3/parse.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fpie o/$(MODE)/third_party/sqlite3/shell.o: private QUOTA = -M512m -C16 -L180 diff --git a/third_party/stb/stb.mk b/third_party/stb/stb.mk index fbdc123ba..0476593bc 100644 --- a/third_party/stb/stb.mk +++ b/third_party/stb/stb.mk @@ -56,16 +56,16 @@ $(THIRD_PARTY_STB_A).pkg: \ $(foreach x,$(THIRD_PARTY_STB_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_STB_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections o/$(MODE)/third_party/stb/stb_vorbis.o: private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DSTACK_FRAME_UNLIMITED o/$(MODE)/third_party/stb/stb_truetype.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -Os THIRD_PARTY_STB_LIBS = $(foreach x,$(THIRD_PARTY_STB_ARTIFACTS),$($(x))) diff --git a/third_party/unzip/unzip.mk b/third_party/unzip/unzip.mk index e97511990..ca5938ae8 100644 --- a/third_party/unzip/unzip.mk +++ b/third_party/unzip/unzip.mk @@ -51,7 +51,7 @@ o/$(MODE)/third_party/unzip/unzip.com.dbg: \ @$(APELINK) $(THIRD_PARTY_UNZIP_A_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DUSE_BZIP2 \ -DUNICODE_SUPPORT \ -DHAVE_UNLINK \ @@ -60,7 +60,7 @@ $(THIRD_PARTY_UNZIP_A_OBJS): private \ -DNO_LCHMOD $(THIRD_PARTY_UNZIP_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(OLD_CODE) THIRD_PARTY_UNZIP_COMS = o/$(MODE)/third_party/unzip/unzip.com diff --git a/third_party/xed/xed.mk b/third_party/xed/xed.mk index 6ada2369c..c94ccfb89 100644 --- a/third_party/xed/xed.mk +++ b/third_party/xed/xed.mk @@ -34,7 +34,7 @@ THIRD_PARTY_XED_A_DEPS := \ ifneq ($(ARCH), aarch64) o/$(MODE)/third_party/xed/x86ild.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -mstringop-strategy=unrolled_loop endif @@ -48,7 +48,7 @@ $(THIRD_PARTY_XED_A).pkg: \ $(foreach x,$(THIRD_PARTY_XED_A_DIRECTDEPS),$($(x)_A).pkg) o/$(MODE)/third_party/xed/x86ild.greg.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -O3 HIRD_PARTY_XED_LIBS = $(foreach x,$(THIRD_PARTY_XED_ARTIFACTS),$($(x))) diff --git a/third_party/zip/zip.mk b/third_party/zip/zip.mk index a94d41cae..9c93befd4 100644 --- a/third_party/zip/zip.mk +++ b/third_party/zip/zip.mk @@ -151,7 +151,7 @@ o/$(MODE)/third_party/zip/zipfile_.o \ o/$(MODE)/third_party/zip/zipnote.o \ o/$(MODE)/third_party/zip/zipsplit.o \ o/$(MODE)/third_party/zip/zipup.o: private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DUNIX \ -DMMAP \ -DUNICODE_SUPPORT \ diff --git a/third_party/zlib/gz/gz.mk b/third_party/zlib/gz/gz.mk index 28ae2467e..e14b08480 100644 --- a/third_party/zlib/gz/gz.mk +++ b/third_party/zlib/gz/gz.mk @@ -41,7 +41,7 @@ $(THIRD_PARTY_ZLIB_GZ_A).pkg: \ $(foreach x,$(THIRD_PARTY_ZLIB_GZ_A_DIRECTDEPS),$($(x)_A).pkg) $(THIRD_PARTY_ZLIB_GZ_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/third_party/zlib/zlib.mk b/third_party/zlib/zlib.mk index 14298fa1e..005f7bc96 100644 --- a/third_party/zlib/zlib.mk +++ b/third_party/zlib/zlib.mk @@ -45,7 +45,7 @@ o/$(MODE)/third_party/zlib/crc32_simd.o: private \ -msse4.2 \ -mpclmul $(THIRD_PARTY_ZLIB_A_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DADLER32_SIMD_SSSE3 \ -DCRC32_SIMD_SSE42_PCLMUL \ -DDEFLATE_SLIDE_HASH_SSE2 \ @@ -59,7 +59,7 @@ o/$(MODE)/third_party/zlib/crc32_simd.o: private \ TARGET_ARCH += \ -march=armv8-a+aes+crc $(THIRD_PARTY_ZLIB_A_OBJS): private \ - OVERRIDE_CPPFLAGS += \ + CPPFLAGS += \ -DADLER32_SIMD_NEON \ -DCRC32_ARMV8_CRC32 \ -DDEFLATE_SLIDE_HASH_NEON \ @@ -68,7 +68,7 @@ $(THIRD_PARTY_ZLIB_A_OBJS): private \ endif $(THIRD_PARTY_ZLIB_A_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -ffunction-sections \ -fdata-sections diff --git a/tool/build/build.mk b/tool/build/build.mk index 906e47b0e..23f833750 100644 --- a/tool/build/build.mk +++ b/tool/build/build.mk @@ -105,7 +105,7 @@ o/$(MODE)/tool/build/blinkenlights.com: \ @$(MAKE_SYMTAB_ZIP) o/$(MODE)/tool/build/emulator.o: private \ - OVERRIDE_COPTS += \ + COPTS += \ -fno-sanitize=pointer-overflow o/$(MODE)/tool/build/dso/sandbox.so.zip.o \ @@ -127,7 +127,7 @@ o/$(MODE)/tool/build/dd.zip.o: private \ # we need pic because: # so it can be an LD_PRELOAD payload o/$(MODE)/tool/build/dso/sandbox.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fPIC o/$(MODE)/tool/build/dso/sandbox.o: \ diff --git a/tool/build/emubin/emubin.mk b/tool/build/emubin/emubin.mk index 7edf60f17..00c154cd4 100644 --- a/tool/build/emubin/emubin.mk +++ b/tool/build/emubin/emubin.mk @@ -61,7 +61,7 @@ o/tiny/tool/build/emubin/mdatest.bin.dbg: \ @$(ELFLINK) -z max-page-size=0x10 -T tool/build/emucrt/real.lds $(TOOL_BUILD_EMUBIN_OBJS): private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(NO_MAGIC) .PHONY: o/$(MODE)/tool/build/emubin diff --git a/tool/build/fixupobj.c b/tool/build/fixupobj.c index 324fcdcd3..557929bf1 100644 --- a/tool/build/fixupobj.c +++ b/tool/build/fixupobj.c @@ -54,6 +54,17 @@ Usage: fixupobj.com [-h] ARGS...\n\ #define MRS_TPIDR_EL0 0xd53bd040u #define MOV_REG(DST, SRC) (0xaa0003e0u | (SRC) << 16 | (DST)) +static const unsigned char kFatNops[8][8] = { + {}, // + {0x90}, // nop + {0x66, 0x90}, // xchg %ax,%ax + {0x0f, 0x1f, 0x00}, // nopl (%rax) + {0x0f, 0x1f, 0x40, 0x00}, // nopl 0x00(%rax) + {0x0f, 0x1f, 0x44, 0x00, 0x00}, // nopl 0x00(%rax,%rax,1) + {0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00}, // nopw 0x00(%rax,%rax,1) + {0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00}, // nopl 0x00000000(%rax) +}; + void Write(const char *s, ...) { va_list va; va_start(va, s); @@ -110,6 +121,44 @@ void RewriteTlsCode(Elf64_Ehdr *elf, size_t elfsize) { } } +/** + * Improve GCC11 `-fpatchable-function-entry` codegen. + * + * When using flags like `-fpatchable-function-entry=9,7` GCC v11 will + * insert two `nop` instructions, rather than merging them into faster + * "fat" nops. + * + * In order for this to work, the function symbol must be declared as + * `STT_FUNC` and `st_size` must have the function's byte length. + */ +void OptimizePatchableFunctionEntries(Elf64_Ehdr *elf, size_t elfsize) { +#ifdef __x86_64__ + long i, n; + int nopcount; + Elf64_Sym *syms; + Elf64_Shdr *shdr; + Elf64_Xword symcount; + unsigned char *p, *pe; + CHECK_NOTNULL((syms = GetElfSymbolTable(elf, elfsize, &symcount))); + for (i = 0; i < symcount; ++i) { + if (ELF64_ST_TYPE(syms[i].st_info) == STT_FUNC && syms[i].st_size) { + shdr = GetElfSectionHeaderAddress(elf, elfsize, syms[i].st_shndx); + p = GetElfSectionAddress(elf, elfsize, shdr); + p += syms[i].st_value; + pe = p + syms[i].st_size; + for (; p + 1 < pe; p += n) { + if (p[0] != 0x90) break; + if (p[1] != 0x90) break; + for (n = 2; p + n < pe && n < ARRAYLEN(kFatNops); ++n) { + if (p[n] != 0x90) break; + } + memcpy(p, kFatNops[n], n); + } + } + } +#endif /* __x86_64__ */ +} + void OptimizeRelocations(Elf64_Ehdr *elf, size_t elfsize) { char *strs; Elf64_Half i; @@ -191,6 +240,7 @@ void RewriteObject(const char *path) { } if (elf->e_machine == EM_NEXGEN32E) { OptimizeRelocations(elf, st.st_size); + OptimizePatchableFunctionEntries(elf, st.st_size); } if (elf->e_machine == EM_AARCH64) { RewriteTlsCode(elf, st.st_size); diff --git a/tool/build/lib/asmdown.c b/tool/build/lib/asmdown.c index a31bad0d2..08928f1c5 100644 --- a/tool/build/lib/asmdown.c +++ b/tool/build/lib/asmdown.c @@ -16,10 +16,10 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "tool/build/lib/asmdown.h" #include "libc/mem/alg.h" #include "libc/mem/mem.h" #include "libc/str/str.h" -#include "tool/build/lib/asmdown.h" #include "tool/build/lib/javadown.h" static bool IsSymbolChar1(char c) { @@ -76,6 +76,8 @@ struct Asmdown *ParseAsmdown(const char *code, size_t size) { state = SYM; } else if (code[i] == '\n') { ++line; + } else if (i + 10 < size && !memcmp(code + i, "\t.ftrace1\t", 10)) { + ++line; } else if (i + 8 < size && !memcmp(code + i, "\t.alias\t", 8)) { p1 = code + i + 8; if ((p2 = strchr(p1, ',')) && (p3 = strchr(p2, '\n'))) { diff --git a/tool/lambda/lambda.mk b/tool/lambda/lambda.mk index f06d50116..8b1d3e64c 100644 --- a/tool/lambda/lambda.mk +++ b/tool/lambda/lambda.mk @@ -47,7 +47,7 @@ o/$(MODE)/tool/lambda/%.com.dbg: \ @$(APELINK) o/$(MODE)/tool/lambda/tromp.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -w $(TOOL_LAMBDA_OBJS): \ diff --git a/tool/net/net.mk b/tool/net/net.mk index d924b0d11..f74f3583a 100644 --- a/tool/net/net.mk +++ b/tool/net/net.mk @@ -131,7 +131,7 @@ o/$(MODE)/tool/net/redbean.com: \ @$(TOOL_NET_REDBEAN_STANDARD_ASSETS_ZIP) o/$(MODE)/tool/net/lsqlite3.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DSQLITE_ENABLE_SESSION # REDBEAN-DEMO.COM diff --git a/tool/plinko/lib/lib.mk b/tool/plinko/lib/lib.mk index 43ba08062..7a661d9ea 100644 --- a/tool/plinko/lib/lib.mk +++ b/tool/plinko/lib/lib.mk @@ -53,14 +53,14 @@ $(TOOL_PLINKO_LIB_A).pkg: \ $(foreach x,$(TOOL_PLINKO_LIB_A_DIRECTDEPS),$($(x)_A).pkg) ifeq ($(MODE),) -$(TOOL_PLINKO_LIB_A_OBJS): private OVERRIDE_CFLAGS += -fno-inline +$(TOOL_PLINKO_LIB_A_OBJS): private CFLAGS += -fno-inline endif ifeq ($(MODE),dbg) -$(TOOL_PLINKO_LIB_A_OBJS): private OVERRIDE_CFLAGS += -fno-inline +$(TOOL_PLINKO_LIB_A_OBJS): private CFLAGS += -fno-inline endif -$(TOOL_PLINKO_LIB_A_OBJS): private OVERRIDE_CFLAGS += -ffast-math -foptimize-sibling-calls -O2 +$(TOOL_PLINKO_LIB_A_OBJS): private CFLAGS += -ffast-math -foptimize-sibling-calls -O2 TOOL_PLINKO_LIB_LIBS = $(foreach x,$(TOOL_PLINKO_LIB_ARTIFACTS),$($(x))) TOOL_PLINKO_LIB_SRCS = $(foreach x,$(TOOL_PLINKO_LIB_ARTIFACTS),$($(x)_SRCS)) diff --git a/tool/viz/lib/doublechrominance.S b/tool/viz/lib/doublechrominance.S index 5743100d0..f3ff10809 100644 --- a/tool/viz/lib/doublechrominance.S +++ b/tool/viz/lib/doublechrominance.S @@ -27,9 +27,10 @@ // @param %rsi is char[edi/16][16] output and %rsi==%rdx is OK // @param %rdx is char[edi/16][8] input // @return %rax is %rsi + .ftrace1 doublechrominance: + .ftrace2 .leafprologue - .profilable shr $1,%edi # backwards algorithm jbe 1f # do nothing if !n || n%2 mov %edi,%ecx diff --git a/tool/viz/lib/vizlib.mk b/tool/viz/lib/vizlib.mk index 8edad336f..6244d3630 100644 --- a/tool/viz/lib/vizlib.mk +++ b/tool/viz/lib/vizlib.mk @@ -50,7 +50,7 @@ TOOL_VIZ_LIB_A_DEPS := \ $(call uniq,$(foreach x,$(TOOL_VIZ_LIB_A_DIRECTDEPS),$($(x)))) o/$(MODE)/tool/viz/lib/pmaddubsw.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -fvect-cost-model=unlimited o/$(MODE)/tool/viz/lib/scale.o \ @@ -69,12 +69,12 @@ o/$(MODE)/tool/viz/lib/getxtermcodes.o \ o/$(MODE)/tool/viz/lib/lingamma.o \ o/$(MODE)/tool/viz/lib/perlin3.o \ o/$(MODE)/tool/viz/lib/resizegraphic.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DSTACK_FRAME_UNLIMITED \ $(MATHEMATICAL) o/$(MODE)/tool/viz/lib/printmatrix.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(IEEE_MATH) $(TOOL_VIZ_LIB_A): \ diff --git a/tool/viz/viz.mk b/tool/viz/viz.mk index 7229a0d21..fc75f4913 100644 --- a/tool/viz/viz.mk +++ b/tool/viz/viz.mk @@ -98,12 +98,12 @@ o/$(MODE)/tool/viz/printvideo.com: \ @$(MAKE_SYMTAB_ZIP) o/$(MODE)/tool/viz/derasterize.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ -DSTACK_FRAME_UNLIMITED \ $(MATHEMATICAL) o/$(MODE)/tool/viz/magikarp.o: private \ - OVERRIDE_CFLAGS += \ + CFLAGS += \ $(MATHEMATICAL) $(TOOL_VIZ_OBJS): \