On Fri, 2023-09-01 at 01:26 +0200, Jo Van Bulck wrote: > On 01.09.23 01:13, Huang, Kai wrote: > > > encl_body: > > > /* snipped */ > > > lea encl_op_array(%rip), %rcx > > > lea __encl_base(%rip), %rax > > > add (%rcx,%rdx,8),%rax > > > jmp *%rax > > > > call *%rax > > > > ? > > > > > ret > > Good catch, but this is indeed the code as generated with gcc -Os (for > readability). It seems the compiler choose a JMP over a CALL (as the > stack is untouched and the callee can immediately return to the caller). Ah, OK. I thought it's a typo, but obviously the compiler is smarter. :-) > > Somehow, the compiler still emits a RET after the JMP (which is not > supposed to return here) though. I agree this is unnecessarily confusing > and can simply remove the RET from the commit message. The RET is for encl_body itself I suppose. > > Best, > Jo