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
cdrom: update status immediately after seek
[pcsx_rearmed.git]
/
deps
/
lightning
/
lib
/
jit_ppc.c
diff --git
a/deps/lightning/lib/jit_ppc.c
b/deps/lightning/lib/jit_ppc.c
index
d05d4b1
..
fd6964e
100644
(file)
--- a/
deps/lightning/lib/jit_ppc.c
+++ b/
deps/lightning/lib/jit_ppc.c
@@
-1148,6
+1148,8
@@
_emit_code(jit_state_t *_jit)
jit_word_t word;
jit_int32_t value;
jit_int32_t offset;
jit_word_t word;
jit_int32_t value;
jit_int32_t offset;
+ jit_bool_t no_flag = 0; /* Set if previous instruction is
+ * *not* a jump target. */
struct {
jit_node_t *node;
jit_word_t word;
struct {
jit_node_t *node;
jit_word_t word;
@@
-1355,9
+1357,26
@@
_emit_code(jit_state_t *_jit)
case_rr(hton, _ui);
# if __WORDSIZE == 64
case_rr(hton, _ul);
case_rr(hton, _ui);
# if __WORDSIZE == 64
case_rr(hton, _ul);
+# endif
+ case jit_code_bswapr_us:
+ bswapr_us_lh(rn(node->u.w), rn(node->v.w), no_flag);
+ break;
+ case jit_code_bswapr_ui:
+ bswapr_ui_lw(rn(node->u.w), rn(node->v.w), no_flag);
+ break;
+# if __WORDSIZE == 64
+ case_rr(bswap, _ul);
# endif
case_rr(neg,);
case_rr(com,);
# endif
case_rr(neg,);
case_rr(com,);
+ case jit_code_casr:
+ casr(rn(node->u.w), rn(node->v.w),
+ rn(node->w.q.l), rn(node->w.q.h));
+ break;
+ case jit_code_casi:
+ casi(rn(node->u.w), node->v.w,
+ rn(node->w.q.l), rn(node->w.q.h));
+ break;
case_rrr(movn,);
case_rrr(movz,);
case_rr(mov,);
case_rrr(movn,);
case_rrr(movz,);
case_rr(mov,);
@@
-1678,7
+1697,7
@@
_emit_code(jit_state_t *_jit)
}
}
else
}
}
else
-
(void)jmpi_p
(node->u.w);
+
jmpi
(node->u.w);
break;
case jit_code_callr:
callr(rn(node->u.w)
break;
case jit_code_callr:
callr(rn(node->u.w)
@@
-1818,6
+1837,8
@@
_emit_code(jit_state_t *_jit)
assert(_jitc->regarg == 0 && _jitc->synth == 0);
/* update register live state */
jit_reglive(node);
assert(_jitc->regarg == 0 && _jitc->synth == 0);
/* update register live state */
jit_reglive(node);
+
+ no_flag = !(node->flag & jit_flag_patch);
}
#undef case_brf
#undef case_brw
}
#undef case_brf
#undef case_brw