author | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2012年12月13日 18:26:57 -0200 |
---|---|---|
committer | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2012年12月13日 18:26:57 -0200 |
commit | 6227bf5bf996f94249e34246b78d9b3ef5031b78 (patch) | |
tree | 7fc650410f945d89a5cdd699e2e100968bc1fb07 /lib/jit_arm-swf.c | |
parent | 0b89a17ca2709fbd4765a9758b73e07b6b5d9a52 (diff) | |
download | lightning-6227bf5bf996f94249e34246b78d9b3ef5031b78.tar.gz |
-rw-r--r-- | lib/jit_arm-swf.c | 36 |
diff --git a/lib/jit_arm-swf.c b/lib/jit_arm-swf.c index ad0d12d..1315693 100644 --- a/lib/jit_arm-swf.c +++ b/lib/jit_arm-swf.c @@ -1740,25 +1740,25 @@ _swf_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) if (jit_fpr_p(r1)) { if (jit_fpr_p(r0) && !jit_thumb_p() && jit_armv5e_p() && r0 != r1 && (reg = jit_get_reg_pair()) != JIT_NOREG) { - LDRDIN(rn(reg), _FP_REGNO, swf_off(r1) + 8); + LDRDIN(rn(reg), _FP_REGNO, swf_off(r1) + 4); swf_bici(rn(reg), rn(reg), 0x80000000); - STRDIN(rn(reg), _FP_REGNO, swf_off(r0) + 8); + STRDIN(rn(reg), _FP_REGNO, swf_off(r0) + 4); jit_unget_reg_pair(reg); } else { reg = jit_get_reg(jit_class_gpr); - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); swf_bici(rn(reg), rn(reg), 0x80000000); if (jit_fpr_p(r0)) { - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); if (r0 != r1) { - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); } } else { movr(r0, rn(reg)); - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); movr(r0 + 1, rn(reg)); } jit_unget_reg(reg); @@ -1768,9 +1768,9 @@ _swf_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r1); swf_bici(rn(reg), rn(reg), 0x80000000); - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); - movr(rn(reg), r1 + 1); swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); + movr(rn(reg), r1 + 1); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); jit_unget_reg(reg); } else { @@ -1812,25 +1812,25 @@ _swf_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) if (jit_fpr_p(r1)) { if (jit_fpr_p(r0) && !jit_thumb_p() && jit_armv5e_p() && r0 != r1 && (reg = jit_get_reg_pair()) != JIT_NOREG) { - LDRDIN(rn(reg), _FP_REGNO, swf_off(r1) + 8); + LDRDIN(rn(reg), _FP_REGNO, swf_off(r1) + 4); EORI(rn(reg), rn(reg), encode_arm_immediate(0x80000000)); - STRDIN(rn(reg), _FP_REGNO, swf_off(r0) + 8); + STRDIN(rn(reg), _FP_REGNO, swf_off(r0) + 4); jit_unget_reg_pair(reg); } else { reg = jit_get_reg(jit_class_gpr); - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); xori(rn(reg), rn(reg), 0x80000000); if (jit_fpr_p(r0)) { - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); if (r0 != r1) { - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); } } else { movr(r0, rn(reg)); - swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 4); + swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); movr(r0 + 1, rn(reg)); } jit_unget_reg(reg); @@ -1840,9 +1840,9 @@ _swf_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r1); xori(rn(reg), rn(reg), 0x80000000); - swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); - movr(rn(reg), r1 + 1); swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 4); + movr(rn(reg), r1 + 1); + swf_strin(rn(reg), _FP_REGNO, swf_off(r0) + 8); jit_unget_reg(reg); } else { |