Hello, The attached patch addes the architecture method push_dummy_call() as a successor for the deprecated PUSH_ARGUMENTS(). PUSH_ARGUMENTS() is usedn when doing an inferior function call. The new method takes two additional parameters: regcache: An explict destination for all those register stores. dummy_addr: The address of the call dummy (which contains the return breakpoint) allowing the function to set the return address. In addition to pushing the arguments, this new method is expected set both the struct return and return addresses, and return the final aligned top-of-stack address. By requiring this, much of the convoluted and largely sparc centric logic that sits between the old PUSH_ARGUMENTS() and SAVE_DUMMY_FRAME_TOS() calls can be eliminated. This opening the possability of eliminating the methods: PUSH_RETURN_ADDRESS() CALL_DUMMY_STACK_ADJUST STORE_STRUCT_RETURN write_sp (expect more deprecating patches). I'll look to commit this in a few days (it could take a bit to digest this one). Andrew PS: Looking at the comments, this one has been on the cards for ~7 years.