* m32c.opc (MATH_OP): When doing subtraction, also set carry if
authorDJ Delorie <dj@redhat.com>
Wed, 20 Jan 2010 05:52:19 +0000 (05:52 +0000)
committerDJ Delorie <dj@redhat.com>
Wed, 20 Jan 2010 05:52:19 +0000 (05:52 +0000)
the result is zero.

sim/m32c/ChangeLog
sim/m32c/m32c.opc

index 888870a5b973dea559cd6b711a2d3822b351fb9e..e443c162da24d06bb92d4d9982fb19837f836a8a 100644 (file)
@@ -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.
index b271acfac6a3a905a2e27a453e4a1c16b6f06652..a2ddda9712f8bf064b5127e71324f9e4a4bcbd1b 100644 (file)
@@ -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); \
 }