summaryrefslogtreecommitdiff
path: root/arch/mips/isa/bitfields.isa
blob: eb917595c85c0820c43132159fc007347ebd7a86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// -*- mode:c++ -*-

////////////////////////////////////////////////////////////////////
//
// Bitfield definitions.
//

def bitfield OPCODE     <31:26>;
def bitfield OPCODE_HI  <31:29>;
def bitfield OPCODE_LO  <28:26>;

def bitfield REGIMM      <20:16>;
def bitfield REGIMM_HI   <20:19>;
def bitfield REGIMM_LO   <18:16>;

def bitfield FUNCTION      < 5: 0>;
def bitfield FUNCTION_HI   < 5: 3>;
def bitfield FUNCTION_LO   < 2: 0>;

// Integer operate format
def bitfield RT	      <20:16>;
def bitfield RT_HI    <20:19>;
def bitfield RT_LO    <18:16>;

def bitfield RS	      <25:21>;
def bitfield RS_MSB   <25:25>;
def bitfield RS_HI    <25:24>;
def bitfield RS_LO    <23:21>;
def bitfield RS_SRL    <25:22>;

def bitfield RD	      <15:11>;

def bitfield INTIMM	<15: 0>; // integer immediate (literal)

// Floating-point operate format
def bitfield FMT      <25:21>;
def bitfield FR       <25:21>;
def bitfield FT	      <20:16>;
def bitfield FS	      <15:11>;
def bitfield FD	      <10:6>;

def bitfield CC       <20:18>;
def bitfield ND       <17:17>;
def bitfield TF       <16:16>;
def bitfield MOVCI    <16:16>;
def bitfield MOVCF    <16:16>;
def bitfield SRL      <21:21>;
def bitfield SRLV     < 6: 6>;
def bitfield SA       <10: 6>;

// CP0 Register Select
def bitfield SEL       < 2: 0>;

// Interrupts
def bitfield SC       < 5: 5>;

// Branch format
def bitfield OFFSET <15: 0>; // displacement

// Jmp format
def bitfield JMPTARG	<25: 0>;
def bitfield HINT	<10: 6>;

def bitfield SYSCALLCODE <25: 6>;
def bitfield TRAPCODE    <15:13>;

// M5 instructions
def bitfield M5FUNC <7:0>;