use print_code for CODE_EXECUTE_HOOK
This commit is contained in:
		
							parent
							
								
									e021ac52ac
								
							
						
					
					
						commit
						fd8c551159
					
				|  | @ -939,19 +939,10 @@ pic_defun(pic_state *pic, const char *name, pic_func_t cfunc) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| print_irep(pic_state *pic, struct pic_irep *irep) | print_code(pic_state *pic, struct pic_code c) | ||||||
| { | { | ||||||
|   int i; |     printf("[%2d] ", c.insn); | ||||||
| 
 |     switch (c.insn) { | ||||||
|   printf("## irep %p\n", irep); |  | ||||||
|   printf("[clen = %zd, ccapa = %zd, argc = %d, localc = %d]\n", irep->clen, irep->ccapa, irep->argc, irep->localc); |  | ||||||
|   printf(":: cv_num = %d\n", irep->cv_num); |  | ||||||
|   for (i = 0; i < irep->cv_num; ++i) { |  | ||||||
|     printf(": %d -> %d\n", irep->cv_tbl[i], i); |  | ||||||
|   } |  | ||||||
|   for (i = 0; i < irep->clen; ++i) { |  | ||||||
|     printf("[%2d] ", irep->code[i].insn); |  | ||||||
|     switch (irep->code[i].insn) { |  | ||||||
|     case OP_POP: |     case OP_POP: | ||||||
|       puts("OP_POP"); |       puts("OP_POP"); | ||||||
|       break; |       break; | ||||||
|  | @ -965,54 +956,54 @@ print_irep(pic_state *pic, struct pic_irep *irep) | ||||||
|       puts("OP_PUSHFALSE"); |       puts("OP_PUSHFALSE"); | ||||||
|       break; |       break; | ||||||
|     case OP_PUSHFLOAT: |     case OP_PUSHFLOAT: | ||||||
|       printf("OP_PUSHFLOAT\t%f\n", irep->code[i].u.f); |       printf("OP_PUSHFLOAT\t%f\n", c.u.f); | ||||||
|       break; |       break; | ||||||
|     case OP_PUSHINT: |     case OP_PUSHINT: | ||||||
|       printf("OP_PUSHINT\t%d\n", irep->code[i].u.i); |       printf("OP_PUSHINT\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_PUSHCHAR: |     case OP_PUSHCHAR: | ||||||
|       printf("OP_PUSHCHAR\t%c\n", irep->code[i].u.c); |       printf("OP_PUSHCHAR\t%c\n", c.u.c); | ||||||
|       break; |       break; | ||||||
|     case OP_PUSHCONST: |     case OP_PUSHCONST: | ||||||
|       printf("OP_PUSHCONST\t"); |       printf("OP_PUSHCONST\t"); | ||||||
|       pic_debug(pic, pic->pool[irep->code[i].u.i]); |       pic_debug(pic, pic->pool[c.u.i]); | ||||||
|       puts(""); |       puts(""); | ||||||
|       break; |       break; | ||||||
|     case OP_GREF: |     case OP_GREF: | ||||||
|       printf("OP_GREF\t%i\n", irep->code[i].u.i); |       printf("OP_GREF\t%i\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_GSET: |     case OP_GSET: | ||||||
|       printf("OP_GSET\t%i\n", irep->code[i].u.i); |       printf("OP_GSET\t%i\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_LREF: |     case OP_LREF: | ||||||
|       printf("OP_LREF\t%d\n", irep->code[i].u.i); |       printf("OP_LREF\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_LSET: |     case OP_LSET: | ||||||
|       printf("OP_LSET\t%d\n", irep->code[i].u.i); |       printf("OP_LSET\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_CREF: |     case OP_CREF: | ||||||
|       printf("OP_CREF\t%d\t%d\n", irep->code[i].u.r.depth, irep->code[i].u.r.idx); |       printf("OP_CREF\t%d\t%d\n", c.u.r.depth, c.u.r.idx); | ||||||
|       break; |       break; | ||||||
|     case OP_CSET: |     case OP_CSET: | ||||||
|       printf("OP_CSET\t%d\t%d\n", irep->code[i].u.r.depth, irep->code[i].u.r.idx); |       printf("OP_CSET\t%d\t%d\n", c.u.r.depth, c.u.r.idx); | ||||||
|       break; |       break; | ||||||
|     case OP_JMP: |     case OP_JMP: | ||||||
|       printf("OP_JMP\t%d\n", irep->code[i].u.i); |       printf("OP_JMP\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_JMPIF: |     case OP_JMPIF: | ||||||
|       printf("OP_JMPIF\t%d\n", irep->code[i].u.i); |       printf("OP_JMPIF\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_CALL: |     case OP_CALL: | ||||||
|       printf("OP_CALL\t%d\n", irep->code[i].u.i); |       printf("OP_CALL\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_TAILCALL: |     case OP_TAILCALL: | ||||||
|       printf("OP_TAILCALL\t%d\n", irep->code[i].u.i); |       printf("OP_TAILCALL\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_RET: |     case OP_RET: | ||||||
|       puts("OP_RET"); |       puts("OP_RET"); | ||||||
|       break; |       break; | ||||||
|     case OP_LAMBDA: |     case OP_LAMBDA: | ||||||
|       printf("OP_LAMBDA\t%d\n", irep->code[i].u.i); |       printf("OP_LAMBDA\t%d\n", c.u.i); | ||||||
|       break; |       break; | ||||||
|     case OP_CONS: |     case OP_CONS: | ||||||
|       puts("OP_CONS"); |       puts("OP_CONS"); | ||||||
|  | @ -1054,5 +1045,20 @@ print_irep(pic_state *pic, struct pic_irep *irep) | ||||||
|       puts("OP_STOP"); |       puts("OP_STOP"); | ||||||
|       break; |       break; | ||||||
|     } |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void | ||||||
|  | print_irep(pic_state *pic, struct pic_irep *irep) | ||||||
|  | { | ||||||
|  |   int i; | ||||||
|  | 
 | ||||||
|  |   printf("## irep %p\n", irep); | ||||||
|  |   printf("[clen = %zd, ccapa = %zd, argc = %d, localc = %d]\n", irep->clen, irep->ccapa, irep->argc, irep->localc); | ||||||
|  |   printf(":: cv_num = %d\n", irep->cv_num); | ||||||
|  |   for (i = 0; i < irep->cv_num; ++i) { | ||||||
|  |     printf(": %d -> %d\n", irep->cv_tbl[i], i); | ||||||
|  |   } | ||||||
|  |   for (i = 0; i < irep->clen; ++i) { | ||||||
|  |     print_code(pic, irep->code[i]); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								src/vm.c
								
								
								
								
							
							
						
						
									
										4
									
								
								src/vm.c
								
								
								
								
							|  | @ -283,8 +283,10 @@ pic_apply_argv(pic_state *pic, struct pic_proc *proc, size_t argc, ...) | ||||||
|   return pic_apply(pic, proc, v); |   return pic_apply(pic, proc, v); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void print_code(pic_state *, struct pic_code); | ||||||
|  | 
 | ||||||
| #if VM_DEBUG | #if VM_DEBUG | ||||||
| # define OPCODE_EXEC_HOOK printf("OP = %d\n", c.insn) | # define OPCODE_EXEC_HOOK print_code(pic, c) | ||||||
| #else | #else | ||||||
| # define OPCODE_EXEC_HOOK ((void)0) | # define OPCODE_EXEC_HOOK ((void)0) | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki