From a9def8c49d22815801408e62bedca26810cfceb7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 23 Jun 2012 11:42:29 +0200 Subject: SH: makecontext/.Lexitcode: Always initialize the GOT register before use. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is only relevant when returning from a context with »uc_link == NULL«, which is not exercised in the testsuite. --- sysdeps/unix/sysv/linux/sh/makecontext.S | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'sysdeps/unix/sysv') diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S index 4a0207a223..a847bb60b6 100644 --- a/sysdeps/unix/sysv/linux/sh/makecontext.S +++ b/sysdeps/unix/sysv/linux/sh/makecontext.S @@ -97,22 +97,26 @@ ENTRY(__makecontext) .align 5 .Lexitcode: - tst r8, r8 /* ucb->uc_link == NULL? */ - bt/s 2f - mov r8, r4 /* r4 <- ucb->uc_link */ #ifdef PIC mova .Lgot, r0 mov.l .Lgot, r12 add r0, r12 +#endif + tst r8, r8 /* ucb->uc_link == NULL? */ + bt/s 2f + mov r8, r4 /* r4 <- ucb->uc_link */ mov.l .Lsetcontext, r1 +#ifdef PIC bsrf r1 .LPCS0: nop #else - mov.l .Lsetcontext, r1 jsr @r1 nop #endif + /* If this returns (which can happen if the syscall fails) we'll exit + the program with the return error value (-1). */ + 2: mov.l .Lexit, r1 #ifdef PIC -- cgit 1.4.1