changeset 39:b6114d9a9a98

- shdc: more sig chars for call conv mode selection - readme cleanup
author Tassilo Philipp
date Mon, 13 Apr 2020 21:58:48 +0200
parents 9943c30ee2aa
children 1d50532dce12
files ruby/rbdc/README.txt shell/shdc/shdc.c
diffstat 2 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ruby/rbdc/README.txt	Mon Apr 13 21:41:59 2020 +0200
+++ b/ruby/rbdc/README.txt	Mon Apr 13 21:58:48 2020 +0200
@@ -63,7 +63,7 @@
 TODO
 ====
 
-- signature suffixes used to indicate calling conventions are not supported yet!
+- signature chars used to indicate calling conventions are not supported yet!
 - C pointer -> ruby... array?
 - callback support
 
--- a/shell/shdc/shdc.c	Mon Apr 13 21:41:59 2020 +0200
+++ b/shell/shdc/shdc.c	Mon Apr 13 21:58:48 2020 +0200
@@ -126,11 +126,18 @@
 			switch(*i) {
 				case DC_SIGCHAR_CC_PREFIX:
 					switch(*++i) {
-						case DC_SIGCHAR_CC_ELLIPSIS:     dcMode(vm, DC_CALL_C_ELLIPSIS);           break;
-						case DC_SIGCHAR_CC_STDCALL:      dcMode(vm, DC_CALL_C_X86_WIN32_STD);      break;
-						case DC_SIGCHAR_CC_FASTCALL_GNU: dcMode(vm, DC_CALL_C_X86_WIN32_FAST_GNU); break;
-						case DC_SIGCHAR_CC_FASTCALL_MS:  dcMode(vm, DC_CALL_C_X86_WIN32_FAST_MS);  break;
-						case DC_SIGCHAR_CC_THISCALL_MS:  dcMode(vm, DC_CALL_C_X86_WIN32_THIS_MS);  break;
+						case DC_SIGCHAR_CC_DEFAULT:          dcMode(vm, DC_CALL_C_DEFAULT           ); break;
+						case DC_SIGCHAR_CC_ELLIPSIS:         dcMode(vm, DC_CALL_C_ELLIPSIS          ); break;
+						case DC_SIGCHAR_CC_ELLIPSIS_VARARGS: dcMode(vm, DC_CALL_C_ELLIPSIS_VARARGS  ); break;
+						case DC_SIGCHAR_CC_CDECL:            dcMode(vm, DC_CALL_C_X86_CDECL         ); break;
+						case DC_SIGCHAR_CC_STDCALL:          dcMode(vm, DC_CALL_C_X86_WIN32_STD     ); break;
+						case DC_SIGCHAR_CC_FASTCALL_MS:      dcMode(vm, DC_CALL_C_X86_WIN32_FAST_MS ); break;
+						case DC_SIGCHAR_CC_FASTCALL_GNU:     dcMode(vm, DC_CALL_C_X86_WIN32_FAST_GNU); break;
+						case DC_SIGCHAR_CC_THISCALL_MS:      dcMode(vm, DC_CALL_C_X86_WIN32_THIS_MS ); break;
+						case DC_SIGCHAR_CC_THISCALL_GNU:     dcMode(vm, DC_CALL_C_X86_WIN32_THIS_GNU); break;
+						case DC_SIGCHAR_CC_ARM_ARM:          dcMode(vm, DC_CALL_C_ARM_ARM           ); break;
+						case DC_SIGCHAR_CC_ARM_THUMB:        dcMode(vm, DC_CALL_C_ARM_THUMB         ); break;
+						case DC_SIGCHAR_CC_SYSCALL:          dcMode(vm, DC_CALL_SYS_DEFAULT         ); break;
 						/* @@@ extend with other modes when they become available */
 					}
 					sig += 2;