diff options
Diffstat (limited to 'binutils-2.22/opcodes/rx-decode.opc')
-rw-r--r-- | binutils-2.22/opcodes/rx-decode.opc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/binutils-2.22/opcodes/rx-decode.opc b/binutils-2.22/opcodes/rx-decode.opc index a426b86..27ff5d4 100644 --- a/binutils-2.22/opcodes/rx-decode.opc +++ b/binutils-2.22/opcodes/rx-decode.opc @@ -1,9 +1,8 @@ /* -*- c -*- */ +#include "sysdep.h" #include <stdio.h> #include <stdlib.h> #include <string.h> - -#include "config.h" #include "ansidecl.h" #include "opcode/rx.h" @@ -262,7 +261,20 @@ rx_decode_opcode (unsigned long pc AU, ID(mov); DR(rdst); SC(IMM (1)); F_____; /** 1111 10sd rdst im sz mov%s #%1, %0 */ - ID(mov); sBWL (sz); DD(sd, rdst, sz); SC(IMMex(im)); F_____; + ID(mov); DD(sd, rdst, sz); + if ((im == 1 && sz == 0) + || (im == 2 && sz == 1) + || (im == 0 && sz == 2)) + { + BWL (sz); + SC(IMM(im)); + } + else + { + sBWL (sz); + SC(IMMex(im)); + } + F_____; /** 0110 0110 immm rdst mov%s #%1, %0 */ ID(mov); DR(rdst); SC(immm); F_____; |