From: Joern Rennecke <joern.rennecke@superh.com>
To: msnyder@redhat.com (Michael Snyder)
Cc: joern.rennecke@superh.com (Joern Rennecke),
amylaar@fairadsl.co.uk, andrew.stubbs@superh.com,
gdb-patches@sources.redhat.com
Subject: Re: [RFA] Add sh4a to sh-sim (2nd iteration)
Date: Fri, 09 Jan 2004 12:37:00 -0000 [thread overview]
Message-ID: <200401091236.i09Caav11621@linsvr1.uk.superh.com> (raw)
In-Reply-To: <3FFDD388.8040901@redhat.com> from "Michael Snyder" at Jan 08, 2004 02:02:48
> Shall we commit it as is for now, and save speed improvements
> for a later round?
Ok.
> >>*************** op ppi_tab[] =
> >>*** 1379,1385 ****
> >> "COMPUTE_OVERFLOW;",
> >> "greater_equal = 0;",
> >> },
> >>! { "","", "pmuls Se,Sf,Dg", "0100eeffxxyygguu",
> >> "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
> >> "if (res == 0x80000000)",
> >> " res = 0x7fffffff;",
> >>--- 1581,1587 ----
> >> "COMPUTE_OVERFLOW;",
> >> "greater_equal = 0;",
> >> },
> >>! { "","", "pmuls Se,Sf,Dg", "0100eeff0000gguu",
> >> "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
> >> "if (res == 0x80000000)",
> >> " res = 0x7fffffff;",
> >
> >
> > According to the sh2-dsp manual that is still at the Renesas web site,
> > the xx / yy fields are still present in the pmuls instruction.
>
> Hmm, well, are they used for anything? I think I took them out to
> resolve a conflict with another insn (but I don't remember for sure).
> Since there's no corresponding register parameter, and the code
> does not use them -- is there any harm? If the other patterns
> are not used now, they probably will be someday.
According to the manual, because of the ignored x,y,u operands, there are
64 valid pmuls opcodes for each e,f,g combination. I can't find anything
in the manual that says that any one of these opcodes is preferred.
If there is a conflict, it appears that the sh4a-dsp is not actually
backward compatible with the sh3-dsp, and we'll need another opcode table
modification depending on bfd_get_mach. OTOH I seem to remember that we
were asked to zero unused fields in the assembler, but that might be just
to get reproducible results. You should probably ask Renesas for
clarification.
>
>
>
> >> printf ("ppi_insn (iword)\n");
> >> printf (" int iword;\n");
> >> printf ("{\n");
> >>+ printf (" /* 'ee' = [x0, x1, y0, a1] (FIXME [x0, x1, a1, m1]) */\n");
> >> printf (" static char e_tab[] = { 8, 9, 10, 5};\n");
> >>+ printf (" /* 'ff' = [y0, y1, x0, a1] (FIXME [y0, y1, a1, m1]) */\n");
> >> printf (" static char f_tab[] = {10, 11, 8, 5};\n");
> >>+ printf (" /* 'xx'(?) = [x0, x1, a0, a1] */\n");
> >> printf (" static char x_tab[] = { 8, 9, 7, 5};\n");
> >>+ printf (" /* 'yy'(?) = [y0, y1, m0, m1] */\n");
> >> printf (" static char y_tab[] = {10, 11, 12, 14};\n");
> >>+ printf (" /* 'gg' = [m0, m1, a0, a1] */\n");
> >> printf (" static char g_tab[] = {12, 14, 7, 5};\n");
> >>+ printf (" /* 'uu' = [x0, y0, a0, a1] (FIXME [m1, x1, a0, a1]) */\n");
> >> printf (" static char u_tab[] = { 8, 10, 7, 5};\n");
> >
> >
> > What are these FIXMEs supposed to mean?
>
> I did this work 4 months ago. Probably I thought the
> comment was wrong, and that the actual set of registers
> was as shown. Your second opinion would be appreciated.
The first part of the comments is right, the FIXMEs are wrong. The
registers are numbered like in the movs instruction which is the same
as in the the Dz parameter, with A1G / A0G having a number 8 higher
than A1 / A0. See also the macros in interp.c after DSR_R.
next prev parent reply other threads:[~2004-01-09 12:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-07 21:56 Michael Snyder
2004-01-07 22:04 ` [RFA] Add sh4a tests to sim/testsuite/sim/sh Michael Snyder
2004-01-08 15:07 ` Joern Rennecke
2004-01-08 22:04 ` Michael Snyder
2004-01-09 13:19 ` Joern Rennecke
2004-01-09 19:47 ` Michael Snyder
2004-01-10 0:46 ` [PATCH] sim/sh whitespace cleanup Michael Snyder
2004-01-13 20:00 ` [OB] fix array size in sh-dis.c Michael Snyder
2004-01-13 23:23 ` Andrew Cagney
2004-01-14 17:14 ` Joern Rennecke
2004-01-08 16:15 ` [RFA] Add sh4a to sh-sim (2nd iteration) Joern Rennecke
2004-01-08 22:02 ` Michael Snyder
2004-01-09 12:37 ` Joern Rennecke [this message]
2004-01-09 19:45 ` Michael Snyder
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=200401091236.i09Caav11621@linsvr1.uk.superh.com \
--to=joern.rennecke@superh.com \
--cc=amylaar@fairadsl.co.uk \
--cc=andrew.stubbs@superh.com \
--cc=gdb-patches@sources.redhat.com \
--cc=msnyder@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