Add OpenMP support

This commit is contained in:
Justine Tunney 2024-01-28 21:57:40 -08:00
parent c1e18e7903
commit 5f8e9f14c1
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
742 changed files with 94643 additions and 1279 deletions

View file

@ -286,6 +286,7 @@ include third_party/readline/BUILD.mk # │
include third_party/libunwind/BUILD.mk # |
include third_party/libcxxabi/BUILD.mk # |
include third_party/libcxx/BUILD.mk # │
include third_party/openmp/BUILD.mk # │
include third_party/double-conversion/BUILD.mk # │
include third_party/pcre/BUILD.mk # │
include third_party/less/BUILD.mk # │
@ -441,6 +442,7 @@ COSMOPOLITAN_OBJECTS = \
THIRD_PARTY_GETOPT \
LIBC_LOG \
LIBC_TIME \
THIRD_PARTY_OPENMP \
THIRD_PARTY_MUSL \
THIRD_PARTY_ZLIB_GZ \
THIRD_PARTY_LIBCXXABI \
@ -522,6 +524,7 @@ COSMOCC_PKGS = \
THIRD_PARTY_AARCH64 \
THIRD_PARTY_LIBCXX \
THIRD_PARTY_LIBCXXABI \
THIRD_PARTY_OPENMP \
THIRD_PARTY_INTEL
o/$(MODE)/cosmopolitan.a: \

View file

@ -40,6 +40,9 @@ o/$(MODE)/%.h: %.c
o/$(MODE)/%.o: %.cc
@$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $<
o/$(MODE)/%.o: %.cpp
@$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $<
o/$(MODE)/%.lds: %.lds
@$(COMPILE) -APREPROCESS $(PREPROCESS.lds) $(OUTPUT_OPTION) $<

47
libc/calls/sched_getcpu.c Normal file
View file

@ -0,0 +1,47 @@
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│
vi: set et ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi
Copyright 2024 Justine Alexandra Roberts Tunney
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted, provided that the
above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/calls/calls.h"
#include "libc/calls/struct/cpuset.h"
#include "libc/dce.h"
#include "libc/nexgen32e/rdtscp.h"
#include "libc/nexgen32e/x86feature.h"
#include "libc/nt/struct/processornumber.h"
#include "libc/nt/synchronization.h"
int sys_getcpu(unsigned *opt_cpu, unsigned *opt_node, void *tcache);
/**
* Returns ID of CPU on which thread is currently scheduled.
*/
int sched_getcpu(void) {
if (X86_HAVE(RDTSCP)) {
unsigned tsc_aux;
rdtscp(&tsc_aux);
return TSC_AUX_CORE(tsc_aux);
} else if (IsWindows()) {
struct NtProcessorNumber pn;
GetCurrentProcessorNumberEx(&pn);
return 64 * pn.Group + pn.Number;
} else {
unsigned cpu = 0;
int rc = sys_getcpu(&cpu, 0, 0);
if (rc == -1) return -1;
return cpu;
}
}

View file

@ -53,5 +53,7 @@ int CPU_COUNT_S(size_t, const cpu_set_t *) libcesque;
#define CPU_CLR_S(i, size, set) _CPU_S(i, size, set, &= ~)
#define CPU_ISSET_S(i, size, set) _CPU_S(i, size, set, &)
typedef cpu_set_t cpuset_t; /* for freebsd compatibility */
COSMOPOLITAN_C_END_
#endif /* COSMOPOLITAN_LIBC_CALLS_STRUCT_CPUSET_H_ */

View file

@ -45,7 +45,7 @@ int gettid(void) {
}
}
if (IsXnuSilicon()) {
return enosys();
return enosys(); // can only happen if we can't access thread local storage
} else {
return sys_gettid();
}

View file

