notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
reduce differences from upstream
[pcsx_rearmed.git]
/
deps
/
lightning
/
lib
/
jit_arm-cpu.c
diff --git
a/deps/lightning/lib/jit_arm-cpu.c
b/deps/lightning/lib/jit_arm-cpu.c
index
91bb17c
..
12f9a2f
100644
(file)
--- a/
deps/lightning/lib/jit_arm-cpu.c
+++ b/
deps/lightning/lib/jit_arm-cpu.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2012-20
19
Free Software Foundation, Inc.
+ * Copyright (C) 2012-20
22
Free Software Foundation, Inc.
*
* This file is part of GNU lightning.
*
*
* 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);
/* 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 */
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);
/* r0 = 0 if memory updated, 1 otherwise */
xori(r0, r0, 1);
+ /* done: */
+ done = _jit->pc.w;
T2_DMB(DMB_ISH);
}
else {
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);
/* 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 */
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);
/* 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);
DMB(DMB_ISH);
}
patch_at(arm_patch_jump, jump0, done);