Beispiel #1
0
static void
make_instruction (void)
{
  int i;
  unsigned int shift;

  for (i = 0; i < currInsn.nargs; i++)
    {
      argument a;

      memset (&a, 0, sizeof (a));
      a.type = getargtype (instruction->operands[i].op_type);
      if (instruction->operands[i].op_type == cst4
	  || instruction->operands[i].op_type == rbase_dispu4)
	cst4flag = 1;
      a.size = getbits (instruction->operands[i].op_type);
      shift = instruction->operands[i].shift;

      make_argument (&a, shift);
      currInsn.arg[i] = a;
    }

  /* Calculate instruction size (in bytes).  */
  currInsn.size = instruction->size + (size_changed ? 1 : 0);
  /* Now in bits.  */
  currInsn.size *= 2;
}
Beispiel #2
0
void make_argument_test()
{
	//Create argument
	int *myArg = (int*) malloc(sizeof(int));
	int result;
	argument_t myArgument = make_argument((void*) myArg, DELETE, (void*) &result);

	//Asserts
	assert(myArgument.arg == myArg);
	assert(myArgument.del_arg == DELETE);
	assert(myArgument.result == &result);

	//Free memory
	free(myArg);
}