4 * Copyright (C) 1989-2009 Alan R. Baldwin
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 * ported to the Rabbit2000 by
25 * Ulrich Raich and Razaq Ijoduola
29 * email: Ulrich dot Raich at cern dot ch
33 * Extensions: P. Felber
35 * Altered by Leland Morrison to support rabbit 2000
36 * and rabbit 4000 instruction sets (2011)
63 * Indirect Addressing delimeters
95 * Conditional definitions
107 * Alternate set of conditional definitions for some rabbit 4000 instructions
130 #define S_R32_BCDE 38
131 #define S_R32_JKHL 39
135 #define S_R16AF_ALT 42
150 #define S_IDHL_OFFSET 58
182 * Processor Types (S_CPU)
190 * HD64180 Instructions
200 * Rabbit 2000 / Rabbit 4000 specific Instructions
206 #define X_R3K_MODE 101
210 #define X_R4K_MODE 105
211 /* the remaining instructions are only on Rabbit 4000: */
212 #define X_R4K_MULU 106
222 char a_str
[8]; /* addressing string */
223 int a_val
; /* addressing mode value */
226 /* register names are in rabadr.c: */
227 extern struct adsym R8
[];
228 extern struct adsym R8X
[];
229 extern struct adsym R8IP
[];
230 extern struct adsym R16
[];
231 extern struct adsym R16_ALT
[];
232 extern struct adsym R16AF
[];
233 extern struct adsym R16AF_ALT
[];
235 extern struct adsym R32_JKHL
[];
236 extern struct adsym R32_BCDE
[];
237 extern struct adsym RXPC
[];
239 extern struct adsym CND
[];
240 extern struct adsym ALT_CND
[];
242 /* machine dependent functions */
247 extern int addr(struct expr
*esp
);
248 extern int admode(struct adsym
*sp
);
249 extern int any(char c
, char *str
);
250 extern int srch(char *str
);
254 extern int genop(int pop
, int op
, struct expr
*esp
, int f
);
255 extern int gixiy(int v
);
256 extern int mchpcr(struct expr
*esp
);