public inbox for cgen@sourceware.org
 help / color / mirror / Atom feed
From: Jeremy Bennett <jeremy.bennett@embecosm.com>
To: cgen@sourceware.org
Subject: Architectures and Machine Names
Date: Fri, 21 Aug 2009 17:51:00 -0000	[thread overview]
Message-ID: <1250877079.10529.224.camel@thomas> (raw)

I'm updating the OpenRISC 1000 binutils port and CGEN specification and
need some advice on defining architecture and machine.

Over the years there has been some confusion over naming with the
OpenRISC project. The OpenRISC 1000 is an architecture permitting
various implementations (32-bit, 64-bit, big-endian, little-endian).
Within this architecture there is a core instruction set (either 32 or
64-bit), and supplementary instruction sets for floating point and
vector operations.

Currently there is one 32-bit big-endian implementation, the OpenRISC
1200 supporting the core 32-bit instruction set

So it seems natural to define the CGEN architecture as or1k, with a
machine named or32 (supporting the core ISA) and a model named or1200.
All in a file named or1k.cpu.

Users build their binutils using --target=or32-opencores-elf. I have a
BFD architecture bfd_arch_or1k and a BFD machine bfd_mach_or32.

However I am struggling to get binutils to accept the idea that the
machine name and architecture are different. CGEN will generate my
opcodes files using the architecture (or1k-) as prefix. However GAS will
set the prefix from the CPU (or32), not the CPU Type (or1k), so looks
for opcodes files with a or32- prefix.

I have tried overriding this in configure.in for gas by setting the
prefix to match the CPU type (or1k), and binutils will build. However
the ELF images created by the assembler use the machine name (or32) as
the architecture, but the disassembler checks that the file matches the
architecture (or1k). Thus objdump -d will not recognize files created by
the assembler.

Unfortunately I cannot find an example to follow within binutils of an
architecture like this. The SuperH processors are specified with CGEN
(sh.cpu), but not built with CGEN. All the CGEN targets in configure.in
with using_cgen=yes have the same name for both architecture and
machine.

I'd appreciate advice on how to resolve this. Most of the OpenRISC 1000
is common to all implementations, so it makes sense to have a single
"or1k" set of tools. However the user also needs to specify which CPU
within the "or1k" set, to allow variations to happen.

Many thanks,


Jeremy

-- 
Tel:      +44 (1590) 610184
Cell:     +44 (7970) 676050
SkypeID: jeremybennett
Email:   jeremy.bennett@embecosm.com
Web:     www.embecosm.com

             reply	other threads:[~2009-08-21 17:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-21 17:51 Jeremy Bennett [this message]
2009-08-25  0:21 ` Doug Evans
2009-08-26 17:29   ` Jeremy Bennett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1250877079.10529.224.camel@thomas \
    --to=jeremy.bennett@embecosm.com \
    --cc=cgen@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).