Beispiel #1
0
static bool push_foo(char **p, size_t *len, const struct foo *foo)
{
	return push_u64(p, len, foo->vu64) &&
		push_u32(p, len, foo->vu32) &&
		push_u16(p, len, foo->vu16) &&
		push_u8(p, len, foo->vu8) &&
		push_uchar(p, len, foo->vuchar) &&
		push_s64(p, len, foo->vs64) &&
		push_s32(p, len, foo->vs32) &&
		push_s16(p, len, foo->vs16) &&
		push_s8(p, len, foo->vs8) &&
		push_char(p, len, foo->vchar) &&
		push_bytes(p, len, foo->bytes, sizeof(foo->bytes));
}
Beispiel #2
0
void
m68k_push_dummy_frame ()
{
  register CORE_ADDR sp = read_register (SP_REGNUM);
  register int regnum;
  char raw_buffer[12];

  sp = push_word (sp, read_register (PC_REGNUM));
  sp = push_word (sp, read_register (FP_REGNUM));
  write_register (FP_REGNUM, sp);
#if defined (HAVE_68881)
  for (regnum = FP0_REGNUM + 7; regnum >= FP0_REGNUM; regnum--)
    {
      read_register_bytes (REGISTER_BYTE (regnum), raw_buffer, 12);
      sp = push_bytes (sp, raw_buffer, 12);
    }
#endif
  for (regnum = FP_REGNUM - 1; regnum >= 0; regnum--)
    {
      sp = push_word (sp, read_register (regnum));
    }
  sp = push_word (sp, read_register (PS_REGNUM));
  write_register (SP_REGNUM, sp);
}