From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752117AbcJCAVs (ORCPT ); Sun, 2 Oct 2016 20:21:48 -0400 Received: from eddie.linux-mips.org ([148.251.95.138]:50682 "EHLO cvs.linux-mips.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751633AbcJCAVo (ORCPT ); Sun, 2 Oct 2016 20:21:44 -0400 Date: Mon, 3 Oct 2016 01:21:41 +0100 (BST) From: "Maciej W. Rozycki" To: Ralf Baechle cc: Paul Burton , linux-mips@linux-mips.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] MIPS: dec: Avoid la pseudo-instruction in delay slots In-Reply-To: <20160920123301.GN5881@linux-mips.org> Message-ID: References: <20160902141902.2478-1-paul.burton@imgtec.com> <20160920123301.GN5881@linux-mips.org> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 20 Sep 2016, Ralf Baechle wrote: > > I take it it's a quest for a clean compilation with no warnings reported, > > as the message is otherwise harmless and correct code is produced here. > > > > Some of the systems affected are not necessarily fast (e.g. clocked at > > 12MHz), so I wonder if we shouldn't just bite the bullet and expand the > > %hi/%lo pair here. Even with R4k DECstations we only support `-msym32' > > compilation only, due to R4k errata, so it's not like the higher parts > > will ever be needed for address calculation. > > > > Alternatively we could have a `.set warn'/`.set nowarn' setting in GAS, > > previously discussed I believe, although it would take a bit to propagate. > > Yeah, I'm already looking into the other direction whenever this warning > pops up - and it does so often. I've even pondered submitting something > like -Werror for gas ;-) Well, the GCC driver already handles it and catches warnings from GAS if requested, doesn't it? > It's not very elegant but you could just open code everything, see below > patch. Compiles but not runtime tested due to lack of hardware. That's what I noted above and as also noted you only need the %hi/%lo variant due to the `-msym32' restriction for 64-bit DECstation kernels; the kernel is always linked to KSEG0. Alternatively for maximum safety perhaps we could define PTR_LA_EXPLICIT or suchlike with a suitable open-coded sequence for the pointer width chosen; note however that `-msym32' doesn't set any CPP's internal predefined macro, so we'd have to define our own to control this. > Maciej, can you test this? I'll see what I can do; I've been travelling a lot lately. Maciej