|
From: Peep P. <so...@us...> - 2004-07-24 18:00:48
|
Update of /cvsroot/agd/server/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32667 Modified Files: debug.c Log Message: Bitwise operators; showing global variables and function arguments Index: debug.c =================================================================== RCS file: /cvsroot/agd/server/src/debug.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- debug.c 21 Jul 2004 12:09:15 -0000 1.19 +++ debug.c 24 Jul 2004 18:00:40 -0000 1.20 @@ -133,9 +133,26 @@ case F_DIV_EQ: return "F_DIV_EQ"; case F_MOD: return "F_MOD"; case F_MOD_EQ: return "F_MOD_EQ"; + case F_POW: return "F_POW"; + case F_POW_EQ: return "F_POW_EQ"; + + case F_BAND: return "F_BAND"; + case F_BAND_EQ: return "F_BAND_EQ"; + case F_BOR: return "F_BOR"; + case F_BOR_EQ: return "F_BOR_EQ"; + case F_BXOR: return "F_XOR"; + case F_BXOR_EQ: return "F_BXOR_EQ"; + case F_BNOT: return "F_BNOT"; + case F_BNOT_EQ: return "F_BNOT_EQ"; + case F_BSL: return "F_BSL"; + case F_BSL_EQ: return "F_BSL_EQ"; + case F_BSR: return "F_BSR"; + case F_BSR_EQ: return "F_BSR_EQ"; + case F_ASSIGN: return "F_ASSIGN"; case F_POP: return "F_POP"; case F_POP_N: return "F_POP_N"; + case F_POP_PENUL: return "F_POP_PENUL"; case F_CALL_LFUN: return "F_CALL_LFUN"; case F_CALL_DFUN: return "F_CALL_DFUN"; case F_CALL_OTHER: return "F_CALL_OTHER"; @@ -164,53 +181,18 @@ } } -#if 0 -void print_array(array_t *a) -{ - int i; - printf("data: %p; ", (void *) a->data); - printf("({"); - if(!a->data) { - printf(" })"); - return; - } - for(i = 0; i < a->length; i++) { - printf("%ld/%p", i, a->data[i]); - if(i + 1 < a->length) - printf(", "); - } - if(!i) printf(" "); - printf("})"); -} - -void print_var_arr(array_t *a) +void print_variables(variable_t *a, int num) { int i; - printf("({"); - for(i = 0; i < a->length; i++) { - print_var((variable_t *) a->data[i], 1); - if(i + 1 < a->length) - printf(","); - } - printf("})"); -} - -void print_vmt_arr(array_t *a) -{ - int j; printf("({ "); - if(a) { - for(j=0;j<a->length;j++) { - print_vm_token(a, &j); - if(j+1<a->length) - printf(", "); - } + for(i=0;i<num;i++) { + print_var(&a[i]); + if(i+1<num) + printf(", "); } - printf(" }) "); + printf(" })"); } -#endif - void print_instr(program_t *prog, function_t *f) { int i; @@ -286,17 +268,25 @@ void print_code(program_t *p) { - int i; + int i, j; function_t *f; printf("Functions: \n"); for(i = 0; i < p->numfunc; i++) { f = p->functions[i]; - printf("Function %d:\n", i); - printf(" Type %s\n", type2str(f->type)); - printf(" Arguments: "); -/* print_var_arr(&f->args);*/ - printf("\n"); + printf("Function %d (%s):\n", i, p->fun_table[i]); + printf(" Type: %s\n", type2str(f->type)); + if(!f->num_arg) + printf(" No arguments\n"); + else { + printf(" %d argument%s: ({ ", f->num_arg, f->num_arg!=1?"s":""); + for(j=0;j<f->num_arg;j++) { + printf("%s", type2str(f->args[j])); + if(j+1<f->num_arg) + printf(", "); + } + printf(" })\n"); + } printf(" Code:\n"); print_instr(p, f); printf("\n"); @@ -304,5 +294,4 @@ if(i == 0) printf("({ })\n"); } -#endif /* ifdef DEBUG */ - +#endif /* #ifdef DEBUG */ |