Article View: gnu.gcc.bug
Article #1189Bug: i860 address operands in gcc-2.2.2
From: Joseph Francis
Date: Mon, 12 Oct 1992 17:08
Date: Mon, 12 Oct 1992 17:08
38 lines
1565 bytes
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.FRancisShow 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