I did have a look at mips-opc.c in binutils, this looks easy to parse, I
will give this a try, thank you for the hint!
I will come back to you with a 2nd version, looks like a nice task to
complete while sitting in the train....
Michael
Am 17.06.13 08:12, schrieb Sergei Gorelkin:
16.06.2013 22:17, Michael Ring пишет:
I have now browsed through the current mips documentation and have
created a file that includes all
opcodes, the version they are first in (starting with mips32) and a
small comment what the mnemonic
does.
This file is attached to this mail.
The problem here is that MIPS32 is not the first, but fifth version of
MIPS instruction sets, preceded by MIPS I, MIPS II, MIPS III and MIPS
IV. Currently there is no separation between instructions sets in
compiler sources, but they need to appear one day. MIPS32
documentation is not correct in this respect, as it says e.g. that ADD
is first supported by MIPS32, while it is actually MIPS I instruction.
The most accurate source is probably the GNU Opcode library, which is
part of binutils.
Out of this file it is easy to create both compiler/mips/strinst.inc
and compiler/mips/opcode.inc.
Now I am looking for additional lines that I will need to add to this
file, to find out what is
necessary I have created a list of mnemonics that exist only in the
original opcode.inc file (see
later)
there are a number of entries in the form xxx64xxx and xxx32, xxxg
and dxxx, all those do not seem
to be valid for mips32 & up, where do those come from and which of
those do I need to add?
xxx64xxx and xxxg are likely subject for removal, I've no idea where
they came from. dxxx and xxx32 are MIPS III instructions, as well as
sdr,sdl,lwu and alike. A lot of other stuff (la, li, neg, mulo, seq,
etc.) are macros that are expanded into several instructions.
There's one very strange entry in opcode.inc: 'b '
there is also 'b', is it necessary to have 'b ' ?
The codegenerator and optimizer expect conditional and unconditional
branches to have distinct opcodes, this strange construction provides
that.
Regards,
Sergei
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel