Edward Pilatowicz wrote:
so now you have:
#define V_U_EIP         (CLONGSIZE * 0)
        GET_V(%rsp, 1, V_SSP, %rax)     /* get saved stack pointer */
        SET_V(%rax, 0, V_U_EIP, %r15)   /* save new return addr in %eip */

but why can't this be identical to the 32-bit path?  afaik, it seems
like you could just do:

#define V_U_EIP         (V_END + (CLONGSIZE * 0))
        SET_V(%rsp, 1, V_U_EIP, %r15)   /* save new return addr in %eip */

why load V_SSP if we already know that the interrupt state is right on
the stack above the callback arguments?  (it seems we sholud just
access the state directly without first loading V_SSP.)


Because its not right above, all of the other register values are
also pushed on the stack, so we need to go through the SSP to get
to the right spot.  I can add a comment explaining this but the
32bit and 64bit stacks are not identical.


zones-discuss mailing list

Reply via email to