Re: Don't save registers during system calls

Andreas Schwab (schwab@issan.informatik.uni-dortmund.de)
17 Apr 1998 12:39:19 +0200


H Peter Anvin <hpa@transmeta.com> writes:

|>> FWIW, the m68k port already essentially does this. On kernel entry it
|>> only saves the registers that are call-clobbered in C (plus the registers
|>> that contain the syscall arguments so that they can be accessed through
|>> the normal C argument passing), the rest are only implicitly saved in the
|>> normal stack frames and during context switch. Since the m68k has many
|>> more registers than the ix86 this is a real win.
|>>

|> That's not quite what he's proposing. You're just doing the same
|> thing, it's just that the saves are later. I think he was proposing
|> that the kernel use a smaller (clobbered) register set than user space
|> would, hence (hopefully) not needing to save and restore some of the
|> registers at all. Since the Alpha has many more registers than the
|> m68k, this might be a win, too.

But that would only mean that you have to change the register allocation
in the compiler. Or do i miss something?

-- 
Andreas Schwab                                      "And now for something
schwab@issan.informatik.uni-dortmund.de              completely different"
schwab@gnu.org

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu