OLD | NEW |
1 /* -*- c -*- */ | 1 /* -*- c -*- */ |
| 2 #include "sysdep.h" |
2 #include <stdio.h> | 3 #include <stdio.h> |
3 #include <stdlib.h> | 4 #include <stdlib.h> |
4 #include <string.h> | 5 #include <string.h> |
5 | |
6 #include "config.h" | |
7 #include "ansidecl.h" | 6 #include "ansidecl.h" |
8 #include "opcode/rx.h" | 7 #include "opcode/rx.h" |
9 | 8 |
10 #define RX_OPCODE_BIG_ENDIAN 0 | 9 #define RX_OPCODE_BIG_ENDIAN 0 |
11 | 10 |
12 typedef struct | 11 typedef struct |
13 { | 12 { |
14 RX_Opcode_Decoded * rx; | 13 RX_Opcode_Decoded * rx; |
15 int (* getbyte)(void *); | 14 int (* getbyte)(void *); |
16 void * ptr; | 15 void * ptr; |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 | 254 |
256 /** VARY sz 00 01 10 */ | 255 /** VARY sz 00 01 10 */ |
257 | 256 |
258 /*----------------------------------------------------------------------*/ | 257 /*----------------------------------------------------------------------*/ |
259 /* MOV */ | 258 /* MOV */ |
260 | 259 |
261 /** 0111 0101 0100 rdst mov%s #%1, %0 */ | 260 /** 0111 0101 0100 rdst mov%s #%1, %0 */ |
262 ID(mov); DR(rdst); SC(IMM (1)); F_____; | 261 ID(mov); DR(rdst); SC(IMM (1)); F_____; |
263 | 262 |
264 /** 1111 10sd rdst im sz mov%s #%1, %0 */ | 263 /** 1111 10sd rdst im sz mov%s #%1, %0 */ |
265 ID(mov); sBWL (sz); DD(sd, rdst, sz); SC(IMMex(im)); F_____; | 264 ID(mov); DD(sd, rdst, sz); |
| 265 if ((im == 1 && sz == 0) |
| 266 || (im == 2 && sz == 1) |
| 267 || (im == 0 && sz == 2)) |
| 268 { |
| 269 BWL (sz); |
| 270 SC(IMM(im)); |
| 271 } |
| 272 else |
| 273 { |
| 274 sBWL (sz); |
| 275 SC(IMMex(im)); |
| 276 } |
| 277 F_____; |
266 | 278 |
267 /** 0110 0110 immm rdst mov%s #%1, %0 */ | 279 /** 0110 0110 immm rdst mov%s #%1, %0 */ |
268 ID(mov); DR(rdst); SC(immm); F_____; | 280 ID(mov); DR(rdst); SC(immm); F_____; |
269 | 281 |
270 /** 0011 11sz d dst sppp mov%s #%1, %0 */ | 282 /** 0011 11sz d dst sppp mov%s #%1, %0 */ |
271 ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F_____; | 283 ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F_____; |
272 | 284 |
273 /** 11sz sd ss rsrc rdst mov%s %1, %0 */ | 285 /** 11sz sd ss rsrc rdst mov%s %1, %0 */ |
274 if (ss == 3 && sz == 2 && rsrc == 0 && rdst == 0) | 286 if (ss == 3 && sz == 2 && rsrc == 0 && rdst == 0) |
275 { | 287 { |
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
954 /*----------------------------------------------------------------------*/ | 966 /*----------------------------------------------------------------------*/ |
955 /* SCcnd */ | 967 /* SCcnd */ |
956 | 968 |
957 /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ | 969 /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ |
958 ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); | 970 ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); |
959 | 971 |
960 /** */ | 972 /** */ |
961 | 973 |
962 return rx->n_bytes; | 974 return rx->n_bytes; |
963 } | 975 } |
OLD | NEW |