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)); }
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); }