public inbox for cgen@sourceware.org
 help / color / mirror / Atom feed
From: Doug Evans <dje@transmeta.com>
To: Dave Brolley <brolley@redhat.com>
Cc: cgen@sourceware.cygnus.com
Subject: CGEN: RELAXABLE and RELAX
Date: Tue, 22 Aug 2000 13:33:00 -0000	[thread overview]
Message-ID: <14754.58225.474553.670993@casey.transmeta.com> (raw)
In-Reply-To: <399D5EC7.C59F3DEF@redhat.com>

Dave Brolley writes:
 > The architecture I'm working with has two load immediate insns
 > that look syntactically identical except for the range of the
 > immediate value allowed:
 > 
 > ld Rn,imm8	; 8 bit immediate
 > ld Rn,imm16	; 16 bit immediate
 > 
 > The 8 bit load assembles to a 16 bit insn and the 16 bit load
 > assembles to a 32 bit insn. From the reading the CGEN manual, it
 > looks to me like this is what RELAXABLE and RELAX are supposed to
 > handle. i.e. specifying RELAXABLE on the 8 bit load will cause it
 > to be tried first during assembly and specifying RELAX on the 16
 > bit load will cause it to be tried next. I tried this, but when I
 > code 'ld r1,0x100', I get an error saying bad instruction. 'ld
 > r1,0xff' assembles correctly. It looks like the 16 bit load was
 > never considered. Am I missing something?

Hi, you're latest message reminded me I never answered this one.

IIRC, RELAXABLE,RELAX in and of themselves aren't sufficient.

Also, you're definitions of RELAXABLE,RELAX aren't quite correct.
[probably stemming from the documentation]

RELAX: don't try during assembly

From m32r_cgen_assemble_insn:

      /* If the RELAX attribute is set, this is an insn that shouldn't be
         chosen immediately.  Instead, it is used during assembler/linker
         relaxation if possible.  */
      if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_RELAX) != 0)
        continue;

Also, RELAX/RELAXABLE aren't generally used for this case.
What you do here is specify 8 bit loads a head of 16 bit loads.
The assembler will pick the first applicable one.

[kinda hokey, but sufficient for now]

      reply	other threads:[~2000-08-22 13:33 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-18  9:04 Dave Brolley
2000-08-22 13:33 ` Doug Evans [this message]

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=14754.58225.474553.670993@casey.transmeta.com \
    --to=dje@transmeta.com \
    --cc=brolley@redhat.com \
    --cc=cgen@sourceware.cygnus.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).