diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/m32c/ChangeLog | 5 | ||||
-rw-r--r-- | sim/m32c/m32c.opc | 2 |
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); \ } |