summaryrefslogtreecommitdiffstats
path: root/binutils-2.22/opcodes/rx-decode.opc
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.22/opcodes/rx-decode.opc')
-rw-r--r--binutils-2.22/opcodes/rx-decode.opc18
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_____;