+2  A: 

I can only partially answer the question: I'd recommend See MIPS Run by Dominic Sweetman, if you're not already referring to it. I have the first edition of the book, the second edition is now current.

  • table 8.2 lists each opcode and expected behavior, differentiating assembler macros and listing the instructions they decompose to. Unfortunately it does not differentiate user vs kernel mode.
  • table 8.6 lists the ISA level where each instruction was introduced, including obscure variants like the LSI MiniRISC
  • syscall is present in the table, though lacking much description

The first edition mentions the kernel. supervisor, and user privilege levels but does not discuss what operations are allowed in each. I do not know what changes were made in the second edition.

DGentry
Thank you, Denton! This is the best MIPS book ever... unfortunately it's very in-demand from the university library :-( Hopefully I'll be able to make some photocopies when I can get it checked out.
Dan
+2  A: 

Doesn't include instruction descriptions, but the source of the GNU assembler is probably as detailed as you can get regarding what instructions are available on what specific CPUs.

Get binutils and look at opcodes/mips-*.c

Dan
A: 

This Web site describes the MIPS instruction set and their encoding. I don't think it is complete though.

The MIPS web site also has technical documents about the various cores.
For example, I downloaded the manual for the MIPS 4KE core (document #MD00103) "MIPS32® 4KE™ Processor Core Family Software User’s Manual" and chapter 10 contains a detailed description of the Instruction Set. Note that you have to register to access the documents.

Benoit
Yeah, unfortunately that one seems to only describe the limited subset offered by the SPIM simulator.
Dan
+4  A: 

Okay, I found something!

MIPS offers a set of "MIPS 32 reference manuals" which refer to the latest, standardized instruction set (MIPS32v2): here

These include just about everything, except the information about which version the instructions originated in :-(

WAIT A SEC...

This class website at Cornell includes links to what appears to be the same manual, but is in fact an older version of it, and volume 2 of that older version does in fact include information about when the instructions where first introduced. Woohoo!

Why would MIPS remove this information from the revised documentation? There doesn't seem to be any explanation in the revision history.

Dan
That's cool, but be aware that MIPS32R2 does not encompass all the variants that have gone before.