Correct test cases in the mips backend. - lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2012年12月10日 21:14:50 -0200
committerpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2012年12月10日 21:14:50 -0200
commita3fbc5da9683640b8f7e8b91ace4c1a1c6ab496d (patch)
tree11d4dec9b52f77d9845f90311998c7c5733e322d /lib
parente255b7606842c02be793e0d447aaac2f9a40bc65 (diff)
downloadlightning-a3fbc5da9683640b8f7e8b91ace4c1a1c6ab496d.tar.gz
Correct test cases in the mips backend.
* lib/jit_mips-cpu.c: Correct all current test cases. Call the "xori" not the "XORI" macro for jit_xori implementation, as the XORI macro handles only 16 bit unsigned values. Call the "movr" macro, not the "movi" macro in the special case of adding or subtracting zero. Use the proper temporary register in the jit_andr implementation.
Diffstat (limited to 'lib')
-rw-r--r--lib/jit_mips-cpu.c 8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/jit_mips-cpu.c b/lib/jit_mips-cpu.c
index 5f04e4d..8749300 100644
--- a/lib/jit_mips-cpu.c
+++ b/lib/jit_mips-cpu.c
@@ -364,7 +364,7 @@ static void _nop(jit_state_t*,jit_int32_t);
# define JR(r0) hrrrit(MIPS_SPECIAL,r0,0,0,0,MIPS_JR)
# define J(i0) hi(MIPS_J, i0)
# define MOVZ(rd,rs,rt) hrrrit(0,rs,rt,rd,0,MIPS_MOVZ)
-# define comr(r0,r1) XORI(r0, r1, -1)
+# define comr(r0,r1) xori(r0, r1, -1)
# define negr(r0,r1) SUBU(r0,_ZERO_REGNO,r1)
# define addr(rd,rs,rt) ADDU(rd,rs,rt)
# define addi(r0,r1,i0) _addi(_jit,r0,r1,i0)
@@ -715,7 +715,7 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
{
jit_int32_t reg;
if (i0 == 0)
- movi(r0, r1);
+ movr(r0, r1);
else if (can_sign_extend_short_p(i0))
ADDIU(r0, r1, i0);
else {
@@ -807,7 +807,7 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
{
jit_int32_t reg;
if (i0 == 0)
- movi(r0, r1);
+ movr(r0, r1);
else if (can_sign_extend_short_p(i0) && (i0 & 0xffff) != 0x8000)
ADDIU(r0, r1, -i0);
else {
@@ -2644,7 +2644,7 @@ _bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1)
jit_word_t w;
jit_int32_t t0;
t0 = jit_get_reg(jit_class_gpr);
- AND(rn(r0), r0, r1);
+ AND(rn(t0), r0, r1);
w = _jit->pc.w;
BEQ(_ZERO_REGNO, rn(t0), ((i0 - w) >> 2) - 1);
NOP(1);
generated by cgit v1.2.3 (git 2.39.1) at 2025年10月02日 05:06:12 +0000

AltStyle によって変換されたページ (->オリジナル) /