You don't seem to have mentioned that the IA-64 has *two* stacks: one contains registers and one structures and arrays. If you want to flush the register stack to memory for the sake of the garbage collector, that's easy: just call __builtin_ia64_flushrs(). Andrew.