OpenCores
URL https://opencores.org/ocsvn/scarm/scarm/trunk

Subversion Repositories scarm

[/] [scarm/] [trunk/] [src/] [scMRT.cpp] - Blame information for rev 5

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 zhong
// scMRT.cpp: implementation of the scMRT class.
2
//
3
//////////////////////////////////////////////////////////////////////
4
 
5
#include "scMRT.h"
6
 
7
//////////////////////////////////////////////////////////////////////
8
// Construction/Destruction
9
//////////////////////////////////////////////////////////////////////
10
 
11
scMRT::scMRT(uint32_t i)
12
{
13
  ir.list=i;
14
  ir.rn=i>>16;
15
  ir.ls=i>>20;
16
  ir.wb=i>>21;
17
  ir.s=i>>22;
18
  ir.u=i>>23;
19
  ir.p=i>>24;
20
  ir.pad=i>>25;
21
  ir.cond=i>>28;
22
}
23
 
24
scMRT::~scMRT()
25
{
26
 
27
}
28
const char* scMRT::kind_string_l="LDM";
29
const char* scMRT::kind_string_s="STM";
30
const char* scMRT::kind()
31
{
32
  if(ir.ls==0)
33
  return kind_string_s;
34
  else   return kind_string_l;
35
}
36
 
37
bool scMRT::is_ls()
38
{
39
  return true;
40
}
41
 
42
bool scMRT::is_mult()
43
{
44
 return false;
45
}
46
 
47
bool scMRT::is_rs()
48
{
49
 return false;
50
}
51
 
52
bool scMRT::is_word()
53
{
54
 return true;
55
}
56
 
57
bool scMRT::is_shift()
58
{
59
 return false;
60
}
61
 
62
uint32_t scMRT::A()
63
{
64
 return ir.rn;
65
}
66
 
67
uint32_t scMRT::B()
68
{
69
 return 0;
70
}
71
 
72
COND scMRT::cond()
73
{
74
 return COND(ir.cond);
75
 
76
}
77
 
78
bool scMRT::pre()
79
{
80
  return ir.p;
81
}
82
 
83
OPCODE scMRT::op()
84
{
85
 
86
        return OP_ADD;
87
 
88
}
89
 
90
bool scMRT::wb()
91
{
92
  return ir.wb;
93
}
94
 
95
bool scMRT::is_imm()
96
{
97
 return true;
98
}
99
 
100
SHIFT scMRT::shift_type()
101
{
102
  return SHIFT(0);
103
}
104
 
105
REGS scMRT::Rd()
106
{
107
  return REGS(0);
108
}
109
 
110
uint32_t scMRT::dist()
111
{
112
  return ir.list;
113
}
114
 
115
bool scMRT::load()
116
{
117
  return ir.ls;
118
}
119
 
120
REGS scMRT::Rn()
121
{
122
  return REGS(ir.rn);
123
}
124
 
125
bool scMRT::is_branch()
126
{
127
 return false;
128
}
129
 
130
bool scMRT::set()
131
{
132
  return ir.s;
133
}
134
bool scMRT::is_mrt()
135
{
136
  return true;
137
}
138
 
139
bool scMRT::up()
140
{
141
  return ir.u;
142
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.