74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								void print_main_when_head(yamop*, enumPlace);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								inline void
							 | 
						||
| 
								 | 
							
								print_main_when_head(yamop* p, enumPlace place)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  if((ExpEnv.debug_struc.pmainclause_on_head.print & place) == place) {
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s:%d\n", __FILE__, __LINE__);
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s", (char*)ExpEnv.debug_struc.pmainclause_on_head.msg_before);
							 | 
						||
| 
								 | 
							
								    print_preg(p);
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s", (char*)ExpEnv.debug_struc.pmainclause_on_head.msg_after);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void print_instruction(yamop*, enumPlace);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								inline void
							 | 
						||
| 
								 | 
							
								print_instruction(yamop* p, enumPlace place)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  op_numbers op = Yap_op_from_opcode(p->opc);
							 | 
						||
| 
								 | 
							
								  switch(op) {
							 | 
						||
| 
								 | 
							
								  #define OPCODE(OP,TYPE) \
							 | 
						||
| 
								 | 
							
								  case _##OP: \
							 | 
						||
| 
								 | 
							
								  if((ExpEnv.debug_struc.pyaam_##OP.print & place) == place) { \
							 | 
						||
| 
								 | 
							
								    char *tmp = (char*)malloc((16+strlen((char*)ExpEnv.debug_struc.pyaam_##OP.msg_after))*sizeof(char)); \
							 | 
						||
| 
								 | 
							
								    switch(place) { \
							 | 
						||
| 
								 | 
							
								    case ON_INTERPRETER: \
							 | 
						||
| 
								 | 
							
								      strcpy(tmp, " (as standard)"); \
							 | 
						||
| 
								 | 
							
								      break; \
							 | 
						||
| 
								 | 
							
								    case ON_PROFILED_INTERPRETER: \
							 | 
						||
| 
								 | 
							
								      strcpy(tmp, " (as profiled)"); \
							 | 
						||
| 
								 | 
							
								      break; \
							 | 
						||
| 
								 | 
							
								    case ON_NATIVE: \
							 | 
						||
| 
								 | 
							
								      strcpy(tmp, " (as native)"); \
							 | 
						||
| 
								 | 
							
								      break; \
							 | 
						||
| 
								 | 
							
								    default:; \
							 | 
						||
| 
								 | 
							
								    } \
							 | 
						||
| 
								 | 
							
								    strcat(tmp, (char*)ExpEnv.debug_struc.pyaam_##OP.msg_after); \
							 | 
						||
| 
								 | 
							
									fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); \
							 | 
						||
| 
								 | 
							
								    print_op((char*)ExpEnv.debug_struc.pyaam_##OP.msg_before, op, tmp); \
							 | 
						||
| 
								 | 
							
								  } \
							 | 
						||
| 
								 | 
							
								  break;
							 | 
						||
| 
								 | 
							
								  #include "YapAppliedOpcodes.h"
							 | 
						||
| 
								 | 
							
								  #undef OPCODE
							 | 
						||
| 
								 | 
							
								  default:;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if YAP_JIT
							 | 
						||
| 
								 | 
							
								void print_block(YAP_BBs, enumPlace);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								inline void
							 | 
						||
| 
								 | 
							
								print_block(YAP_BBs block, enumPlace place)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  switch(block) {
							 | 
						||
| 
								 | 
							
								  #define BBLOCK(BB) \
							 | 
						||
| 
								 | 
							
								  case BB: \
							 | 
						||
| 
								 | 
							
								  if((ExpEnv.debug_struc.pbbs_##BB.print & place) == place) { \
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); \
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s", (char*)ExpEnv.debug_struc.pbbs_##BB.msg_before); \
							 | 
						||
| 
								 | 
							
								    fprint_block(block); \
							 | 
						||
| 
								 | 
							
								    { \
							 | 
						||
| 
								 | 
							
								      if (place == ON_NATIVE) fprintf(stderr, " (on native)"); \
							 | 
						||
| 
								 | 
							
								      else fprintf(stderr, " (on interpreter)"); \
							 | 
						||
| 
								 | 
							
								    } \
							 | 
						||
| 
								 | 
							
								    fprintf(stderr, "%s", (char*)ExpEnv.debug_struc.pbbs_##BB.msg_after); \
							 | 
						||
| 
								 | 
							
								  } \
							 | 
						||
| 
								 | 
							
								  break;
							 | 
						||
| 
								 | 
							
								  #include "Yap_AppliedBasicBlocks.h"
							 | 
						||
| 
								 | 
							
								  #undef BBLOCK
							 | 
						||
| 
								 | 
							
								  default:;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 |