author | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2023年04月06日 17:56:36 -0300 |
---|---|---|
committer | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2023年04月06日 17:56:36 -0300 |
commit | cdde44165ff033803d978371d05f9a5d6d74e34e (patch) | |
tree | 579351a3f8633ab16f4aabd2c7e7eb29bf2703ec /lib/jit_mips-cpu.c | |
parent | fbe1dacb4237c0c76565b57df34dc1cd286bd88c (diff) | |
download | lightning-cdde44165ff033803d978371d05f9a5d6d74e34e.tar.gz |
-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 |