------- Additional Comments From amodra at bigpond dot net dot au  2005-09-13 
00:33 -------
The same thing happens with __builtin_longjmp, eg. extracted from
gcc.c-torture/execute/builtins/lib/chk.c

void __attribute__((noreturn))
__chk_fail (void)
{
  if (chk_fail_allowed)
    __builtin_longjmp (chk_fail_buf, 1);
  abort ();
}

generates

__chk_fail:
        stwu 1,-16(1)
        mflr 0
        stw 31,12(1)
        stw 0,20(1)
        mr 31,1
        lis 9,[EMAIL PROTECTED]
        lwz 0,[EMAIL PROTECTED](9)
        cmpwi 7,0,0
        beq- 7,.L133
        lis 11,[EMAIL PROTECTED]
        la 9,[EMAIL PROTECTED](11)
        lwz 0,4(9)
        mtctr 0
        lwz 31,[EMAIL PROTECTED](11)
        lwz 0,8(9)
        lwz 1,12(9)            <- stack adjusted
        stw 0,0(1)             <- backchain written
        bctr


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23774

Reply via email to