Messages in this thread | | | Subject | Re: [PATCH RFC WIP] x86/paravirt: add register-saving thunks to reduce caller register pressure | From | Zachary Amsden <> | Date | Wed, 28 Jan 2009 15:05:03 -0800 |
| |
On Wed, 2009-01-28 at 10:14 -0800, Jeremy Fitzhardinge wrote: > Hi Guys,
> Zach: I wasn't really sure of what the VMI ABI calling convention is, so > I haven't converted VMI yet. I wasn't sure if it needs a register > saving thunk to wrap the calls, or if they're guaranteed to not trash > anything other than eax/rax. Please advise.
C-like, allowing C or assembly implementations of calls. Currently several of the most important calls have a restricted clobber set, however, and since it's clear there aren't any forthcoming new implementations of a VMI ROM, it might be better to go with the actual clobbers for performance critical ops.
> Standard calling convention is: > arguments return scratch > x86-32 eax edx ecx eax ?
ecx, edx
> The most common paravirt ops, both statically and dynamically, are > interrupt enable/disable/save/restore, so handle them first. This is > particularly easy since their calls are handled specially anyway.
> XXX Deal with VMI. What's their calling convention?
Enable/Disable have no clobbers at all. Save clobbers only return value, %eax Restore also clobbers nothing.
The patching code has gotten quite complex with the 32/64 union; let me apply it first and see before I comment on the patch.
Zach
| |