author | Paul Cercueil <paul@crapouillou.net> | 2022年05月19日 10:39:15 +0100 |
---|---|---|
committer | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2022年05月19日 10:04:04 -0300 |
commit | f579802f4f1533cd9b3de77b8b298ed1a109f5cf (patch) | |
tree | c31a092ab900b6d0d005ceec04328184163b80ff | |
parent | c06815b80037f80f5023a5a0b57d3370659cc718 (diff) | |
download | lightning-f579802f4f1533cd9b3de77b8b298ed1a109f5cf.tar.gz |
-rw-r--r-- | lib/jit_mips-cpu.c | 9 | ||||
-rw-r--r-- | lib/jit_mips-sz.c | 8 |
diff --git a/lib/jit_mips-cpu.c b/lib/jit_mips-cpu.c index 203b8b0..35fb9f6 100644 --- a/lib/jit_mips-cpu.c +++ b/lib/jit_mips-cpu.c @@ -325,6 +325,7 @@ static void _nop(jit_state_t*,jit_int32_t); # define DADDIU(rt,rs,im) hrri(MIPS_DADDIU,rs,rt,im) # define SUBU(rd,rs,rt) rrr_t(rs,rt,rd,MIPS_SUBU) # define DSUBU(rd,rs,rt) rrr_t(rs,rt,rd,MIPS_DSUBU) +# define MUL(rd,rs,rt) hrrr_t(MIPS_SPECIAL2,rs,rt,rd,MIPS_MUL) # define MULT(rs,rt) rrr_t(rs,rt,_ZERO_REGNO,MIPS_MULT) # define MULTU(rs,rt) rrr_t(rs,rt,_ZERO_REGNO,MIPS_MULTU) # define DMULT(rs,rt) rrr_t(rs,rt,_ZERO_REGNO,MIPS_DMULT) @@ -1047,8 +1048,12 @@ _rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) static void _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) { - multu(r1, r2); - MFLO(r0); + if (__WORDSIZE == 32) + MUL(r0, r1, r2); + else { + multu(r1, r2); + MFLO(r0); + } } static void diff --git a/lib/jit_mips-sz.c b/lib/jit_mips-sz.c index 83e52ed..da37848 100644 --- a/lib/jit_mips-sz.c +++ b/lib/jit_mips-sz.c @@ -42,8 +42,8 @@ 28, /* subxr */ 28, /* subxi */ 16, /* rsbi */ - 8, /* mulr */ - 16, /* muli */ + 4, /* mulr */ + 12, /* muli */ 12, /* qmulr */ 20, /* qmuli */ 12, /* qmulr_u */ @@ -448,8 +448,8 @@ 28, /* subxr */ 28, /* subxi */ 16, /* rsbi */ - 8, /* mulr */ - 16, /* muli */ + 4, /* mulr */ + 12, /* muli */ 12, /* qmulr */ 20, /* qmuli */ 12, /* qmulr_u */ |