aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/m32c/ChangeLog5
-rw-r--r--sim/m32c/m32c.opc2
2 files changed, 6 insertions, 1 deletions
diff --git a/sim/m32c/ChangeLog b/sim/m32c/ChangeLog
index 888870a..e443c16 100644
--- a/sim/m32c/ChangeLog
+++ b/sim/m32c/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-20 DJ Delorie <dj@redhat.com>
+
+ * m32c.opc (MATH_OP): When doing subtraction, also set carry if
+ the result is zero.
+
2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
diff --git a/sim/m32c/m32c.opc b/sim/m32c/m32c.opc
index b271acf..a2ddda9 100644
--- a/sim/m32c/m32c.opc
+++ b/sim/m32c/m32c.opc
@@ -125,7 +125,7 @@ prefix (src_allowed, dest_allowed, index_bytewidth)
mb = sign_ext (s, dc.bytes * 8); \
v = ma op mb op c; \
tprintf("%d " #op " %d " #op " %d = %d\n", ma, mb, c, v); \
- set_oszc (v, dc.bytes, ll > ((1 op 1) ? b2mask[dc.bytes] : 0)); \
+ set_oszc (v, dc.bytes, (1 op 1) ? (ll > b2mask[dc.bytes]) : (ll >= 0)); \
put_dest (dc, v); \
}