-rw-r--r-- | lib/jit_mips-cpu.c | 8 |
diff --git a/lib/jit_mips-cpu.c b/lib/jit_mips-cpu.c index 569a009..ce364f2 100644 --- a/lib/jit_mips-cpu.c +++ b/lib/jit_mips-cpu.c @@ -2954,8 +2954,12 @@ _extr(jit_state_t *_jit, # if __BYTE_ORDER == __BIG_ENDIAN i0 = __WORDSIZE - (i0 + i1); # endif - lshi(r0, r1, __WORDSIZE - (i0 + i1)); - rshi(r0, r0, __WORDSIZE - i1); + if (__WORDSIZE - (i0 + i1)) { + lshi(r0, r1, __WORDSIZE - (i0 + i1)); + rshi(r0, r0, __WORDSIZE - i1); + } + else + rshi(r0, r1, __WORDSIZE - i1); } } |