On 5/25/23 19:56, fa...@mail.ustc.edu.cn wrote:

"The beginning of the structure, with pretaddr, should be just below 16-byte 
alignment."

It is incorrect! The beginning of the structure, with pretaddr not aligned as 
16-byte!
On x86-64, It aligned as (16n - sizeof(void*)) because of instruction "call" !

Exactly: 16n - sizeof(void*) is why I mean by "just below 16-byte alignment".
Which is exactly what I have done...

+    esp = esp - *frame_size + sizeof(abi_ulong);
+    esp = ROUND_DOWN(esp, 16) - sizeof(abi_ulong);

... here.


r~

Reply via email to