On 5/17/24 07:19, Kirill A. Shutemov wrote: > TDCALL calls are centralized into a few megawrappers that take the > struct tdx_module_args as input. Most of the call sites only use a few > arguments, but they have to zero out unused fields in the structure to > avoid data leaks to the VMM. This leads to the compiler generating > inefficient code: dozens of instructions per call site to clear unused > fields of the structure. I agree that this is what the silly compiler does in practice. But my first preference for fixing it would just be an out-of-line memset() or a pretty bare REP;MOV. In other words, I think this as the foundational justification for the rest of the series leaves a little to be desired.