diff dyncallback/dyncall_callback_x86.c @ 364:3bdd326dc269

- Todo entries - some clarifications in code about GNU thiscalls (which are effectively idential to cdecl calls) * took away own mode identifier, as aliasing to cdecl now - cleanups
author Tassilo Philipp
date Tue, 14 Apr 2020 19:35:30 +0200
parents 30aae7371373
children ddfb9577a00e
line wrap: on
line diff
--- a/dyncallback/dyncall_callback_x86.c	Tue Apr 14 17:47:33 2020 +0200
+++ b/dyncallback/dyncall_callback_x86.c	Tue Apr 14 19:35:30 2020 +0200
@@ -6,7 +6,7 @@
  Description: Callback - Implementation for x86
  License:
 
-   Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
+   Copyright (c) 2007-2020 Daniel Adler <dadler@uni-goettingen.de>,
                            Tassilo Philipp <tphilipp@potion-studios.com>
 
    Permission to use, copy, modify, and distribute this software for any
@@ -204,14 +204,12 @@
     ch = *ptr++;
     switch(ch) {
       case DC_SIGCHAR_CC_DEFAULT:      mode = DC_CALL_C_DEFAULT;            break;
-	  /*@@@ add ellipsis?*/
+      case DC_SIGCHAR_CC_THISCALL_GNU: // == cdecl
       case DC_SIGCHAR_CC_CDECL:        mode = DC_CALL_C_X86_CDECL;          break;
       case DC_SIGCHAR_CC_STDCALL:      mode = DC_CALL_C_X86_WIN32_STD;      break;
       case DC_SIGCHAR_CC_FASTCALL_MS:  mode = DC_CALL_C_X86_WIN32_FAST_MS;  break;
       case DC_SIGCHAR_CC_FASTCALL_GNU: mode = DC_CALL_C_X86_WIN32_FAST_GNU; break;
       case DC_SIGCHAR_CC_THISCALL_MS:  mode = DC_CALL_C_X86_WIN32_THIS_MS;  break;
-      case DC_SIGCHAR_CC_THISCALL_GNU: mode = DC_CALL_C_X86_WIN32_THIS_GNU; break;
-      case DC_SIGCHAR_CC_SYSCALL:      mode = DC_CALL_SYS_DEFAULT;          break;
     }
   }
 
@@ -226,10 +224,6 @@
       pcb->args_vt = &dcArgsVT_default;
       pcb->stack_cleanup = dcbCleanupSize_x86_std(ptr);
       break;
-    case DC_CALL_C_X86_WIN32_THIS_MS:
-      pcb->args_vt = &dcArgsVT_this_ms;
-      pcb->stack_cleanup = dcbCleanupSize_x86_this_ms(ptr);
-      break;
     case DC_CALL_C_X86_WIN32_FAST_MS:
       pcb->args_vt = &dcArgsVT_fast_ms;
       pcb->stack_cleanup = dcbCleanupSize_x86_fast_ms(ptr);
@@ -238,6 +232,10 @@
       pcb->args_vt = &dcArgsVT_fast_gnu;
       pcb->stack_cleanup = dcbCleanupSize_x86_fast_gnu(ptr);
       break;
+    case DC_CALL_C_X86_WIN32_THIS_MS:
+      pcb->args_vt = &dcArgsVT_this_ms;
+      pcb->stack_cleanup = dcbCleanupSize_x86_this_ms(ptr);
+      break;
   }
 
 #if defined(DC_PLAN9)