2 |
7u83 |
1 |
/*
|
|
|
2 |
Crown Copyright (c) 1997
|
|
|
3 |
|
|
|
4 |
This TenDRA(r) Computer Program is subject to Copyright
|
|
|
5 |
owned by the United Kingdom Secretary of State for Defence
|
|
|
6 |
acting through the Defence Evaluation and Research Agency
|
|
|
7 |
(DERA). It is made available to Recipients with a
|
|
|
8 |
royalty-free licence for its use, reproduction, transfer
|
|
|
9 |
to other parties and amendment for any purpose not excluding
|
|
|
10 |
product development provided that any such use et cetera
|
|
|
11 |
shall be deemed to be acceptance of the following conditions:-
|
|
|
12 |
|
|
|
13 |
(1) Its Recipients shall ensure that this Notice is
|
|
|
14 |
reproduced upon any copies or amended versions of it;
|
|
|
15 |
|
|
|
16 |
(2) Any amended version of it shall be clearly marked to
|
|
|
17 |
show both the nature of and the organisation responsible
|
|
|
18 |
for the relevant amendment or amendments;
|
|
|
19 |
|
|
|
20 |
(3) Its onward transfer from a recipient to another
|
|
|
21 |
party shall be deemed to be that party's acceptance of
|
|
|
22 |
these conditions;
|
|
|
23 |
|
|
|
24 |
(4) DERA gives no warranty or assurance as to its
|
|
|
25 |
quality or suitability for any purpose and DERA accepts
|
|
|
26 |
no liability whatsoever in relation to any use to which
|
|
|
27 |
it may be put.
|
|
|
28 |
*/
|
|
|
29 |
|
|
|
30 |
|
|
|
31 |
/**********************************************************************
|
|
|
32 |
$Author: release $
|
|
|
33 |
$Date: 1998/01/17 15:56:06 $
|
|
|
34 |
$Revision: 1.1.1.1 $
|
|
|
35 |
$Log: mips_ins.c,v $
|
|
|
36 |
* Revision 1.1.1.1 1998/01/17 15:56:06 release
|
|
|
37 |
* First version to be checked into rolling release.
|
|
|
38 |
*
|
|
|
39 |
* Revision 1.1 1995/04/13 09:08:06 currie
|
|
|
40 |
* Initial revision
|
|
|
41 |
*
|
|
|
42 |
***********************************************************************/
|
|
|
43 |
/*****************************************************************
|
|
|
44 |
mips_ins.c
|
|
|
45 |
|
|
|
46 |
This file defines the MIPS instruction set as C strings for use by assembler
|
|
|
47 |
producing routines such as make_code.
|
|
|
48 |
Each MIPS instruction is a unique string starting with i_ using MIPS
|
|
|
49 |
names with . replaced by _
|
|
|
50 |
The first character of each string is ( binasm coding +1) for the instruction
|
|
|
51 |
|
|
|
52 |
*****************************************************************/
|
|
|
53 |
|
|
|
54 |
#include "config.h"
|
|
|
55 |
#include "mips_ins.h"
|
|
|
56 |
|
|
|
57 |
char *i_la = "\45la";
|
|
|
58 |
char *i_lb = "\46lb";
|
|
|
59 |
char *i_lbu = "\47lbu";
|
|
|
60 |
char *i_lh = "\50lh";
|
|
|
61 |
char *i_lhu = "\51lhu";
|
|
|
62 |
char *i_lw = "\53lw";
|
|
|
63 |
char *i_lwc1 = "\55lwc1";
|
|
|
64 |
char *i_lwl = "\134lwl";
|
|
|
65 |
char *i_sb = "\107sb";
|
|
|
66 |
char *i_sh = "\115sh";
|
|
|
67 |
char *i_sw = "\130sw";
|
|
|
68 |
char *i_swc1 = "\64swc1";
|
|
|
69 |
char *i_swl = "\136swl";
|
|
|
70 |
char *i_swr = "\137swr";
|
|
|
71 |
char *i_ulh = "\320ulh";
|
|
|
72 |
char *i_ulhu = "\321ulhu";
|
|
|
73 |
char *i_ulw = "\317ulw";
|
|
|
74 |
char *i_ush = "\323ush";
|
|
|
75 |
char *i_usw = "\322usw";
|
|
|
76 |
char *i_rfe = "\104rfe";
|
|
|
77 |
char *i_syscall = "\131syscall";
|
|
|
78 |
char *i_break = "\34break";
|
|
|
79 |
char *i_nop = "\77nop";
|
|
|
80 |
char *i_li = "\52li";
|
|
|
81 |
char *i_lui = "\316lui";
|
|
|
82 |
char *i_abs = "\1abs";
|
|
|
83 |
char *i_neg = "\76neg";
|
|
|
84 |
char *i_negu = "\334negu";
|
|
|
85 |
char *i_not = "\133not";
|
|
|
86 |
char *i_add = "\2add";
|
|
|
87 |
char *i_addu = "\3addu";
|
|
|
88 |
char *i_and = "\4and";
|
|
|
89 |
char *i_div = "\41div";
|
|
|
90 |
char *i_divu = "\42divu";
|
|
|
91 |
char *i_xor = "\132xor";
|
|
|
92 |
char *i_mul = "\71mul";
|
|
|
93 |
char *i_mulo = "\72mulo";
|
|
|
94 |
char *i_mulou = "\73mulou";
|
|
|
95 |
char *i_nor = "\100nor";
|
|
|
96 |
char *i_or = "\101or";
|
|
|
97 |
char *i_rem = "\102rem";
|
|
|
98 |
char *i_remu = "\103remu";
|
|
|
99 |
char *i_rol = "\105rol";
|
|
|
100 |
char *i_ror = "\106ror";
|
|
|
101 |
char *i_seq = "\110seq";
|
|
|
102 |
char *i_slt = "\121slt";
|
|
|
103 |
char *i_sltu = "\122sltu";
|
|
|
104 |
char *i_sle = "\116sle";
|
|
|
105 |
char *i_sleu = "\117sleu";
|
|
|
106 |
char *i_sgt = "\113sgt";
|
|
|
107 |
char *i_sgtu = "\114sgtu";
|
|
|
108 |
char *i_sge = "\111sge";
|
|
|
109 |
char *i_sgeu = "\112sgeu";
|
|
|
110 |
char *i_sne = "\123sne";
|
|
|
111 |
char *i_sll = "\120sll";
|
|
|
112 |
char *i_sra = "\124sra";
|
|
|
113 |
char *i_srl = "\125srl";
|
|
|
114 |
char *i_sub = "\126sub";
|
|
|
115 |
char *i_subu = "\127subu";
|
|
|
116 |
char *i_mult = "\74mult";
|
|
|
117 |
char *i_multu = "\75multu";
|
|
|
118 |
char *i_b = "\5b";
|
|
|
119 |
char *i_bc1t = "\11bc1t";
|
|
|
120 |
char *i_bc1f = "\10bc1f";
|
|
|
121 |
char *i_beq = "\16beq";
|
|
|
122 |
char *i_bgt = "\22bgt";
|
|
|
123 |
char *i_bge = "\17bge";
|
|
|
124 |
char *i_bgeu = "\20bgeu";
|
|
|
125 |
char *i_bgtu = "\23bgtu";
|
|
|
126 |
char *i_blt = "\30blt";
|
|
|
127 |
char *i_bltu = "\31bltu";
|
|
|
128 |
char *i_ble = "\25ble";
|
|
|
129 |
char *i_bleu = "\26bleu";
|
|
|
130 |
char *i_bne = "\33bne";
|
|
|
131 |
char *i_bal = "\344bal";
|
|
|
132 |
char *i_beqz = "\335beqz";
|
|
|
133 |
char *i_bgez = "\21bgez";
|
|
|
134 |
char *i_bgezal = "\345bgezal";
|
|
|
135 |
char *i_bgtz = "\24bgtz";
|
|
|
136 |
char *i_blez = "\27blez";
|
|
|
137 |
char *i_bltz = "\32bltz";
|
|
|
138 |
char *i_bltzal = "\346bltzal";
|
|
|
139 |
char *i_bnez = "\336bnez";
|
|
|
140 |
char *i_j = "\43j";
|
|
|
141 |
char *i_jal = "\44jal";
|
|
|
142 |
char *i_move = "\62move";
|
|
|
143 |
char *i_mfhi = "\60mfhi";
|
|
|
144 |
char *i_mthi = "\67mthi";
|
|
|
145 |
char *i_mflo = "\61mflo";
|
|
|
146 |
char *i_mfc1 = "\142mfc1";
|
|
|
147 |
char *i_mtc1 = "\146mtc1";
|
|
|
148 |
char *i_cfc1 = "\342cfc1";
|
|
|
149 |
char *i_ctc1 = "\343ctc1";
|
|
|
150 |
char *i_l_d = "\170l.d";
|
|
|
151 |
char *i_l_s = "\167l.s";
|
|
|
152 |
char *i_s_d = "\173s.d";
|
|
|
153 |
char *i_s_s = "\172s.s";
|
|
|
154 |
char *i_mov_s = "\214mov.s";
|
|
|
155 |
char *i_mov_d = "\215mov.d";
|
|
|
156 |
char *i_abs_d = "\220abs.d";
|
|
|
157 |
char *i_abs_s = "\217abs.s";
|
|
|
158 |
char *i_add_d = "\176add.d";
|
|
|
159 |
char *i_add_s = "\175add.s";
|
|
|
160 |
char *i_div_s = "\206div.s";
|
|
|
161 |
char *i_div_d = "\207div.d";
|
|
|
162 |
char *i_mul_d = "\204mul.d";
|
|
|
163 |
char *i_mul_s = "\203mul.s";
|
|
|
164 |
char *i_sub_d = "\201sub.d";
|
|
|
165 |
char *i_sub_s = "\200sub.s";
|
|
|
166 |
char *i_cvt_s_d = "\222cvt.s.d";
|
|
|
167 |
char *i_cvt_d_s = "\225cvt.d.s";
|
|
|
168 |
char *i_cvt_s_w = "\224cvt.s.w";
|
|
|
169 |
char *i_cvt_d_w = "\227cvt.d.w";
|
|
|
170 |
char *i_cvt_w_d = "\234cvt.w.d";
|
|
|
171 |
char *i_cvt_w_s = "\233cvt.w.s";
|
|
|
172 |
char *i_neg_d = "\340neg.d";
|
|
|
173 |
char *i_neg_s = "\337neg.s";
|
|
|
174 |
char *i_c_eq_s = "\244c.eq.s";
|
|
|
175 |
char *i_c_eq_d = "\245c.eq.d";
|
|
|
176 |
char *i_c_lt_s = "\302c.lt.s";
|
|
|
177 |
char *i_c_lt_d = "\303c.lt.d";
|
|
|
178 |
char *i_c_le_s = "\310c.le.s";
|
|
|
179 |
char *i_c_le_d = "\311c.le.d";
|
|
|
180 |
|
|
|
181 |
char *i_trunc_w_s = "\351trunc.w.s";
|
|
|
182 |
char *i_trunc_w_d = "\352trunc.w.d";
|
|
|
183 |
char *i_round_w_s = "\354round.w.s";
|
|
|
184 |
char *i_round_w_d = "\355round.w.d";
|