Commit c095ed73 authored by Alexander Graf's avatar Alexander Graf
Browse files

s390x: Fix stoc direction



The store conditional instruction wants to store when the condition
is fulfilled, so we should branch out when it's not true.

The code today branches out when the condition is true, clearly
reversing the logic. Fix it up by negating the condition.

Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
parent 968bb75c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3082,6 +3082,10 @@ static ExitStatus op_soc(DisasContext *s, DisasOps *o)

    disas_jcc(s, &c, get_field(s->fields, m3));

    /* We want to store when the condition is fulfilled, so branch
       out when it's not */
    c.cond = tcg_invert_cond(c.cond);

    lab = gen_new_label();
    if (c.is_64) {
        tcg_gen_brcond_i64(c.cond, c.u.s64.a, c.u.s64.b, lab);