@ -18,8 +18,8 @@ COSMOPOLITAN_C_START_
*/
#define rdtscp(OPT_OUT_IA32_TSC_AUX) \
({ \
uint64_t Rax, Rdx; \
uint32_t Ecx, *EcxOut; \
uint64_t Rax, Rcx, Rdx; \
asm volatile("rdtscp" \
: "=a"(Rax), "=c"(Ecx), "=d"(Rdx) \
: /* no inputs */ \

View file

@ -2,9 +2,9 @@
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WaitOnAddress,WaitOnAddress
.text.windows
.ftrace1
.ftrace1
WaitOnAddress:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressAll,WakeByAddressAll
.text.windows
.ftrace1
.ftrace1
WakeByAddressAll:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressSingle,WakeByAddressSingle
.text.windows
.ftrace1
.ftrace1
WakeByAddressSingle:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp PowrProf,__imp_SetSuspendState,SetSuspendState
.text.windows
.ftrace1
.ftrace1
SetSuspendState:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_AccessCheck,AccessCheck
.text.windows
.ftrace1
.ftrace1
AccessCheck:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_AdjustTokenPrivileges,AdjustTokenPrivileges
.text.windows
.ftrace1
.ftrace1
AdjustTokenPrivileges:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_CreateProcessAsUserW,CreateProcessAsUserW
.text.windows
.ftrace1
.ftrace1
CreateProcessAsUser:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_DeregisterEventSource,DeregisterEventSource
.text.windows
.ftrace1
.ftrace1
DeregisterEventSource:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_DuplicateToken,DuplicateToken
.text.windows
.ftrace1
.ftrace1
DuplicateToken:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_DuplicateTokenEx,DuplicateTokenEx
.text.windows
.ftrace1
.ftrace1
DuplicateTokenEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_GetFileSecurityW,GetFileSecurityW
.text.windows
.ftrace1
.ftrace1
GetFileSecurity:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_GetUserNameW,GetUserNameW
.text.windows
.ftrace1
.ftrace1
GetUserName:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_ImpersonateSelf,ImpersonateSelf
.text.windows
.ftrace1
.ftrace1
ImpersonateSelf:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_InitiateShutdownW,InitiateShutdownW
.text.windows
.ftrace1
.ftrace1
InitiateShutdown:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_LookupPrivilegeValueW,LookupPrivilegeValueW
.text.windows
.ftrace1
.ftrace1
LookupPrivilegeValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_MapGenericMask,MapGenericMask
.text.windows
.ftrace1
.ftrace1
MapGenericMask:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_OpenProcessToken,OpenProcessToken
.text.windows
.ftrace1
.ftrace1
OpenProcessToken:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_OpenThreadToken,OpenThreadToken
.text.windows
.ftrace1
.ftrace1
OpenThreadToken:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegCloseKey,RegCloseKey
.text.windows
.ftrace1
.ftrace1
RegCloseKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegConnectRegistryW,RegConnectRegistryW
.text.windows
.ftrace1
.ftrace1
RegConnectRegistry:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegCreateKeyExW,RegCreateKeyExW
.text.windows
.ftrace1
.ftrace1
RegCreateKeyEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegCreateKeyW,RegCreateKeyW
.text.windows
.ftrace1
.ftrace1
RegCreateKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDeleteKeyExW,RegDeleteKeyExW
.text.windows
.ftrace1
.ftrace1
RegDeleteKeyEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDeleteKeyW,RegDeleteKeyW
.text.windows
.ftrace1
.ftrace1
RegDeleteKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDeleteTreeW,RegDeleteTreeW
.text.windows
.ftrace1
.ftrace1
RegDeleteTree:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDeleteValueW,RegDeleteValueW
.text.windows
.ftrace1
.ftrace1
RegDeleteValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDisablePredefinedCache,RegDisablePredefinedCache
.text.windows
.ftrace1
.ftrace1
RegDisablePredefinedCache:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegDisableReflectionKey,RegDisableReflectionKey
.text.windows
.ftrace1
.ftrace1
RegDisableReflectionKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegEnableReflectionKey,RegEnableReflectionKey
.text.windows
.ftrace1
.ftrace1
RegEnableReflectionKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegEnumKeyExW,RegEnumKeyExW
.text.windows
.ftrace1
.ftrace1
RegEnumKeyEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegEnumKeyW,RegEnumKeyW
.text.windows
.ftrace1
.ftrace1
RegEnumKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegEnumValueW,RegEnumValueW
.text.windows
.ftrace1
.ftrace1
RegEnumValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegFlushKey,RegFlushKey
.text.windows
.ftrace1
.ftrace1
RegFlushKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegGetKeySecurity,RegGetKeySecurity
.text.windows
.ftrace1
.ftrace1
RegGetKeySecurity:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegGetValueW,RegGetValueW
.text.windows
.ftrace1
.ftrace1
RegGetValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegLoadKeyW,RegLoadKeyW
.text.windows
.ftrace1
.ftrace1
RegLoadKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegNotifyChangeKeyValue,RegNotifyChangeKeyValue
.text.windows
.ftrace1
.ftrace1
RegNotifyChangeKeyValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegOpenCurrentUser,RegOpenCurrentUser
.text.windows
.ftrace1
.ftrace1
RegOpenCurrentUser:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegOpenKeyExW,RegOpenKeyExW
.text.windows
.ftrace1
.ftrace1
RegOpenKeyEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegOpenUserClassesRoot,RegOpenUserClassesRoot
.text.windows
.ftrace1
.ftrace1
RegOpenUserClassesRoot:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegOverridePredefKey,RegOverridePredefKey
.text.windows
.ftrace1
.ftrace1
RegOverridePredefKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegQueryInfoKeyW,RegQueryInfoKeyW
.text.windows
.ftrace1
.ftrace1
RegQueryInfoKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegQueryMultipleValuesW,RegQueryMultipleValuesW
.text.windows
.ftrace1
.ftrace1
RegQueryMultipleValues:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegQueryReflectionKey,RegQueryReflectionKey
.text.windows
.ftrace1
.ftrace1
RegQueryReflectionKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegQueryValueExW,RegQueryValueExW
.text.windows
.ftrace1
.ftrace1
RegQueryValueEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegQueryValueW,RegQueryValueW
.text.windows
.ftrace1
.ftrace1
RegQueryValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegReplaceKeyW,RegReplaceKeyW
.text.windows
.ftrace1
.ftrace1
RegReplaceKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegRestoreKeyW,RegRestoreKeyW
.text.windows
.ftrace1
.ftrace1
RegRestoreKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegSaveKeyW,RegSaveKeyW
.text.windows
.ftrace1
.ftrace1
RegSaveKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegSetKeySecurity,RegSetKeySecurity
.text.windows
.ftrace1
.ftrace1
RegSetKeySecurity:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegSetValueExW,RegSetValueExW
.text.windows
.ftrace1
.ftrace1
RegSetValueEx:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegSetValueW,RegSetValueW
.text.windows
.ftrace1
.ftrace1
RegSetValue:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegUnLoadKeyW,RegUnLoadKeyW
.text.windows
.ftrace1
.ftrace1
RegUnLoadKey:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RegisterEventSourceW,RegisterEventSourceW
.text.windows
.ftrace1
.ftrace1
RegisterEventSource:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_ReportEventA,ReportEventA
.text.windows
.ftrace1
.ftrace1
ReportEventA:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_ReportEventW,ReportEventW
.text.windows
.ftrace1
.ftrace1
ReportEvent:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_RevertToSelf,RevertToSelf
.text.windows
.ftrace1
.ftrace1
RevertToSelf:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp advapi32,__imp_SystemFunction036,SystemFunction036
.text.windows
.ftrace1
.ftrace1
RtlGenRandom:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_ChooseColorW,ChooseColorW
.text.windows
.ftrace1
.ftrace1
ChooseColor:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_ChooseFontW,ChooseFontW
.text.windows
.ftrace1
.ftrace1
ChooseFont:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_GetFileTitleW,GetFileTitleW
.text.windows
.ftrace1
.ftrace1
GetFileTitle:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_GetOpenFileNameW,GetOpenFileNameW
.text.windows
.ftrace1
.ftrace1
GetOpenFileName:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_GetSaveFileNameW,GetSaveFileNameW
.text.windows
.ftrace1
.ftrace1
GetSaveFileName:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_PrintDlgW,PrintDlgW
.text.windows
.ftrace1
.ftrace1
PrintDlg:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp comdlg32,__imp_ReplaceTextW,ReplaceTextW
.text.windows
.ftrace1
.ftrace1
ReplaceText:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_BitBlt,BitBlt
.text.windows
.ftrace1
.ftrace1
BitBlt:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_ChoosePixelFormat,ChoosePixelFormat
.text.windows
.ftrace1
.ftrace1
ChoosePixelFormat:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_CreateBitmap,CreateBitmap
.text.windows
.ftrace1
.ftrace1
CreateBitmap:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_CreateCompatibleBitmap,CreateCompatibleBitmap
.text.windows
.ftrace1
.ftrace1
CreateCompatibleBitmap:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_CreateCompatibleDC,CreateCompatibleDC
.text.windows
.ftrace1
.ftrace1
CreateCompatibleDC:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_CreateDIBSection,CreateDIBSection
.text.windows
.ftrace1
.ftrace1
CreateDIBSection:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_CreateRectRgn,CreateRectRgn
.text.windows
.ftrace1
.ftrace1
CreateRectRgn:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_DeleteDC,DeleteDC
.text.windows
.ftrace1
.ftrace1
DeleteDC:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_DeleteObject,DeleteObject
.text.windows
.ftrace1
.ftrace1
DeleteObject:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_GetPixel,GetPixel
.text.windows
.ftrace1
.ftrace1
GetPixel:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_RestoreDC,RestoreDC
.text.windows
.ftrace1
.ftrace1
RestoreDC:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SaveDC,SaveDC
.text.windows
.ftrace1
.ftrace1
SaveDC:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SelectObject,SelectObject
.text.windows
.ftrace1
.ftrace1
SelectObject:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetBkMode,SetBkMode
.text.windows
.ftrace1
.ftrace1
SetBkMode:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetPixel,SetPixel
.text.windows
.ftrace1
.ftrace1
SetPixel:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetPixelFormat,SetPixelFormat
.text.windows
.ftrace1
.ftrace1
SetPixelFormat:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetTextAlign,SetTextAlign
.text.windows
.ftrace1
.ftrace1
SetTextAlign:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetTextColor,SetTextColor
.text.windows
.ftrace1
.ftrace1
SetTextColor:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SetTextJustification,SetTextJustification
.text.windows
.ftrace1
.ftrace1
SetTextJustification:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp gdi32,__imp_SwapBuffers,SwapBuffers
.text.windows
.ftrace1
.ftrace1
SwapBuffers:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_AddIPAddress,AddIPAddress
.text.windows
.ftrace1
.ftrace1
AddIPAddress:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_AllocateAndGetTcpExTableFromStack,AllocateAndGetTcpExTableFromStack
.text.windows
.ftrace1
.ftrace1
AllocateAndGetTcpExTableFromStack:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_AllocateAndGetUdpExTableFromStack,AllocateAndGetUdpExTableFromStack
.text.windows
.ftrace1
.ftrace1
AllocateAndGetUdpExTableFromStack:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_CancelIPChangeNotify,CancelIPChangeNotify
.text.windows
.ftrace1
.ftrace1
CancelIPChangeNotify:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_CaptureInterfaceHardwareCrossTimestamp,CaptureInterfaceHardwareCrossTimestamp
.text.windows
.ftrace1
.ftrace1
CaptureInterfaceHardwareCrossTimestamp:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_CreateIpForwardEntry,CreateIpForwardEntry
.text.windows
.ftrace1
.ftrace1
CreateIpForwardEntry:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_FlushIpNetTable,FlushIpNetTable
.text.windows
.ftrace1
.ftrace1
FlushIpNetTable:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_GetAdapterIndex,GetAdapterIndex
.text.windows
.ftrace1
.ftrace1
GetAdapterIndex:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

View file

@ -2,9 +2,9 @@
.imp iphlpapi,__imp_GetAdapterOrderMap,GetAdapterOrderMap
.text.windows
.ftrace1
.ftrace1
GetAdapterOrderMap:
.ftrace2
.ftrace2
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp

Some files were not shown because too many files have changed in this diff Show more