🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #1189

Bug: i860 address operands in gcc-2.2.2

#1189
From: Joseph Francis
Date: Mon, 12 Oct 1992 17:08
38 lines
1565 bytes
In gcc-2.2.2, targeted for the i860 processor, the following code exists
in file "i860.h", in the configuration directory:

under PRINT_OPERAND(FILE, X, CODE)

if (GET_CODE (X) == MEM)
  PRINT_OPERAND_PART (FILE, XEXP (X, 0),
                      const_int_operand (XEXP (X, 0))
                              ? OPERAND_HIGH_PART
                              : OPERAND_HIGH_ADJ_PART);

this produces assembler instructions for constant integer address
operands (i.e., fixed memory locations, here 0xabcdefgh) with bad
offset adjust instructions.

		orh	h%0xabcdefgh,r0,r31
		st.l    r16,l%0xabcdefgh(r31)

		and when assembled and executed the resulting address
		becomes 0xabceefgh

the code should be something more like:

if (GET_CODE (X) == MEM)
  PRINT_OPERAND_PART (FILE, XEXP (X, 0),
                           OPERAND_HIGH_ADJ_PART);

which produces the code

		orh	ha%0xabcdefgh,r0,r31
		st.l	r16,l%0xabcdefgh(r31)

Works for me.


-- 
| Le Jojo: Fresh 'n' Clean, speaking out to the way you want to live
| today; American - All American; doing, a bit so, and even more so.
Technical Details
Message-ID: <1992Oct12.170813.12675@ircam.fr>
Path: arc1-ca.pugleaf.net!sparky!uunet!convex!linac!pacific.mps.ohio-state.edu!cis.ohio-state.edu!ircam.FR!Joseph.FRancis

Show Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!convex!linac!pacific.mps.ohio-state.edu!cis.ohio-state.edu!ircam.FR!Joseph.FRancis
From: Joseph.FRancis@ircam.FR (Joseph Francis)
Subject: Bug: i860 address operands in gcc-2.2.2
Message-ID: <1992Oct12.170813.12675@ircam.fr>
Sender: gnulists@ai.mit.edu
Organization: IRCAM, Paris (France)
Distribution: gnu
Date: Mon, 12 Oct 1992 17:08:13 GMT
Approved: bug-gcc@prep.ai.mit.edu
Lines: 39