mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
To: Richard Henderson <rth@redhat.com>
Cc: Jay.Estabrook@compaq.com, linux-kernel@vger.kernel.org
Subject: Re: [alpha] cleanup opDEC workaround
Date: Wed, 21 Nov 2001 15:15:55 +0300	[thread overview]
Message-ID: <20011121151555.A20128@jurassic.park.msu.ru> (raw)
In-Reply-To: <20011119232355.C16091@redhat.com> <20011120133150.A9033@jurassic.park.msu.ru> <20011120090818.A16366@redhat.com> <20011120205105.A15395@jurassic.park.msu.ru> <20011120104748.B16422@redhat.com>
In-Reply-To: <20011120104748.B16422@redhat.com>; from rth@redhat.com on Tue, Nov 20, 2001 at 10:47:48AM -0800

On Tue, Nov 20, 2001 at 10:47:48AM -0800, Richard Henderson wrote:
> In the working case, we'll enter entIF with pc==cmpteq.  Add 8 gives
> stt, subtract 4 gives addt, which is engineered to be a noop.

Argh. I was thinking too much about dummy_emul case and missed the fact
that instruction at pc-4 is actually executed in alpha_fp_emul()...

> Hmm.  If fp emulation isn't compiled in, we shouldn't bother
> testing this, I think.  Means you can't debug fp emulation via
> modules on Multia, but I'm pretty sure I don't care.

Yes, making opDEC_check stuff `#ifdef CONFIG_MATHEMU' would be
reasonable.

> I suppose the other alternative to get the testing code out of
> the normal entIF is to create a custom entIF that is installed
> only during opDEC testing.  Seems too much work...

Agreed. Alternatively, it's possible to hack dummy_emul(), which
doesn't affect the normal case.

static long dummy_emul(unsigned long pc)
{
	if (opDEC_fix != 8)
		return 0;
	/* Trap in opDEC_check() */
	if (*(u32 *)pc == 0x5bff141f)	/* addt $f31, $f31, $f31 */
		return 1;		/* SRM updates PC correctly */
	/* Broken SRM. "Emulate" cmpteq in opDEC_check() */
	__asm__ __volatile__("cmpteq $f31, $f31, $f0\n");
	return 1;
}

Ivan.

  reply	other threads:[~2001-11-21 12:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-20  7:23 Richard Henderson
2001-11-20 10:31 ` Ivan Kokshaysky
2001-11-20 17:08   ` Richard Henderson
2001-11-20 17:51     ` Ivan Kokshaysky
2001-11-20 18:47       ` Richard Henderson
2001-11-21 12:15         ` Ivan Kokshaysky [this message]
2001-11-21 22:27           ` Richard Henderson
2001-11-22 10:55             ` Ivan Kokshaysky

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=20011121151555.A20128@jurassic.park.msu.ru \
    --to=ink@jurassic.park.msu.ru \
    --cc=Jay.Estabrook@compaq.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rth@redhat.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

all inboxes | Powered by JetHome®