[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/9] mips: Optimize jit_bmsi / jit_bmci
From: |
Paul Cercueil |
Subject: |
[PATCH 4/9] mips: Optimize jit_bmsi / jit_bmci |
Date: |
Thu, 19 May 2022 10:39:13 +0100 |
The previous commit optimized jit_andi() on MIPS r2. It is now faster
and simpler to just call jit_andi() in the implementations of jit_bmsi()
and jit_bmci().
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
lib/jit_mips-cpu.c | 32 ++++++++++++--------------------
1 file 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);
}
--
2.35.1
- [PATCH 0/9] MIPS improvements, Paul Cercueil, 2022/05/19
- [PATCH 1/9] mips: Properly define jit_mips2_p(), Paul Cercueil, 2022/05/19
- [PATCH 2/9] mips: Fix is_low_mask() to support -1, Paul Cercueil, 2022/05/19
- [PATCH 3/9] mips: Optimize jit_andi further, Paul Cercueil, 2022/05/19
- [PATCH 4/9] mips: Optimize jit_bmsi / jit_bmci,
Paul Cercueil <=
- [PATCH 5/9] mips: Optimize jit_extr_ui, Paul Cercueil, 2022/05/19
- [PATCH 6/9] mips: Use 32-bit MUL opcode for mulr() on 32-bit MIPS, Paul Cercueil, 2022/05/19
- [PATCH 7/9] mips: Optimize jit_lei / jit_lei_u, Paul Cercueil, 2022/05/19
- [PATCH 8/9] mips: Optimize jit_gei/jit_gei_u, Paul Cercueil, 2022/05/19
- [PATCH 9/9] mips: Optimize jit_htonr_us/jit_htonr_ui, Paul Cercueil, 2022/05/19