aboutsummaryrefslogtreecommitdiff
path: root/sim/m32c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/m32c')
-rw-r--r--sim/m32c/ChangeLog5
-rw-r--r--sim/m32c/r8c.opc8
2 files changed, 9 insertions, 4 deletions
diff --git a/sim/m32c/ChangeLog b/sim/m32c/ChangeLog
index 2f1a372..a3afdf0 100644
--- a/sim/m32c/ChangeLog
+++ b/sim/m32c/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-26 DJ Delorie <dj@redhat.com>
+
+ * r8c.opc (decode_r8c): Don't bother reading the destination
+ before moving a constant into it. Fix borrow comparison for SUB.
+
2006-06-13 Richard Earnshaw <rearnsha@arm.com>
* configure: Regenerated.
diff --git a/sim/m32c/r8c.opc b/sim/m32c/r8c.opc
index 4db0bda..c731a52 100644
--- a/sim/m32c/r8c.opc
+++ b/sim/m32c/r8c.opc
@@ -885,7 +885,7 @@ decode_r8c()
/** 0111 010w 1100 dest MOV.size:G #IMM,dest */
- UNARY_UOP;
+ dc = decode_srcdest4 (dest, w);
imm = IMM(w);
v = imm;
tprintf("%x = %x\n", v, v);
@@ -894,7 +894,7 @@ decode_r8c()
/** 1101 100w immm dest MOV.size:Q #IMM,dest */
- UNARY_SOP;
+ dc = decode_srcdest4 (dest, w);
v = sign_ext (immm, 4);
tprintf ("%x = %x\n", v, v);
set_sz (v, w+1);
@@ -1530,14 +1530,14 @@ decode_r8c()
sc = decode_srcdest4(srcx, w);
dc = decode_srcdest4(dest, w);
b = get_src (sc);
- MATH_OP (dc, b, 0, -, > 0);
+ MATH_OP (dc, b, 0, -, >= 0);
/** 0010 1d sr SUB.B:S src,R0L/R0H */
sc = decode_src2 (sr, 0, d);
dc = decode_dest1 (d, 0);
b = get_src (sc);
- MATH_OP (dc, b, 0, -, > 0);
+ MATH_OP (dc, b, 0, -, >= 0);
/** 0111 011w 0000 dest TST.size #IMM, dest */