Index: opcodes/rx-decode.opc |
diff --git a/opcodes/rx-decode.opc b/opcodes/rx-decode.opc |
index a426b86416a0d1c415abbd222591a2a7320272e5..27ff5d43b457448683a268381738f9f9ac568144 100644 |
--- a/opcodes/rx-decode.opc |
+++ b/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_____; |