This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the EGCS project.
Re: gcc-2.95+alpha-ev6+RH6.0=failure
- To: lucier@math.purdue.edu, law@cygnus.com
- Subject: Re: gcc-2.95+alpha-ev6+RH6.0=failure
- From: Brad Lucier <lucier@math.purdue.edu>
- Date: Fri, 30 Jul 1999 15:43:22 -0500 (EST)
- Cc: gcc-bugs@gcc.gnu.org, staff@math.purdue.edu
Thank you. I have now installed binutils-2.9.5.03 and that problem
seems to be fixed.
However, now I get another problem. When I compile the routine
int nantest3(long ___r1, long ___r2) {
double ___F64R1, ___F64R2;
___F64R1 = (*(double *) ((((long *) (___r1 - 1)) + 1))); /* PROBLEM */
if ((___F64R1 != ___F64R1))
{
return 1;
}
___F64R2 = (*(double *) ((((long *) (___r2 - 1)) + 1)));
if ((___F64R2 != ___F64R2))
{
return 2;
}
return 3;
}
with the command:
gcc -g -mieee -O1 -mcpu=ev6 -fno-strict-aliasing -S
then it does not generate ieee standard opcodes, i.e., it generates
cmpteq rather than cmpteqsu followed by trapb. Since my application
does work with NaNs, this generates an arithmetic exception at runtime.
The code that is generated is at the end of this message.
Brad Lucier lucier@math.purdue.edu
ile 1 "nantest3.c"
.set noat
.set noreorder
.arch ev6
.stabs "/home/c/lucier/programs/gambc30/popov/gambc30/test/",100,0,0,$Ltext0
.stabs "nantest3.c",100,0,0,$Ltext0
.text
$Ltext0:
.stabs "int:t1=r1;-2147483648;2147483647;",128,0,0,0
.stabs "char:t2=r2;0;127;",128,0,0,0
.stabs "long int:t3=r1;001000000000000000000000;000777777777777777777777;",128,0,0,0
.stabs "unsigned int:t4=r4;0;4294967295;",128,0,0,0
.stabs "long unsigned int:t5=r1;000000000000000000000000;001777777777777777777777;",128,0,0,0
.stabs "long long int:t6=r1;001000000000000000000000;000777777777777777777777;",128,0,0,0
.stabs "long long unsigned int:t7=r1;000000000000000000000000;001777777777777777777777;",128,0,0,0
.stabs "short int:t8=r8;-32768;32767;",128,0,0,0
.stabs "short unsigned int:t9=r9;0;65535;",128,0,0,0
.stabs "signed char:t10=r10;-128;127;",128,0,0,0
.stabs "unsigned char:t11=r11;0;255;",128,0,0,0
.stabs "float:t12=r1;4;0;",128,0,0,0
.stabs "double:t13=r1;8;0;",128,0,0,0
.stabs "long double:t14=r1;8;0;",128,0,0,0
.stabs "complex int:t15=s8real:1,0,32;imag:1,32,32;;",128,0,0,0
.stabs "complex float:t16=r16;4;0;",128,0,0,0
.stabs "complex double:t17=r17;8;0;",128,0,0,0
.stabs "complex long double:t18=r18;8;0;",128,0,0,0
.stabs "void:t19=19",128,0,0,0
.align 5
.globl nantest3
.ent nantest3
nantest3:
.eflag 48
.frame $30,0,$26,0
$nantest3..ng:
$LM1:
.stabn 68,0,1,$LM1
$LM2:
.stabn 68,0,2,$LM2
$LBB2:
$LM3:
.stabn 68,0,3,$LM3
.prologue 0
ldt $f10,7($16)
$LM4:
.stabn 68,0,4,$LM4
cmpteq $f10,$f10,$f10
fbeq $f10,$L3
$LM5:
.stabn 68,0,8,$LM5
ldt $f10,7($17)
$LM6:
.stabn 68,0,9,$LM6
cmpteq $f10,$f10,$f10
$LM7:
.stabn 68,0,11,$LM7
lda $0,2
$LM8:
.stabn 68,0,9,$LM8
fbeq $f10,$L5
$LM9:
.stabn 68,0,13,$LM9
lda $0,3
br $31,$L5
.align 4
$L3:
$LM10:
.stabn 68,0,6,$LM10
lda $0,1
$L5:
ret $31,($26),1
$LM11:
.stabn 68,0,14,$LM11
$LBE2:
.end nantest3
.stabs "nantest3:F1",36,0,1,nantest3
.stabs "___r1:P3",64,0,1,16
.stabs "___r2:P3",64,0,1,17
.stabs "___F64R1:r13",64,0,2,42
.stabs "___F64R2:r13",64,0,2,42
.stabn 192,0,0,$LBB2
.stabn 224,0,0,$LBE2
.ident "GCC: (GNU) 2.95 19990728 (release)"