Re: [PATCH v28 21/22] x86/vdso: Implement a vDSO for Intel SGX enclave call

From: Xing, Cedric
Date: Mon Mar 16 2020 - 19:56:47 EST


On 3/16/2020 3:55 PM, Sean Christopherson wrote:
On Mon, Mar 16, 2020 at 02:31:36PM +0100, Jethro Beekman wrote:
Can someone remind me why we're not passing TCS in RBX but on the stack?

I finally remembered why. It's pulled off the stack and passed into the
exit handler. I'm pretty sure the vDSO could take it in %rbx and manually
save it on the stack, but I'd rather keep the current behavior so that the
vDSO is callable from C (assuming @leaf is changed to be passed via %rcx).

The idea is that the caller of this vDSO API is C callable, hence it cannot receive TCS in %rbx anyway. Then it has to either MOV to %rbx or PUSH to stack. Either way the complexity is the same. The vDSO API however has to always save it on stack for exit handler. So receiving it via stack ends up in simplest code.