This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
920415-1.c failure on Alpha for Winnt ... also applies to openvms on ALPHA
- To: egcs at cygnus dot com
- Subject: 920415-1.c failure on Alpha for Winnt ... also applies to openvms on ALPHA
- From: bob <bob at guiduck dot com>
- Date: Thu, 13 Nov 1997 14:32:20 -0800
- Reply-To: bob at guiduck dot com
compiling 9204151-1 for target ALPHA on WINNT
generates an error message from the assembler
unable to use register $63 . The error
is not in gas as reported earlier but with
egcs.
------------------------------------------------
920415-1.c
/* CYGNUS LOCAL -- meissner/no label values */
#ifndef NO_LABEL_VALUES
main(){
__label__ l;
void*x(){
return&&l;
}goto*x();
abort();
return;
l:exit(0);
}
#else
main(){ exit (0); }
#endif
/* END CYGNUS LOCAL -- meissner/no label values */
Source listing from egcs-1105
.set noreorder
.set volatile
.set noat
.globl __fltused
.file 1 "920415-1.c"
gcc2_compiled.:
__gnu_compiled_c:
.text
.align 3
.ent x.2
x.2:
lda $30,-32($30)
.frame $15,32,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-32
bis $30,$30,$15
.prologue 1
stq $1,0($63) <- error here
lda $1,$34
addl $1,$31,$0
br $31,$35
$35:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,32,$30
ret $31,($26),1
.end x.2
.align 3
.globl main
.ent main
main:
lda $30,-32($30)
.frame $15,32,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-32
bis $30,$30,$15
.prologue 1
stq $30,24($15)
addq $15,16,$1
bsr $26,x.2
bis $0,$0,$1
jmp $31,($1),0
bsr $26,abort
br $31,$33
$34:
bis $31,$31,$1
bis $1,$1,$16
bsr $26,exit
$33:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,32,$30
ret $31,($26),1
.end main
compiling with gcc 2.7.2.2 generate the following correct assembly:
.set noreorder
.set volatile
.set noat
.globl __fltused
.file 1 "920415-1.c"
gcc2_compiled.:
__gnu_compiled_c:
.text
.align 3
.ent x.2
x.2:
lda $30,-32($30)
.frame $15,32,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-32
bis $30,$30,$15
.prologue 1
stq $1,16($15) <- correct output
lda $1,$34
addl $1,$31,$0
br $31,$35
$35:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,32,$30
ret $31,($26),1
.end x.2
.align 3
.globl main
.ent main
main:
lda $30,-32($30)
.frame $15,32,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-32
bis $30,$30,$15
.prologue 1
addq $15,16,$1
bsr $26,x.2
bis $0,$0,$1
jmp $31,($1),0
jsr $26,abort
br $31,$33
$34:
bis $31,$31,$1
bis $1,$1,$16
jsr $26,exit
$33:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,32,$30
ret $31,($26),1
.end main
--------------------------------------------------------------
If this helps the error first occurred in the original August snapshot
of egcs.