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

Reply via email to