public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Adrian von Bidder <avbidder@acter.ch> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: target/4855: arm (thumb) backend generates illegal strb instruction] Date: Thu, 15 Nov 2001 12:39:00 -0000 [thread overview] Message-ID: <20011120152601.15024.qmail@sourceware.cygnus.com> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 2949 bytes --] The following reply was made to PR target/4855; it has been noted by GNATS. From: Adrian von Bidder <avbidder@acter.ch> To: Nick Clifton <nickc@cambridge.redhat.com>, gcc <gcc@gcc.gnu.org> Cc: Subject: Re: target/4855: arm (thumb) backend generates illegal strb instruction] Date: Tue, 20 Nov 2001 11:23:20 +0100 Nick Clifton wrote: > > Hi Adrian, > > > The bug is quite robust. It occurs with > > arm-linux-elf-gcc -mthumb -fpic -mpic-register=r6 -O2 > > Well the good news, or bad news, depending upon your point of view, is > that this bug does not appear to be reproducible with the current CVS > sources. At least not for a toolchain configured with > --target=arm-elf rather than --target=arm-linux-elf. Yo! Sorry to inform you that this problem has resurfaced and is reproducible with both arm-uclinux (my current workdir; don't use the patch I've posted some time ago) and arm-elf (from todays unmodified cvs) targets. It is, of course, highly dependent on the workings of the register allocator, so it depends on optimizer flags. arm-elf-gcc -mthumb -fpic -mpic-register=r6 -Os shouls show it with these with the newest cvs. The code from target/3218 does not seem to have the problem. 'My' code (target/4855) does still show the problem, however. [1] greets from Zürich -- vbi [1] typedef enum { REG_NOERROR = 0, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE, REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN, REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND, REG_ESIZE, REG_ERPAREN } reg_errcode_t; typedef unsigned long int reg_syntax_t; extern int strcoll (const char *__s1, const char *__s2); reg_errcode_t compile_range (p_ptr, pend, translate, syntax, b) const char **p_ptr, *pend; char *translate; reg_syntax_t syntax; unsigned char *b; { unsigned this_char; const char *p = *p_ptr; reg_errcode_t ret; char range_start[2]; char range_end[2]; char ch[2]; if (p == pend) return REG_ERANGE; range_start[0] = p[-2]; range_start[1] = '\0'; range_end[0] = p[0]; range_end[1] = '\0'; (*p_ptr)++; ret = syntax & ((((((((((((((((((unsigned long int) 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) << 1) ? REG_ERANGE : REG_NOERROR; ch[1] = '\0'; for (this_char = 0; this_char <= (unsigned char) -1; ++this_char) { ch[0] = this_char; if (strcoll (range_start, ch) <= 0 && strcoll (ch, range_end) <= 0) { (b [((unsigned char) ((translate ? (char) translate[(unsigned char) (this_char)] : (this_char)))) / 8] |= 1 << (((unsigned char) (translate ? (char) translate[(unsigned char) (this_char)] : (this_char))) % 8)); ret = REG_NOERROR; } } return ret; }
reply other threads:[~2001-11-20 15:26 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20011120152601.15024.qmail@sourceware.cygnus.com \ --to=avbidder@acter.ch \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).