-rw-r--r-- | lib/jit_mips-cpu.c | 54 |
diff --git a/lib/jit_mips-cpu.c b/lib/jit_mips-cpu.c index 6ac2baf..104ede7 100644 --- a/lib/jit_mips-cpu.c +++ b/lib/jit_mips-cpu.c @@ -1702,35 +1702,39 @@ _insr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, static void _clor(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) { - if (__WORDSIZE == 32) { - if (jit_mips6_p()) - CLO_R6(r0, r1); - else - CLO(r0, r1); - } - else { - if (jit_mips6_p()) - DCLO_R6(r0, r1); - else - DCLO(r0, r1); - } +#if __WORDSIZE == 32 + if (jit_mips6_p()) + CLO_R6(r0, r1); + else if (jit_mips2_p()) + CLO(r0, r1); + else + fallback_clo(r0, r1); +#else + assert(jit_mips2_p()); + if (jit_mips6_p()) + DCLO_R6(r0, r1); + else + DCLO(r0, r1); +#endif } static void _clzr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) { - if (__WORDSIZE == 32) { - if (jit_mips6_p()) - CLZ_R6(r0, r1); - else - CLZ(r0, r1); - } - else { - if (jit_mips6_p()) - DCLZ_R6(r0, r1); - else - DCLZ(r0, r1); - } +#if __WORDSIZE == 32 + if (jit_mips6_p()) + CLZ_R6(r0, r1); + else if (jit_mips2_p()) + CLZ(r0, r1); + else + fallback_clz(r0, r1); +#else + assert(jit_mips2_p()); + if (jit_mips6_p()) + DCLZ_R6(r0, r1); + else + DCLZ(r0, r1); +#endif } static void @@ -2514,7 +2518,7 @@ _rroti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #endif } else - fallback_lroti(r0, r1, i0); + fallback_rroti(r0, r1, i0); } static void |