| 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 |