Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

mipssim.h File Reference

#include "copyright.h"

Go to the source code of this file.

Compounds

struct  OpInfo
 Internal data structures for simulating the MIPS instruction set. More...

struct  OpString
 Stuff to help print out each instruction, for debugging. More...


Defines

#define OP_ADD   1
#define OP_ADDI   2
#define OP_ADDIU   3
#define OP_ADDU   4
#define OP_AND   5
#define OP_ANDI   6
#define OP_BEQ   7
#define OP_BGEZ   8
#define OP_BGEZAL   9
#define OP_BGTZ   10
#define OP_BLEZ   11
#define OP_BLTZ   12
#define OP_BLTZAL   13
#define OP_BNE   14
#define OP_DIV   16
#define OP_DIVU   17
#define OP_J   18
#define OP_JAL   19
#define OP_JALR   20
#define OP_JR   21
#define OP_LB   22
#define OP_LBU   23
#define OP_LH   24
#define OP_LHU   25
#define OP_LUI   26
#define OP_LW   27
#define OP_LWL   28
#define OP_LWR   29
#define OP_MFHI   31
#define OP_MFLO   32
#define OP_MTHI   34
#define OP_MTLO   35
#define OP_MULT   36
#define OP_MULTU   37
#define OP_NOR   38
#define OP_OR   39
#define OP_ORI   40
#define OP_RFE   41
#define OP_SB   42
#define OP_SH   43
#define OP_SLL   44
#define OP_SLLV   45
#define OP_SLT   46
#define OP_SLTI   47
#define OP_SLTIU   48
#define OP_SLTU   49
#define OP_SRA   50
#define OP_SRAV   51
#define OP_SRL   52
#define OP_SRLV   53
#define OP_SUB   54
#define OP_SUBU   55
#define OP_SW   56
#define OP_SWL   57
#define OP_SWR   58
#define OP_XOR   59
#define OP_XORI   60
#define OP_SYSCALL   61
#define OP_UNIMP   62
#define OP_RES   63
#define MaxOpcode   63
#define IndexToAddr(x)   ((x) << 2)
#define SIGN_BIT   0x80000000
#define R31   31
#define SPECIAL   100
#define BCOND   101
#define IFMT   1
#define JFMT   2
#define RFMT   3

Enumerations

enum  RegType {
  NONE, RS, RT, RD,
  EXTRA
}
 Stuff to help print out each instruction, for debugging. More...


Variables

OpInfo opTable []
int specialTable []
struct OpString opStrings []


Define Documentation

#define BCOND   101
 

Definition at line 102 of file mipssim.h.

#define IFMT   1
 

Definition at line 104 of file mipssim.h.

#define IndexToAddr( x )   ((x) << 2)
 

Definition at line 94 of file mipssim.h.

Referenced by Machine::OneInstruction().

#define JFMT   2
 

Definition at line 105 of file mipssim.h.

#define MaxOpcode   63
 

Definition at line 88 of file mipssim.h.

#define OP_ADD   1
 

Definition at line 25 of file mipssim.h.

#define OP_ADDI   2
 

Definition at line 26 of file mipssim.h.

#define OP_ADDIU   3
 

Definition at line 27 of file mipssim.h.

#define OP_ADDU   4
 

Definition at line 28 of file mipssim.h.

#define OP_AND   5
 

Definition at line 29 of file mipssim.h.

#define OP_ANDI   6
 

Definition at line 30 of file mipssim.h.

#define OP_BEQ   7
 

Definition at line 31 of file mipssim.h.

#define OP_BGEZ   8
 

Definition at line 32 of file mipssim.h.

#define OP_BGEZAL   9
 

Definition at line 33 of file mipssim.h.

#define OP_BGTZ   10
 

Definition at line 34 of file mipssim.h.

#define OP_BLEZ   11
 

Definition at line 35 of file mipssim.h.

#define OP_BLTZ   12
 

Definition at line 36 of file mipssim.h.

#define OP_BLTZAL   13
 

Definition at line 37 of file mipssim.h.

#define OP_BNE   14
 

Definition at line 38 of file mipssim.h.

#define OP_DIV   16
 

Definition at line 40 of file mipssim.h.

#define OP_DIVU   17
 

Definition at line 41 of file mipssim.h.

#define OP_J   18
 

Definition at line 42 of file mipssim.h.

#define OP_JAL   19
 

Definition at line 43 of file mipssim.h.

#define OP_JALR   20
 

Definition at line 44 of file mipssim.h.

#define OP_JR   21
 

Definition at line 45 of file mipssim.h.

#define OP_LB   22
 

Definition at line 46 of file mipssim.h.

#define OP_LBU   23
 

Definition at line 47 of file mipssim.h.

#define OP_LH   24
 

Definition at line 48 of file mipssim.h.

#define OP_LHU   25
 

Definition at line 49 of file mipssim.h.

#define OP_LUI   26
 

Definition at line 50 of file mipssim.h.

#define OP_LW   27
 

Definition at line 51 of file mipssim.h.

#define OP_LWL   28
 

Definition at line 52 of file mipssim.h.

#define OP_LWR   29
 

Definition at line 53 of file mipssim.h.

#define OP_MFHI   31
 

Definition at line 55 of file mipssim.h.

#define OP_MFLO   32
 

Definition at line 56 of file mipssim.h.

#define OP_MTHI   34
 

Definition at line 58 of file mipssim.h.

#define OP_MTLO   35
 

Definition at line 59 of file mipssim.h.

