From b946e75a02e9ebf9b4ee885d2156595f72c1dbd7 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Tue, 31 Mar 2015 22:59:14 -0400 Subject: [PATCH] Fixed compiler warning --- runtime.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- runtime.h | 2 +- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/runtime.c b/runtime.c index 02fdb1b8..a8268ca2 100644 --- a/runtime.c +++ b/runtime.c @@ -1,5 +1,79 @@ #include "cyclone.h" +// //#ifdef __x86_64__ +// //# define C_AMD64_ABI_WEIRDNESS , ... +// //#else +// //# define C_AMD64_ABI_WEIRDNESS +// //#endif +// typedef void (*Cyc_proc0) ( int, object); +// typedef void (*Cyc_proc1) ( int, object, object); +// //typedef void (*Cyc_proc2) ( object, object, object); +// +// /* C_WORD_p

_: List of ((2 ** P) * B) 'C_word' parameters */ +// #define C_WORD_p0_0 +// #define C_WORD_p1_0 +// #define C_WORD_p2_0 +// #define C_WORD_p3_0 +// #define C_WORD_p4_0 +// #define C_WORD_p5_0 +// #define C_WORD_p6_0 +// #define C_WORD_p7_0 +// #define C_WORD_p0_1 object, //C_word, +// #define C_WORD_p1_1 object, object, //C_word, C_word, +// #define C_WORD_p2_1 C_WORD_p1_1 C_WORD_p1_1 +// #define C_WORD_p3_1 C_WORD_p2_1 C_WORD_p2_1 +// #define C_WORD_p4_1 C_WORD_p3_1 C_WORD_p3_1 +// #define C_WORD_p5_1 C_WORD_p4_1 C_WORD_p4_1 +// #define C_WORD_p6_1 C_WORD_p5_1 C_WORD_p5_1 +// #define C_WORD_p7_1 C_WORD_p6_1 C_WORD_p6_1 +// +// /* Declaration macro from CHICKEN scheme */ +// /* DECL_C_PROC_p0 (n0, p7,p6,p5,p4,p3,p2,p1,p0): +// * declare function C_proc, which have 'C_word' parameters +// * (not counting last 'C_word C_AMD64_ABI_WEIRDNESS' one). +// * We must have: n0 = SUM (i = 7 to 0, p * (1 << i)). +// * DECL_C_PROC_p (...): +// * declare 2 as much functions as DECL_C_PROC_p... +// */ +// #define DECL_C_PROC_p0( n0, p7,p6,p5,p4,p3,p2,p1,p0) \ +// typedef void (*Cyc_proc##n0) (int, C_WORD_p7_##p7 C_WORD_p6_##p6 \ +// C_WORD_p5_##p5 C_WORD_p4_##p4 \ +// C_WORD_p3_##p3 C_WORD_p2_##p2 \ +// C_WORD_p1_##p1 C_WORD_p0_##p0 \ +// object); +// //C_word C_AMD64_ABI_WEIRDNESS) ; //C_noret; +// #define DECL_C_PROC_p1( n0,n1, p7,p6,p5,p4,p3,p2,p1) \ +// DECL_C_PROC_p0 (n0, p7,p6,p5,p4,p3,p2,p1,0) \ +// DECL_C_PROC_p0 (n1, p7,p6,p5,p4,p3,p2,p1,1) +// #define DECL_C_PROC_p2( n0,n1,n2,n3, p7,p6,p5,p4,p3,p2) \ +// DECL_C_PROC_p1 (n0,n1, p7,p6,p5,p4,p3,p2,0) \ +// DECL_C_PROC_p1 (n2,n3, p7,p6,p5,p4,p3,p2,1) +// #define DECL_C_PROC_p3( n0,n1,n2,n3,n4,n5,n6,n7, p7,p6,p5,p4,p3) \ +// DECL_C_PROC_p2 (n0,n1,n2,n3, p7,p6,p5,p4,p3,0) \ +// DECL_C_PROC_p2 (n4,n5,n6,n7, p7,p6,p5,p4,p3,1) +// +// DECL_C_PROC_p1 (2,3, 0,0,0,0,0,0,1) +// DECL_C_PROC_p2 (4,5,6,7, 0,0,0,0,0,1) +// DECL_C_PROC_p3 (8,9,10,11,12,13,14,15, 0,0,0,0,1) +// DECL_C_PROC_p3 (16,17,18,19,20,21,22,23, 0,0,0,1,0) +// DECL_C_PROC_p3 (24,25,26,27,28,29,30,31, 0,0,0,1,1) +// DECL_C_PROC_p3 (32,33,34,35,36,37,38,39, 0,0,1,0,0) +// DECL_C_PROC_p3 (40,41,42,43,44,45,46,47, 0,0,1,0,1) +// DECL_C_PROC_p3 (48,49,50,51,52,53,54,55, 0,0,1,1,0) +// DECL_C_PROC_p3 (56,57,58,59,60,61,62,63, 0,0,1,1,1) +// DECL_C_PROC_p1 (64,65, 0,1,0,0,0,0,0) +// DECL_C_PROC_p0 (66, 0,1,0,0,0,0,1,0) +// DECL_C_PROC_p0 (67, 0,1,0,0,0,0,1,1) +// DECL_C_PROC_p2 (68,69,70,71, 0,1,0,0,0,1) +// DECL_C_PROC_p3 (72,73,74,75,76,77,78,79, 0,1,0,0,1) +// DECL_C_PROC_p3 (80,81,82,83,84,85,86,87, 0,1,0,1,0) +// DECL_C_PROC_p3 (88,89,90,91,92,93,94,95, 0,1,0,1,1) +// DECL_C_PROC_p3 (96,97,98,99,100,101,102,103, 0,1,1,0,0) +// DECL_C_PROC_p3 (104,105,106,107,108,109,110,111, 0,1,1,0,1) +// DECL_C_PROC_p3 (112,113,114,115,116,117,118,119, 0,1,1,1,0) +// DECL_C_PROC_p3 (120,121,122,123,124,125,126,127, 0,1,1,1,1) +// DECL_C_PROC_p0 (128, 1,0,0,0,0,0,0,0) + /** * Take list of args and call a function with them as params. * @@ -40,7 +114,7 @@ void dispatch_va(int argc, function_type_va func, object clo, object cont, objec args = cdr(args); } - do_dispatch(argc, func, clo, b); + do_dispatch(argc, (function_type)func, clo, b); } void do_dispatch(int argc, function_type func, object clo, object *b) { @@ -75,6 +149,7 @@ void do_dispatch(int argc, function_type func, object clo, object *b) { * CASE_C_PROC_p (...): * like CASE_C_PROC_p, but with doubled output... */ +// case (n0-2): (Cyc_proc##n0)func(n0-2, clo #define CASE_C_PROC_p0(n0, p6,p5,p4,p3,p2,p1,p0) \ case (n0-2): func(n0-2, clo \ PTR_O_p6_##p6(((n0-2)&0x80)+0)\ diff --git a/runtime.h b/runtime.h index 370e93ed..2009fbfb 100644 --- a/runtime.h +++ b/runtime.h @@ -985,7 +985,7 @@ static void _Cyc_91default_91exception_91handler(object cont, object args) { } static void _string_91append(object cont, object args) { integer_type argc = Cyc_length(args); - dispatch_va(argc.value, dispatch_string_91append, cont, cont, args); } + dispatch(argc.value, (function_type)dispatch_string_91append, cont, cont, args); } static void _string_91_125list(object cont, object args) { string2list(lst, car(args)); return_funcall1(cont, &lst);}