[J-core] Fwd: ISA manual for SH-2
BGB
cr88192 at gmail.com
Fri May 26 07:50:23 EDT 2017
On 5/26/2017 4:01 AM, D. Jeff Dionne wrote:
> On May 26, 2017, at 16:31, Francisco Javier Bizcocho AntĂșnez
> <volkovdablo at gmail.com <mailto:volkovdablo at gmail.com>> wrote:
>
>> Hello all,
>> BGB could you describe a bit more which instructions from SH4 FPU
>> were not used by C compiler?.
>
> I'm not sure what BGB's compiler does with the FPU, but basically
> either GCC or libgcc.a / libm.a likely needs to have the option to use
> basically all of the SH3 and later FPU instructions in order to
> achieve the best possible floating point performance. SH4 also has
> some vector instructions, which are useful for things like signal
> processing, which likely are not easy for a new compiler to use..
>
my comment was actually based on observations from GCC, not on my
compiler (though, I can't say whether this also holds for math code in
the C libraries).
as for which instructions I had seen going unused:
* FIPR, or basically the dot-product of two vectors.
* FTRV, which does a partial matrix multiply.
* FLDI0, FLDI1: which load float constants of 0.0 and 1.0
** I don't actually know why GCC doesn't use them (it seems to always
load them from memory).
** my compiler may use them.
* FMAC: basically does a multiply-accumulate with floats.
** FRn=FRn+FR0*FRm
* FSCHG: inverts FPSCR.SZ
** GCC seems to pretty much never set SZ in my tests
*** though these tests were limited to SH4 in little-endian mode.
similarly, the XF and XD registers were not used by GCC in my tests
(only FRn and DRn).
the FIPR, FTRV, and XF/XD registers were dropped from SH2A.
* the use of these registers also seems to be undefined in the C ABI.
in my FPU+SIMD extensions for my BJX1 extensions:
* XF/XD registers have been partially redubbed as FR16..FR31 and
odd-numbered DRn registers.
* I made them freely usable by normal arithmetic instructions
** (though directly using FR16-FR31 requires use of 32-bit I-forms).
* they are also used in composing vectors.
>> Also I have another question related with the J2 cores. Do you guys
>> think is possible to exchange the SH2 cores present in the Sega
>> Saturn for to FPGAs with J2 cores on them?.
>
> Yes.
>
so they are pin-compatible? interesting.
>> This is due of the lack of JTAG capabilities of the original SH2
>> cores, I want to test if I could use this configuration to develop
>> some software that could run later on retail Sega Saturn machines.
>
> exchange in circuit is a bit hard, you likely want to emulate large
> parts (basically building a functional equivalent) in FPGA. There
> was great interest in doing this by some of the original engineers
> here in Japan, but the project never seems to have gotten off the
> ground (building products for customers with J2 has been a priority).
>
makes sense.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.j-core.org/pipermail/j-core/attachments/20170526/fa608756/attachment-0001.html>
More information about the J-core
mailing list