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.
next prev parent 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®