changeset 531:f6430d194be6

cleanups
author Tassilo Philipp
date Sat, 16 Apr 2022 14:59:05 +0200
parents 585dcb68f55d
children d4bf63ab9164
files buildsys/nmake/tool_msvc.nmake dyncall/dyncall_macros.h dyncall/dyncall_vector.h dyncallback/dyncall_thunk_x64.c test/plain/test_main.c
diffstat 5 files changed, 46 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- 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:
--- 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
 
--- 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 <string.h>
- #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);
 
--- 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 <dadler@uni-goettingen.de>,
+   Copyright (c) 2007-2022 Daniel Adler <dadler@uni-goettingen.de>,
                            Tassilo Philipp <tphilipp@potion-studios.com>
 
    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
--- 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 <dadler@uni-goettingen.de>,
+   Copyright (c) 2007-2022 Daniel Adler <dadler@uni-goettingen.de>,
                            Tassilo Philipp <tphilipp@potion-studios.com>
 
    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;