runtime: Tweak __go_can_recover for SPARC.

From-SVN: r184117
This commit is contained in:
Ian Lance Taylor 2012-02-11 00:15:54 +00:00
parent 8c92f3e81b
commit 96431d5772
1 changed files with 8 additions and 0 deletions

View File

@ -43,6 +43,14 @@ __go_can_recover (const void* retaddr)
such as an instruction to adjust the stack pointer. */
ret = (const char *) retaddr;
#ifdef __sparc__
/* On SPARC the address we get, from __builtin_return_address, is
the address of the call instruction. Adjust forward, also
skipping the delayed instruction following the call. */
ret += 8;
#endif
dret = (const char *) d->__retaddr;
return ret <= dret && ret + 16 >= dret;
}