On 08/15/2013 08:54 AM, Aurelien Jarno wrote: >> > # define GETRA() ((uintptr_t)__builtin_return_address(0)) >> > -# define GETPC_LDST() ((uintptr_t)(GETRA() + 7 + \ >> > - *(int32_t *)((void *)GETRA() + 3) - >> > 1)) >> > +/* The return address argument for ldst is passed directly. */ >> > +# define GETPC_LDST() (abort(), 0) > Why an abort here, while in the arm version, you adds support for > not defining GETPC_LDST? >
GETPC_LDST is for the original helpers, when called from TCG. In the arm case, TCG still uses the original helpers, so GETPC_LDST is used. In the i386, TCG never uses the original helpers, so GETPC_LDST should never be used. We could do like arm and completely drop the check, I suppose. r~