public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jim Wilson <wilson@codesourcery.com>
To: sumanth <sumanth.gundapneni@redpinesignals.com>
Cc: gcc@gcc.gnu.org
Subject: Re: extern variable
Date: Mon, 03 Aug 2009 16:02:00 -0000	[thread overview]
Message-ID: <1249315349.2559.12.camel@localhost> (raw)
In-Reply-To: <4A76641A.1010503@redpinesignals.com>

On Mon, 2009-08-03 at 09:44 +0530, sumanth wrote:
>        How can i make sure my tool chain knows the difference between 
> global variable r0 and register r0.

The simple solution is to either add a prefix to variable names, or to
add a prefix to register names.  In ELF, the convention is to not add a
prefix to variables names, we add a prefix to register names instead if
we need one, e.g. %eax on i386, or $4 on mips.

You can of course choose to add a prefix to variable names.  It just
isn't the convention.  See for instance how the arm-elf port works when
you use the -fleading-underscore option.

A less simple solution is to have an assembler syntax that avoids
ambiguity between register names and variable names.  If for instance
you have a move instruction that can accept either a register or a
variable as source, then you have an ambiguity.  You could instead have
a load instruction for reading memory, and a move instruction for
reading registers, and then you don't have an ambiguity anymore.  You
can also do things with addressing modes and relocation operators to
reduce ambiguities.

Jim


  reply	other threads:[~2009-08-03 16:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-30 14:53 sumanth
2009-08-02  2:22 ` Michael Eager
2009-08-02 19:34 ` Jim Wilson
2009-08-03  4:32   ` sumanth
2009-08-03 16:02     ` Jim Wilson [this message]
2009-08-03 18:54       ` sumanth
2009-08-03 20:10         ` Jim Wilson
2009-08-04 15:35           ` sumanth

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=1249315349.2559.12.camel@localhost \
    --to=wilson@codesourcery.com \
    --cc=gcc@gcc.gnu.org \
    --cc=sumanth.gundapneni@redpinesignals.com \
    /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).