This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

920415-1.c failure on Alpha for Winnt ... also applies to openvms on ALPHA


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]