Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Feb 2016 10:30:08 -0800
From:      Warner Losh <imp@bsdimp.com>
To:        Sean Bruno <sbruno@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-projects@freebsd.org
Subject:   Re: svn commit: r295820 - projects/mips64-clang/sys/mips/mips
Message-ID:  <CANCZdfpGna3XLBUS-CHUmiTq-1%2BEPxnbuSmo6tnx0iypxGpbJA@mail.gmail.com>
In-Reply-To: <201602191732.u1JHWUCv073014@repo.freebsd.org>
References:  <201602191732.u1JHWUCv073014@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 19, 2016 at 9:32 AM, Sean Bruno <sbruno@freebsd.org> wrote:

> Author: sbruno
> Date: Fri Feb 19 17:32:30 2016
> New Revision: 295820
> URL: https://svnweb.freebsd.org/changeset/base/295820
>
> Log:
>   clang IAS just doesn't handle $at the same way as binutils.  This fixes
>   errors and will allow a build of GXEMUL to succeed.
>
>   Similar to r295727
>
> Modified:
>   projects/mips64-clang/sys/mips/mips/mpboot.S
>
> Modified: projects/mips64-clang/sys/mips/mips/mpboot.S
>
> ==============================================================================
> --- projects/mips64-clang/sys/mips/mips/mpboot.S        Fri Feb 19
> 17:14:34 2016        (r295819)
> +++ projects/mips64-clang/sys/mips/mips/mpboot.S        Fri Feb 19
> 17:32:30 2016        (r295820)
> @@ -70,20 +70,26 @@ GLOBAL(mpentry)
>         /*
>          * Initialize stack and call machine startup
>          */
> +       .set at
>         PTR_LA  sp, _C_LABEL(pcpu_space)
> +       .set noat
>

<barf> clang IAS is simply wrong. While it doesn't matter so much
here, it will in the interrupt handler where it can't use AT.


>         addiu   sp, (PAGE_SIZE * 2) - CALLFRAME_SIZ
>         sll     t0, s0, PAGE_SHIFT + 1
>         addu    sp, sp, t0
>
>         /* Zero out old ra and old fp for debugger */
> -       sw      zero, CALLFRAME_SIZ - 4(sp)
> -       sw      zero, CALLFRAME_SIZ - 8(sp)
> +       sw      zero, ((CALLFRAME_SIZ) - 4)(sp)
> +       sw      zero, ((CALLFRAME_SIZ) - 8)(sp)
>

clang is wrong here and should be fixed.


> +       .set at
>         PTR_LA  gp, _C_LABEL(_gp)
> +       .set noat
>
>         jal     platform_init_ap
>         move    a0, s0
>         jal     smp_init_secondary
>         move    a0, s0
>
> +       .set at
>         PANIC("AP startup failed!")
> +       .set noat
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpGna3XLBUS-CHUmiTq-1%2BEPxnbuSmo6tnx0iypxGpbJA>