Пример #1
0
static void onBeforeRun(void) {
  dumpCpu();
  dumpSizeOf();
}
Пример #2
0
int startSim(INT32 start)
{
  //printf("Break Point: 0x");
  //scanf("%x", &bp);
  //printf("Ins count: ");
  //scanf("%d", &bp);

  initInstruction();

  writeReg(15, start);

  while(1)
  {
	//usleep(1);
	//if( (bp !=0 ) && ( inscount >= bp ) )
	//{
	//}
	/*
	  if( (bp!=0) || (PC == 0x33f8ce04) )
	  {
		  fflush(stdin);
		    printf("r0  = 0x%08x, r1  = 0x%08x, r2  = 0x%08x, r3  = 0x%08x\n", Reg(0),  Reg(1),  Reg(2),  Reg(3));
		    printf("r4  = 0x%08x, r5  = 0x%08x, r6  = 0x%08x, r7  = 0x%08x\n", Reg(4),  Reg(5),  Reg(6),  Reg(7));
		    printf("r8  = 0x%08x, r9  = 0x%08x, r10 = 0x%08x, r11 = 0x%08x\n", Reg(8),  Reg(9),  Reg(10), Reg(11));
		    printf("r12 = 0x%08x, r13 = 0x%08x, r14 = 0x%08x, r15 = 0x%08x\n", Reg(12), Reg(13), Reg(14), Reg(15));
			printf("At 0x%08x: %08x\n", (cpu.pipeline32[0].address), cpu.pipeline32[0].ins);
		    printf("\n");
		  getchar();
		  bp = 1;
	  }
*/
/*
	  printf("At 0x%08x: %08x\n", (cpu.pipeline32[0].address), cpu.pipeline32[0].ins);
      printf("r0  = 0x%08x, r1  = 0x%08x, r2  = 0x%08x, r3  = 0x%08x\n", Reg(0),  Reg(1),  Reg(2),  Reg(3));
	  printf("r4  = 0x%08x, r5  = 0x%08x, r6  = 0x%08x, r7  = 0x%08x\n", Reg(4),  Reg(5),  Reg(6),  Reg(7));
	  printf("r8  = 0x%08x, r9  = 0x%08x, r10 = 0x%08x, r11 = 0x%08x\n", Reg(8),  Reg(9),  Reg(10), Reg(11));
	  printf("r12 = 0x%08x, r13 = 0x%08x, r14 = 0x%08x, r15 = 0x%08x\n", Reg(12), Reg(13), Reg(14), Reg(15));
	  printf("CPSR = 0x%08x\n", CPSR_CUR);
	  printf("\n");
	  fflush(stdin);
	  getchar();
*/

	if(cpu.pipelineRefreshed)
	{
	  refreshPipeline();
	}
	else
	{
	  nextPipeline();
	}

/*
    printf("r0  = 0x%08x, r1  = 0x%08x, r2  = 0x%08x, r3  = 0x%08x\n", Reg(0),  Reg(1),  Reg(2),  Reg(3));
    printf("r4  = 0x%08x, r5  = 0x%08x, r6  = 0x%08x, r7  = 0x%08x\n", Reg(4),  Reg(5),  Reg(6),  Reg(7));
    printf("r8  = 0x%08x, r9  = 0x%08x, r10 = 0x%08x, r11 = 0x%08x\n", Reg(8),  Reg(9),  Reg(10), Reg(11));
    printf("r12 = 0x%08x, r13 = 0x%08x, r14 = 0x%08x, r15 = 0x%08x\n", Reg(12), Reg(13), Reg(14), Reg(15));
	printf("At 0x%08x: %08x\n", (cpu.pipeline32[0].address), cpu.pipeline32[0].ins);
    printf("\n");
	getchar();
*/

    execIns(start);


    dumpCpu();
  }
}