Esempio n. 1
0
/* Given an operands addressing mode, value and associated register,
 * print the canonical representation of it to stdout.
 *
 * Returns the number of characters printed.
 */
static int format_operand(msp430_amode_t amode, uint16_t addr,
			  msp430_reg_t reg)
{
	int len = 0;

	len += format_addr(amode, addr);
	len += format_reg(amode, reg);

	return len;
}
Esempio n. 2
0
static void format_normal(const xed_inst_t *xi)
{	
#ifdef WINDOWS_FORMAT
	strcpy(inst_buffer, g_inst_str);
#else

	format_reg(inst_buffer, g_inst_str);
	//Hush.b
	format_scasbb(inst_buffer);
	format_cmpsbb(inst_buffer);
	//Hush.e
#endif
}
Esempio n. 3
0
static void format_lea(const xed_inst_t *xi)
{
	char r_str[50];
	INST *inst = get_inst(g_pc);
	switch(inst->type){
		case LEA_8:
			fprintf(stderr, "error in format_lea: lea_8\n");
			exit(0);
		case LEA_16:
			fprintf(stderr, "error in format_lea: lea_16\n");
			exit(0);
		case LEA_32:
			sprintf(r_str, "dword ptr");
			break;
	}
#ifdef WINDOWS_FORMAT
	strcpy(inst_buffer, replace(g_inst_str, "ptr", r_str));
#else
	format_reg(inst_buffer, g_inst_str);
#endif
}
static void dump_reg( struct sh_reg reg, struct sh_srcreg *indreg, const struct dump_info *di )
{
   assert( reg.is_reg == 1 );

   switch (sh_reg_type( reg )) {
   case SVGA3DREG_TEMP:
      format_reg("r", reg, NULL);
      break;

   case SVGA3DREG_INPUT:
      format_reg("v", reg, indreg);
      break;

   case SVGA3DREG_CONST:
      format_reg("c", reg, indreg);
      break;

   case SVGA3DREG_ADDR:    /* VS */
   /* SVGA3DREG_TEXTURE */ /* PS */
      assert(!reg.relative);
      if (di->is_ps) {
         format_reg("t", reg, NULL);
      } else {
         format_reg("a", reg, NULL);
      }
      break;

   case SVGA3DREG_RASTOUT:
      assert(!reg.relative);
      switch (reg.number) {
      case 0 /*POSITION*/:
         _debug_printf( "oPos" );
         break;
      case 1 /*FOG*/:
         _debug_printf( "oFog" );
         break;
      case 2 /*POINT_SIZE*/:
         _debug_printf( "oPts" );
         break;
      default:
         assert( 0 );
         _debug_printf( "???" );
      }
      break;

   case SVGA3DREG_ATTROUT:
      assert( reg.number < 2 );
      format_reg("oD", reg, NULL);
      break;

   case SVGA3DREG_TEXCRDOUT:  /* VS */
   /* SVGA3DREG_OUTPUT */     /* VS3.0+ */
      if (!di->is_ps && di->version >= SVGA3D_VS_30) {
         format_reg("o", reg, indreg);
      } else {
         format_reg("oT", reg, NULL);
      }
      break;

   case SVGA3DREG_COLOROUT:
      format_reg("oC", reg, NULL);
      break;

   case SVGA3DREG_DEPTHOUT:
      assert(!reg.relative);
      assert(reg.number == 0);
      _debug_printf("oDepth");
      break;

   case SVGA3DREG_SAMPLER:
      format_reg("s", reg, NULL);
      break;

   case SVGA3DREG_CONSTBOOL:
      format_reg("b", reg, NULL);
      break;

   case SVGA3DREG_CONSTINT:
      format_reg("i", reg, NULL);
      break;

   case SVGA3DREG_LOOP:
      assert(!reg.relative);
      assert( reg.number == 0 );
      _debug_printf( "aL" );
      break;

   case SVGA3DREG_MISCTYPE:
      assert(!reg.relative);
      switch (reg.number) {
      case SVGA3DMISCREG_POSITION:
         _debug_printf("vPos");
         break;
      case SVGA3DMISCREG_FACE:
         _debug_printf("vFace");
         break;
      default:
         assert(0);
         _debug_printf("???");
      }
      break;

   case SVGA3DREG_LABEL:
      format_reg("l", reg, NULL);
      break;

   case SVGA3DREG_PREDICATE:
      format_reg("p", reg, NULL);
      break;

   default:
      assert( 0 );
      _debug_printf( "???" );
   }
}