🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #160

GCC-2.1 PROBLEMS

#160
From: Ian Macpherson
Date: Mon, 06 Apr 1992 10:23
131 lines
3463 bytes
	Hello,

	We've just got gcc-2.1 on our Sequent Balance machine, but we're
	having problems installing it. The first is a compilation problem with
	aux-output.c. The other problem is more general and appears when
	the newly built compiler is being used to compile libgcc2. It
	generates code that is objected to by the Dynix assembler.
	GCC 1.40 does not exhibit the same problem.
	Our system is:

	Host:			Sequent Balance
	OS:			DYNIX V3.0.14
	Host compiler:		GCC 1.40
	Host assembler:		Dynix as
	Configuration:		balance-dynix
				Linked `config.h' to `./config/xm-ns32k.h'.
				Linked `tm.h' to `./config/sequent.h'.
				Linked `md' to `./config/ns32k.md'.
				Linked `aux-output.c' to `./config/ns32k.c'.
				Linked `tconfig.h' to `./config/xm-ns32k.h'.

========================== BUG 1 ==========================================
	
	The file aux-output.c (./config/ns32k.c) generates a
	compilation error at line 407. See the diff output below:

407c407
< 	  fprintf (file, "0Dx%08x%08x", u.i[1], u.i[0]);
---
> 	  fprintf (file, "0Dx%08x%08x", u.i[1], u.i[0])l

========================== BUG 2 ==========================================

	The second bug occurs while libgcc2 (or any source file containing
	subroutine calls) is being compiled for _divdi3. The compiler
	seems to use an illegal addressing mode for the "bsr" instruction
	(see the assembler output for divdi3 below). Rather than:

		bsr 0(___negdi2)

	GCC 1.40 and DYNIX cc generate

		bsr ___negdi2

#NO_APP
gcc2_compiled.:
.text
	.align 1
.globl ___divdi3
___divdi3:
	enter [],28
	movqd 0,-4(fp)
	movd 8(fp),-12(fp)
	movd 12(fp),-8(fp)
	movd 16(fp),-20(fp)
	movd 20(fp),-16(fp)
	cmpqd 0,-8(fp)
	ble L3
	comd -4(fp),-4(fp)
	movd -8(fp),tos
	movd -12(fp),tos
	bsr 0(___negdi2)
"/usr/tmp/cc017316.s", line 18: operand 1, expecting an expression or pc-rel
	movd r0,-12(fp)
	movd r1,-8(fp)
	adjspd -8
L3:
	cmpqd 0,-16(fp)
	ble L4
	comd -4(fp),-4(fp)
	movd -16(fp),tos
	movd -20(fp),tos
	bsr 0(___negdi2)
"/usr/tmp/cc017316.s", line 28: operand 1, expecting an expression or pc-rel
	movd r0,-20(fp)
	movd r1,-16(fp)
	adjspd -8
L4:
	movqd 0,tos
	movd -16(fp),tos
	movd -20(fp),tos
	movd -8(fp),tos
	movd -12(fp),tos
	bsr 0(___udivmoddi4)
"/usr/tmp/cc017316.s", line 38: operand 1, expecting an expression or pc-rel
	movd r0,-28(fp)
	movd r1,-24(fp)
	adjspd -20
	cmpqd 0,-4(fp)
	beq L5
	movd -24(fp),tos
	movd -28(fp),tos
	bsr 0(___negdi2)
"/usr/tmp/cc017316.s", line 46: operand 1, expecting an expression or pc-rel
	movd r0,-28(fp)
	movd r1,-24(fp)
	adjspd -8
L5:
	movd -28(fp),r0
	movd -24(fp),r1
	br L2
L2:
	exit []
	ret 0
	.align 1
___negdi2:
	enter [r3,r4,r5],16
	movd 8(fp),r2
	movd 12(fp),r3
	movd r2,-16(fp)
	movd r3,-12(fp)
	negd -16(fp),-8(fp)
	negd -12(fp),r4
	cmpqd 0,-8(fp)
	sned r0
	movd r4,r5
	subd r0,r5
	movd r5,r0
	movd r0,-4(fp)
	movd -8(fp),r0
	movd -4(fp),r1
	br L1
L1:
	exit [r5,r4,r3]
	ret 0

-- 
Ian Macpherson
Phone:	+44 (923) 258229
Email:	uknet!case!ian  or  ian@case.co.uk
--
Technical Details
Message-ID: <9204061023.AA18494@trillian.case.uucp>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!case.co.UK!ian

Show Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!case.co.UK!ian
From: ian@case.co.UK (Ian Macpherson)
Subject: GCC-2.1 PROBLEMS
Message-ID: <9204061023.AA18494@trillian.case.uucp>
Sender: gnulists@ai.mit.edu
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 6 Apr 1992 10:23:33 GMT
Approved: bug-gcc@prep.ai.mit.edu
Lines: 132