Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751891AbcDRO0K (ORCPT ); Mon, 18 Apr 2016 10:26:10 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:58001 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751174AbcDRO0I (ORCPT ); Mon, 18 Apr 2016 10:26:08 -0400 Date: Mon, 18 Apr 2016 15:25:56 +0100 From: "Maciej W. Rozycki" To: Ralf Baechle CC: "Maciej W. Rozycki" , kbuild test robot , Paul Burton , , Subject: Re: {standard input}:136: Error: number (0x9000000080000000) larger than 32 bits In-Reply-To: <20160418133449.GB24051@linux-mips.org> Message-ID: References: <201604170836.kTyP1sCY%fengguang.wu@intel.com> <20160417011926.GA4014@linux-mips.org> <20160418133449.GB24051@linux-mips.org> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [10.20.78.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1951 Lines: 51 On Mon, 18 Apr 2016, Ralf Baechle wrote: > The old case btw, affects ip22 with a random_config: > > CC arch/mips/mm/sc-ip22.o > {standard input}: Assembler messages: > {standard input}:137: Error: number (0x9000000080000000) larger than 32 bits > {standard input}:162: Error: number (0x9000000080000000) larger than 32 bits > scripts/Makefile.build:258: recipe for target 'arch/mips/mm/sc-ip22.o' failed > make[2]: *** [arch/mips/mm/sc-ip22.o] Error 1 > scripts/Makefile.build:403: recipe for target 'arch/mips/mm' failed > make[1]: *** [arch/mips/mm] Error 2 > Makefile:947: recipe for target 'arch/mips' failed > make: *** [arch/mips] Error 2 > > and I was able to reproduce it with binutils 2.26 and commit > c517d838eb7d07bbe9507871fab3931deccff539 ("Linux 4.0-rc1"). The code > in question looks like: > > static inline void indy_sc_wipe(unsigned long first, unsigned long last) > { > unsigned long tmp; > > __asm__ __volatile__( > ".set\tpush\t\t\t# indy_sc_wipe\n\t" > ".set\tnoreorder\n\t" > ".set\tmips3\n\t" > ".set\tnoat\n\t" > "mfc0\t%2, $12\n\t" > "li\t$1, 0x80\t\t\t# Go 64 bit\n\t" > "mtc0\t$1, $12\n\t" > > "dli\t$1, 0x9000000080000000\n\t" That does not help me, I'm afraid, I can't trigger the issue with this piece of code alone. It may be caused by a particular combination of GAS command line options and `.set' directives. Since you can reproduce it, can you please send me the offending .s file (`make arch/mips/mm/sc-ip22.s') and the GAS invocation line used? GCC will print the latter along all kinds of diagnostic stuff if -v is passed to an invocation involving assembly (e.g. `make V=1 CFLAGS_sc-ip22.o=-v arch/mips/mm/sc-ip22.o'). You can send me the whole diagnostics, I'll filter what I need. I think it'll be the most efficient way to move forward; otherwise I may keep missing the issue. Thanks, Maciej