Article View: gnu.gcc.bug
Article #2418take 2 on mysterious bug
From: Benson I. Margulies Kendall Squa...
Date: Fri, 17 Mar 1989 20:42
Date: Fri, 17 Mar 1989 20:42
55 lines
1551 bytes
1551 bytes
I believe that I have a nearer shot at my previous useless bug report.
I have a very large switch statement. I can't easily send you the
source. I can send you the machine code that I think is going wrong.
The switch gets compiled as a computed goto. The sun compiler goes to
the right place, gcc 1.34 -g goes to the wrong case I believe 0),
every time. I can't read SPARC code for shit, or I could really
diagnose this.
unsigned long x = 0x320ec1ec;
switch ((((x) & 0xc) >> 2) | (((x) & 0x3f000000) >> 22)) {
case ...:
}
Sun cc code:
set 0x3f000000,%l7
and %i0,%l7,%i1
srl %i1,0x16,%i2
and %i0,0xc,%o0
srl %o0,0x2,%o0
or %o0,%i2,%o0
cmp %o0,239
bgu L1109
sll %o0,2,%o0
set L2000081,%o1
ld [%o0+%o1],%o0
jmp %o0
nop
gnu cc code:
LM3:
and %o0,12,%o0
srl %o0,2,%o0
sethi %hi(1056964608),%g1
or %lo(1056964608),%g1,%g1
and %o0,%g1,%o1
srl %o1,22,%o1
or %o0,%o1,%o0
add %o0,0,%o0
cmp %o0,239
bgu L895
nop
sethi %hi(L2715),%o1
or %lo(L2715),%o1,%o1
sll %o0,2,%o0
ld [%o1+%o0],%o0
jmp %o0
nop
Technical Details
Message-ID:
<8903172042.AA16663@rikers.ksr.com>Path:
arc1-ca.pugleaf.net!utzoo!telly!attcan!uunet!tut.cis.ohio-state.edu!HARVARD.HARVARD.EDU!ksr!bensonShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!uunet!tut.cis.ohio-state.edu!HARVARD.HARVARD.EDU!ksr!benson From: ksr!benson@HARVARD.HARVARD.EDU (Benson I. Margulies Kendall Square Research Corp.) Newsgroups: gnu.gcc.bug Subject: take 2 on mysterious bug Message-ID: <8903172042.AA16663@rikers.ksr.com> Date: 17 Mar 89 20:42:13 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: benson@ksr.com Distribution: gnu Organization: GNUs Not Usenet Lines: 55