From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B1C313858C83; Mon, 26 Sep 2022 08:01:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B1C313858C83 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664179275; bh=WKo3JcvDUAlWnb/ygLVWQhxgoNvz9kSY2Izqlm91cIo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=WMZzH26hS3GTNy5lZ/Uf85jMSkqLYOK4lGGeU8mfm7Z8huXm2+gKxVxY9nN4i7IEY zBfVrIZ5k3LAQoOV/9tVKsqDWNKobr/H9gCpM9sfb/mSQIc64yA1+UUV0r9+5uG+pX Dfgsd+BEuWvKlCg97B/7YqhhWXGV7tB7AMjW75Yg= From: "clyon at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/107032] ARM: libgcc2.c:2174:1: error: r7 cannot be used in 'asm' here Date: Mon, 26 Sep 2022 08:01:06 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 11.3.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: clyon at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107032 Christophe Lyon changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clyon at gcc dot gnu.org --- Comment #1 from Christophe Lyon --- At quick glance, I think this is caused by the definition of CLEAR_INSN_CAC= HE in gcc/config/arm/uclinux-eabi.h: /* Clear the instruction cache from `beg' to `end'. This makes an inline system call to SYS_cacheflush. */ #undef CLEAR_INSN_CACHE #define CLEAR_INSN_CACHE(BEG, END) \ { \ register unsigned long _beg __asm ("a1") =3D (unsigned long) (BEG); \ register unsigned long _end __asm ("a2") =3D (unsigned long) (END); \ register unsigned long _flg __asm ("a3") =3D 0; \ register unsigned long _scno __asm ("r7") =3D 0xf0002; \ __asm __volatile ("swi 0x0 @ sys_cacheflush" \ : "=3Dr" (_beg) \ : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno)); \ } which makes explicit use of r7. This code has been like that since it was committed in 2007.... So I suspect nobody ever tried to build this configuration.=