#define OP_MULT   36
 

Definition at line 60 of file mipssim.h.

#define OP_MULTU   37
 

Definition at line 61 of file mipssim.h.

#define OP_NOR   38
 

Definition at line 62 of file mipssim.h.

#define OP_OR   39
 

Definition at line 63 of file mipssim.h.

#define OP_ORI   40
 

Definition at line 64 of file mipssim.h.

#define OP_RES   63
 

Definition at line 87 of file mipssim.h.

#define OP_RFE   41
 

Definition at line 65 of file mipssim.h.

#define OP_SB   42
 

Definition at line 66 of file mipssim.h.

#define OP_SH   43
 

Definition at line 67 of file mipssim.h.

#define OP_SLL   44
 

Definition at line 68 of file mipssim.h.

#define OP_SLLV   45
 

Definition at line 69 of file mipssim.h.

#define OP_SLT   46
 

Definition at line 70 of file mipssim.h.

#define OP_SLTI   47
 

Definition at line 71 of file mipssim.h.

#define OP_SLTIU   48
 

Definition at line 72 of file mipssim.h.

#define OP_SLTU   49
 

Definition at line 73 of file mipssim.h.

#define OP_SRA   50
 

Definition at line 74 of file mipssim.h.

#define OP_SRAV   51
 

Definition at line 75 of file mipssim.h.

#define OP_SRL   52
 

Definition at line 76 of file mipssim.h.

#define OP_SRLV   53
 

Definition at line 77 of file mipssim.h.

#define OP_SUB   54
 

Definition at line 78 of file mipssim.h.

#define OP_SUBU   55
 

Definition at line 79 of file mipssim.h.

#define OP_SW   56
 

Definition at line 80 of file mipssim.h.

#define OP_SWL   57
 

Definition at line 81 of file mipssim.h.

#define OP_SWR   58
 

Definition at line 82 of file mipssim.h.

#define OP_SYSCALL   61
 

Definition at line 85 of file mipssim.h.

#define OP_UNIMP   62
 

Definition at line 86 of file mipssim.h.

#define OP_XOR   59
 

Definition at line 83 of file mipssim.h.

#define OP_XORI   60
 

Definition at line 84 of file mipssim.h.

#define R31   31
 

Definition at line 97 of file mipssim.h.

#define RFMT   3
 

Definition at line 106 of file mipssim.h.

#define SIGN_BIT   0x80000000
 

Definition at line 96 of file mipssim.h.

#define SPECIAL   100
 

Definition at line 101 of file mipssim.h.


Enumeration Type Documentation

enum RegType
 

Stuff to help print out each instruction, for debugging.

Enumeration values:
NONE  
RS  
RT  
RD  
EXTRA  

Definition at line 158 of file mipssim.h.


Variable Documentation

struct OpString opStrings [static]
 

Definition at line 167 of file mipssim.h.

OpInfo opTable [static]
 

Initial value:

 {
    {SPECIAL, RFMT}, {BCOND, IFMT}, {OP_J, JFMT}, {OP_JAL, JFMT},
    {OP_BEQ, IFMT}, {OP_BNE, IFMT}, {OP_BLEZ, IFMT}, {OP_BGTZ, IFMT},
    {OP_ADDI, IFMT}, {OP_ADDIU, IFMT}, {OP_SLTI, IFMT}, {OP_SLTIU, IFMT},
    {OP_ANDI, IFMT}, {OP_ORI, IFMT}, {OP_XORI, IFMT}, {OP_LUI, IFMT},
    {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT},
    {OP_LB, IFMT}, {OP_LH, IFMT}, {OP_LWL, IFMT}, {OP_LW, IFMT},
    {OP_LBU, IFMT}, {OP_LHU, IFMT}, {OP_LWR, IFMT}, {OP_RES, IFMT},
    {OP_SB, IFMT}, {OP_SH, IFMT}, {OP_SWL, IFMT}, {OP_SW, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_SWR, IFMT}, {OP_RES, IFMT},
    {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT},
    {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT}, {OP_UNIMP, IFMT},
    {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}, {OP_RES, IFMT}
}
The table is used to translate bits 31:26 of the instruction into a value suitable for the "opCode" field of a MemWord structure, or into a special value for further decoding.

Definition at line 120 of file mipssim.h.

int specialTable [static]
 

Initial value:

 {
    OP_SLL, OP_RES, OP_SRL, OP_SRA, OP_SLLV, OP_RES, OP_SRLV, OP_SRAV,
    OP_JR, OP_JALR, OP_RES, OP_RES, OP_SYSCALL, OP_UNIMP, OP_RES, OP_RES,
    OP_MFHI, OP_MTHI, OP_MFLO, OP_MTLO, OP_RES, OP_RES, OP_RES, OP_RES,
    OP_MULT, OP_MULTU, OP_DIV, OP_DIVU, OP_RES, OP_RES, OP_RES, OP_RES,
    OP_ADD, OP_ADDU, OP_SUB, OP_SUBU, OP_AND, OP_OR, OP_XOR, OP_NOR,
    OP_RES, OP_RES, OP_SLT, OP_SLTU, OP_RES, OP_RES, OP_RES, OP_RES,
    OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES,
    OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES, OP_RES
}
The table is used to convert the "funct" field of SPECIAL instructions into the "opCode" field of a MemWord.

Definition at line 144 of file mipssim.h.


Generated at Wed Jul 4 11:32:22 2001 for Nachos by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001