mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 19:03:59 +08:00
re PR go/46959 (M68K Not Supported by Go)
PR go/46959 PR go/46960 PR go/46961 PR go/46962 PR go/46963 PR go/46964 Use __builtin_unwind_init rather than the SAVE_REGS hack. From-SVN: r168500
This commit is contained in:
parent
adb7f9c365
commit
9a00604e53
@ -25,21 +25,6 @@ extern void *__splitstack_find (void *, void *, size_t *, void **, void **,
|
||||
void **);
|
||||
#endif
|
||||
|
||||
/* We need to ensure that all callee-saved registers are stored on the
|
||||
stack, in case they hold pointers. */
|
||||
|
||||
#if defined(__i386__)
|
||||
#ifndef __PIC__
|
||||
#define SAVE_REGS asm ("" : : : "esi", "edi", "ebx")
|
||||
#else
|
||||
#define SAVE_REGS asm ("" : : : "esi", "edi")
|
||||
#endif
|
||||
#elif defined(__x86_64__)
|
||||
#define SAVE_REGS asm ("" : : : "r12", "r13", "r14", "r15", "rbp", "rbx")
|
||||
#else
|
||||
#error must define SAVE_REGS
|
||||
#endif
|
||||
|
||||
/* We stop the threads by sending them the signal GO_SIG_STOP and we
|
||||
start them by sending them the signal GO_SIG_START. */
|
||||
|
||||
@ -344,7 +329,7 @@ __go_run_goroutine_gc (int r)
|
||||
needed if we are called directly, since otherwise we might miss
|
||||
something that a function somewhere up the call stack is holding
|
||||
in a register. */
|
||||
SAVE_REGS;
|
||||
__builtin_unwind_init ();
|
||||
|
||||
stop_for_gc ();
|
||||
|
||||
@ -433,7 +418,7 @@ __go_scanstacks (void (*scan) (byte *, int64))
|
||||
struct __go_thread_id *p;
|
||||
|
||||
/* Make sure all the registers for this thread are on the stack. */
|
||||
SAVE_REGS;
|
||||
__builtin_unwind_init ();
|
||||
|
||||
me = pthread_self ();
|
||||
for (p = __go_all_thread_ids; p != NULL; p = p->next)
|
||||
|
Loading…
Reference in New Issue
Block a user