lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--lib/jit_mips-cpu.c 32
1 files changed, 12 insertions, 20 deletions
diff --git a/lib/jit_mips-cpu.c b/lib/jit_mips-cpu.c
index 62c0bd5..23d54a5 100644
--- a/lib/jit_mips-cpu.c
+++ b/lib/jit_mips-cpu.c
@@ -2900,16 +2900,12 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1)
jit_word_t w;
jit_int32_t t0;
t0 = jit_get_reg(jit_class_gpr|jit_class_nospill);
- if (can_zero_extend_short_p(i1)) {
- ANDI(rn(t0), r0, i1);
- w = _jit->pc.w;
- BNE(_ZERO_REGNO, rn(t0), ((i0 - w) >> 2) - 1);
- NOP(1);
- }
- else {
- movi(rn(t0), i1);
- w = bmsr(i0, r0, rn(t0));
- }
+
+ andi(rn(t0), r0, i1);
+ w = _jit->pc.w;
+ BNE(_ZERO_REGNO, rn(t0), ((i0 - w) >> 2) - 1);
+ NOP(1);
+
jit_unget_reg(t0);
return (w);
}
@@ -2934,16 +2930,12 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1)
jit_word_t w;
jit_int32_t t0;
t0 = jit_get_reg(jit_class_gpr|jit_class_nospill);
- if (can_zero_extend_short_p(i1)) {
- ANDI(rn(t0), r0, i1);
- w = _jit->pc.w;
- BEQ(_ZERO_REGNO, rn(t0), ((i0 - w) >> 2) - 1);
- NOP(1);
- }
- else {
- movi(rn(t0), i1);
- w = bmcr(i0, r0, rn(t0));
- }
+
+ andi(rn(t0), r0, i1);
+ w = _jit->pc.w;
+ BEQ(_ZERO_REGNO, rn(t0), ((i0 - w) >> 2) - 1);
+ NOP(1);
+
jit_unget_reg(t0);
return (w);
}
generated by cgit v1.2.3 (git 2.46.0) at 2025年10月04日 20:05:01 +0000

AltStyle によって変換されたページ (->オリジナル) /