X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=deps%2Flightning%2Flib%2Fjit_arm-cpu.c;h=12f9a2f7d76eb4684ad33802807bd3f24f518ebc;hb=e57621e0f476eaec8770927da94f3eea8304341f;hp=91bb17c95c31d247e78cf525184c83652c11ddad;hpb=ba3814c189d3bd2332b66fb6c633a7d028e618fe;p=pcsx_rearmed.git diff --git a/deps/lightning/lib/jit_arm-cpu.c b/deps/lightning/lib/jit_arm-cpu.c index 91bb17c9..12f9a2f7 100644 --- a/deps/lightning/lib/jit_arm-cpu.c +++ b/deps/lightning/lib/jit_arm-cpu.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2019 Free Software Foundation, Inc. + * Copyright (C) 2012-2022 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -1679,13 +1679,14 @@ _casx(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, /* retry: */ retry = _jit->pc.w; T2_LDREX(r0, r1, 0); - jump0 = bner(_jit->pc.w, r0, r2); /* bne done r0 r2 */ + eqr(r0, r0, r2); + jump0 = beqi(_jit->pc.w, r0, 0); /* beqi done r0 0 */ T2_STREX(r0, r3, r1, 0); jump1 = bnei(_jit->pc.w, r0, 0); /* bnei retry r0 0 */ - /* done: */ - done = _jit->pc.w; /* r0 = 0 if memory updated, 1 otherwise */ xori(r0, r0, 1); + /* done: */ + done = _jit->pc.w; T2_DMB(DMB_ISH); } else { @@ -1693,13 +1694,14 @@ _casx(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, /* retry: */ retry = _jit->pc.w; LDREX(r0, r1); - jump0 = bner(_jit->pc.w, r0, r2); /* bne done r0 r2 */ + eqr(r0, r0, r2); + jump0 = beqi(_jit->pc.w, r0, 0); /* beqi done r0 0 */ STREX(r0, r3, r1); jump1 = bnei(_jit->pc.w, r0, 0); /* bnei retry r0 0 */ - /* done: */ - done = _jit->pc.w; /* r0 = 0 if memory updated, 1 otherwise */ xori(r0, r0, 1); + /* done: */ + done = _jit->pc.w; DMB(DMB_ISH); } patch_at(arm_patch_jump, jump0, done);