-
Notifications
You must be signed in to change notification settings - Fork 0
/
instruction_set.c
132 lines (116 loc) · 2.26 KB
/
instruction_set.c
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "definitions.h"
bool isRFinstr(char instr[])
{
if(!strcmp(instr, "ADDD") || !strcmp(instr, "SUBD") ||!strcmp(instr, "MULTD") ||!strcmp(instr, "DIVD") )
return true;
return false;
}
bool isRRinstr(char instr[])
{
if( !strcmp(instr, "SGTI") )
return true;
return false;
}
bool isSDinstr(char instr[])
{
if(!strcmp(instr, "SD"))
return true;
return false;
}
bool isLDinstr(char instr[])
{
if(!strcmp(instr, "LD"))
return true;
return false;
}
bool isIinstr(char instr[])
{
if(!strcmp(instr, "ADDI"))
return true;
return false;
}
bool isBinstr(char instr[])
{
if(!strcmp(instr, "BEQZ"))
return true;
return false;
}
bool isRFinstrE(cmdEnum instr)
{
if((instr == ADDD) || (instr == SUBD) || (instr == MULTD) || (instr == DIVD) )
return true;
return false;
}
bool isRRinstrE(cmdEnum instr)
{
if( instr == SGTI )
return true;
return false;
}
bool isSDinstrE(cmdEnum instr)
{
if(instr == SD )
return true;
return false;
}
bool isLDinstrE(cmdEnum instr)
{
if(instr == LD)
return true;
return false;
}
bool isIinstrE(cmdEnum instr)
{
if(instr == ADDI)
return true;
return false;
}
bool isBinstrE(cmdEnum instr)
{
if(instr == BEQZ)
return true;
return false;
}
char * getCmdStr(cmdEnum cmdenum)
{
if(cmdenum == ADDD)
return "ADDD";
else if (cmdenum == SUBD)
return "SUBD";
else if (cmdenum == MULTD)
return "MULTD";
else if (cmdenum == DIVD)
return "DIVD";
else if (cmdenum == ADDI)
return "ADDI";
else if (cmdenum == BEQZ)
return "BEQZ";
else if (cmdenum == SGTI)
return "SGTI";
else if (cmdenum == SD)
return "SD";
else if (cmdenum == LD)
return "LD";
return "Undef";
}
cmdEnum getCmdEnum(char instr[])
{
if(!strcmp(instr, "ADDD"))
return ADDD;
else if (!strcmp(instr, "SUBD"))
return SUBD;
else if (!strcmp(instr, "MULTD"))
return MULTD;
else if (!strcmp(instr, "DIVD"))
return DIVD;
else if (!strcmp(instr, "ADDI"))
return ADDI;
else if (!strcmp(instr, "BEQZ"))
return BEQZ;
else if (!strcmp(instr, "SGTI"))
return SGTI;
else if (!strcmp(instr, "SD"))
return SD;
else if (!strcmp(instr, "LD"))
return LD;
}