# HG changeset patch # User Tassilo Philipp # Date 1650113945 -7200 # Node ID f6430d194be6fbb4f02f9604cb647c2f9f4bf374 # Parent 585dcb68f55dcc9b67b04ea792d986ce7fc76881 cleanups diff -r 585dcb68f55d -r f6430d194be6 buildsys/nmake/tool_msvc.nmake --- a/buildsys/nmake/tool_msvc.nmake Sat Apr 16 12:10:02 2022 +0200 +++ b/buildsys/nmake/tool_msvc.nmake Sat Apr 16 14:59:05 2022 +0200 @@ -37,10 +37,18 @@ LD =link ASFLAGS = /c /nologo + +!IF "$(BUILD_CONFIG)" == "debug" +CFLAGS = /EHsc /GR- /GS- /Od /c /nologo /I$(TOP)\dyncall /I$(TOP)\dyncallback /DEBUG /Z7 +LDFLAGS = /NOLOGO /DEBUG +ARFLAGS = /NOLOGO /DEBUG +!ELSE CFLAGS = /EHsc /GR- /GS- /Ox /c /nologo /I$(TOP)\dyncall /I$(TOP)\dyncallback -CXXFLAGS = $(CFLAGS) LDFLAGS = /OPT:REF /OPT:ICF /NOLOGO ARFLAGS = /NOLOGO +!ENDIF + +CXXFLAGS = $(CFLAGS) .SUFFIXES: diff -r 585dcb68f55d -r f6430d194be6 dyncall/dyncall_macros.h --- a/dyncall/dyncall_macros.h Sat Apr 16 12:10:02 2022 +0200 +++ b/dyncall/dyncall_macros.h Sat Apr 16 14:59:05 2022 +0200 @@ -311,7 +311,8 @@ call and callback support are required for a platform implementation */ /* syscalls */ -#if defined(DC__Arch_Intel_x86) || (defined(DC__Arch_AMD64) && defined(DC_UNIX)) || defined(DC__Arch_PPC32) || defined(DC__Arch_PPC64) +#if (defined(DC__Arch_Intel_x86) || (defined(DC__Arch_AMD64) && defined(DC_UNIX)) || defined(DC__Arch_PPC32) || defined(DC__Arch_PPC64)) && \ + !defined(DC__OS_MacOSX) && !defined(DC__OS_Plan9) && !defined(DC__OS_NDS) && !defined(DC__OS_PSP) && !defined(DC__OS_Minix) && !defined(DC__OS_SunOS) && !defined(DC__OS_BeOS) # define DC__Feature_Syscall #endif diff -r 585dcb68f55d -r f6430d194be6 dyncall/dyncall_vector.h --- a/dyncall/dyncall_vector.h Sat Apr 16 12:10:02 2022 +0200 +++ b/dyncall/dyncall_vector.h Sat Apr 16 14:59:05 2022 +0200 @@ -47,10 +47,6 @@ #define dcVecSize(p) ( (p)->mSize ) #define dcVecAlign(p,align) (p)->mSize=( (p)->mSize + align-1 ) & -align -/* -#include - #define dcVecAppend(p,s,n) memcpy( dcVecData(p)+p->mSize, s, n );p->mSize+=n -*/ void dcVecAppend(DCVecHead* pHead, const void* source, size_t length); diff -r 585dcb68f55d -r f6430d194be6 dyncallback/dyncall_thunk_x64.c --- a/dyncallback/dyncall_thunk_x64.c Sat Apr 16 12:10:02 2022 +0200 +++ b/dyncallback/dyncall_thunk_x64.c Sat Apr 16 14:59:05 2022 +0200 @@ -6,7 +6,7 @@ Description: Thunk - Implementation for x64 License: - Copyright (c) 2007-2018 Daniel Adler , + Copyright (c) 2007-2022 Daniel Adler , Tassilo Philipp Permission to use, copy, modify, and distribute this software for any @@ -33,8 +33,8 @@ .intel_syntax thunk: - lea rax, (rip) # copy RIP (=p?) to RAX and use address in - jmp [rax+16] # 'entry' (stored at RIP+16) for jump + lea rax, (rip) # copy RIP (= ptr to thunk) to RAX and use address + jmp [rax+16] # in 'entry' (stored at RIP+16) for jump nop nop nop diff -r 585dcb68f55d -r f6430d194be6 test/plain/test_main.c --- a/test/plain/test_main.c Sat Apr 16 12:10:02 2022 +0200 +++ b/test/plain/test_main.c Sat Apr 16 14:59:05 2022 +0200 @@ -6,7 +6,7 @@ Description: License: - Copyright (c) 2007-2019 Daniel Adler , + Copyright (c) 2007-2022 Daniel Adler , Tassilo Philipp Permission to use, copy, modify, and distribute this software for any @@ -54,7 +54,7 @@ int g_void_testval; DEF_FUNCS(__cdecl,c) -int testCallC() +static int testCallC() { int ret = 1; @@ -72,14 +72,14 @@ dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_c_b); printf("bt (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; val=DC_FALSE; dcReset(pc); dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_c_b); printf("bf (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* int */ { @@ -88,7 +88,7 @@ dcArgInt(pc, val); r = dcCallInt(pc, (DCpointer) &fun_c_i); printf("i (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long */ { @@ -97,7 +97,7 @@ dcArgLong(pc, val); r = dcCallLong(pc, (DCpointer) &fun_c_j); printf("l (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long long */ { @@ -106,7 +106,7 @@ dcArgLongLong(pc, val); r = dcCallLongLong(pc, (DCpointer) &fun_c_l); printf("ll (cdecl): %d\n", (r == (DClonglong)val)); - ret = (r == (DClonglong)val) && ret; + ret = (r == (DClonglong)val) && ret; } /* float */ { @@ -115,7 +115,7 @@ dcArgFloat(pc, val); r = dcCallFloat(pc, (DCpointer) &fun_c_f); printf("f (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* double */ { @@ -124,7 +124,7 @@ dcArgDouble(pc, val); r = dcCallDouble(pc, (DCpointer) &fun_c_d); printf("d (cdecl): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* ptr */ { @@ -133,7 +133,7 @@ dcArgPointer(pc, (DCpointer) &fun_c_b); r = dcCallPointer(pc, (DCpointer) &fun_c_p); printf("p (cdecl): %d\n", (r == (DCpointer) &fun_c_b)); - ret = (r == (DCpointer) &fun_c_b) && ret; + ret = (r == (DCpointer) &fun_c_b) && ret; } dcFree(pc); @@ -146,7 +146,7 @@ DEF_FUNCS(__stdcall,std) -int testCallStd() +static int testCallStd() { int ret = 1; @@ -164,14 +164,14 @@ dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_std_b); printf("bt (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; val=DC_FALSE; dcReset(pc); dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_std_b); printf("bf (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* int */ { @@ -180,7 +180,7 @@ dcArgInt(pc, val); r = dcCallInt(pc, (DCpointer) &fun_std_i); printf("i (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long */ { @@ -189,7 +189,7 @@ dcArgLong(pc, val); r = dcCallLong(pc, (DCpointer) &fun_std_j); printf("l (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long long */ { @@ -198,7 +198,7 @@ dcArgLongLong(pc, val); r = dcCallLongLong(pc, (DCpointer) &fun_std_l); printf("ll (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* float */ { @@ -207,7 +207,7 @@ dcArgFloat(pc, val); r = dcCallFloat(pc, (DCpointer) &fun_std_f); printf("f (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* double */ { @@ -216,7 +216,7 @@ dcArgDouble(pc, val); r = dcCallDouble(pc, (DCpointer) &fun_std_d); printf("d (stdcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* ptr */ { @@ -225,7 +225,7 @@ dcArgPointer(pc, (DCpointer) &fun_c_b); r = dcCallPointer(pc, (DCpointer) &fun_std_p); printf("p (stdcall): %d\n", (r == &fun_c_b)); - ret = (r == &fun_c_b) && ret; + ret = (r == &fun_c_b) && ret; } dcFree(pc); @@ -240,7 +240,7 @@ DEF_FUNCS(__fastcall,fast) -int testCallFast() +static int testCallFast() { int ret = 1; @@ -264,14 +264,14 @@ dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_fast_b); printf("bt ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; val=DC_FALSE; dcReset(pc); dcArgBool(pc, val); r = dcCallBool(pc, (DCpointer) &fun_fast_b); printf("bf ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* int */ { @@ -280,7 +280,7 @@ dcArgInt(pc, val); r = dcCallInt(pc, (DCpointer) &fun_fast_i); printf("i ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long */ { @@ -289,7 +289,7 @@ dcArgLong(pc, val); r = dcCallLong(pc, (DCpointer) &fun_fast_j); printf("l ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* long long */ { @@ -298,7 +298,7 @@ dcArgLongLong(pc, val); r = dcCallLongLong(pc, (DCpointer) &fun_fast_l); printf("ll ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* float */ { @@ -307,7 +307,7 @@ dcArgFloat(pc, val); r = dcCallFloat(pc, (DCpointer) &fun_fast_f); printf("f ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* double */ { @@ -316,7 +316,7 @@ dcArgDouble(pc, val); r = dcCallDouble(pc, (DCpointer) &fun_fast_d); printf("d ("FT"fastcall): %d\n", (r == val)); - ret = (r == val) && ret; + ret = (r == val) && ret; } /* ptr */ { @@ -325,7 +325,7 @@ dcArgPointer(pc, (DCpointer) &fun_c_b); r = dcCallPointer(pc, (DCpointer) &fun_fast_p); printf("p ("FT"fastcall): %d\n", (r == &fun_c_b)); - ret = (r == &fun_c_b) && ret; + ret = (r == &fun_c_b) && ret; } dcFree(pc); @@ -344,8 +344,10 @@ dcTest_initPlatform(); r = testCallC() && r; - r = testStructSizes() && r; - /*r = testCallStructs() && r;*/ + r = testAggrReturns() && r; + r = testAggrParameters() && r; + r = testAggrReturns() && r; + r = testAggrParameters() && r; #if defined(DC__OS_Win32) r = testCallStd() && r; r = testCallFast() && r;