fix in GNU lightning to enable the compilation of two of the the floating point operations.

This commit is contained in:
kr.angelov
2014-12-01 09:42:21 +00:00
parent 2e765fbfe1
commit 2927c8b7e1
3 changed files with 20 additions and 29 deletions

View File

@@ -34,7 +34,6 @@
#ifndef __lightning_fp_swf_h
#define __lightning_fp_swf_h
#if 0
#include <math.h>
#define swf_off(rn) ((rn) << 2)
@@ -119,7 +118,7 @@ extern int __aeabi_dcmpun(double, double);
else \
_BICI(rt, rn, encode_arm_immediate(im)); \
} while (0)
#if 0
__jit_inline void
swf_movr_f(jit_state_t _jit, jit_fpr_t r0, jit_fpr_t r1)
{
@@ -1213,9 +1212,9 @@ swf_pusharg_f(jit_state_t _jit, jit_fpr_t r0)
else
_STRI(JIT_FTMP, JIT_SP, 0);
}
#endif
__jit_inline void
swf_pusharg_d(jit_state_t _jit, jit_fpr_t r0)
swf_pusharg_d(jit_state _jit, jit_fpr_t r0)
{
int ofs = _jitl.nextarg_put++;
assert(ofs < 256);
@@ -1226,7 +1225,7 @@ swf_pusharg_d(jit_state_t _jit, jit_fpr_t r0)
swf_ldrin(JIT_TMP, JIT_FP, swf_off(r0) + 8);
swf_ldrin(JIT_FTMP, JIT_FP, swf_off(r0) + 4);
}
_jitl.arguments[ofs] = (int *)_jit->x.pc;
_jitl.arguments[ofs] = (int *)_jit.x.pc;
_jitl.types[ofs >> 5] |= 1 << (ofs & 31);
/* large offsets (handled by patch_arguments) cannot be encoded in STRDI */
if (jit_thumb_p()) {
@@ -1238,7 +1237,7 @@ swf_pusharg_d(jit_state_t _jit, jit_fpr_t r0)
_STRI(JIT_FTMP, JIT_SP, 0);
}
}
#if 0
#define swf_retval_f(_jit, r0) swf_strin(_R0, JIT_FP, swf_off(r0) + 8)
__jit_inline void
swf_retval_d(jit_state_t _jit, jit_fpr_t r0)

View File

@@ -1050,18 +1050,18 @@ vfp_pusharg_f(jit_state_t _jit, jit_fpr_t r0)
_jitl.types[ofs >> 5] &= ~(1 << (ofs & 31));
_VSTR_F32(r0, JIT_SP, 0);
}
#endif
__jit_inline void
vfp_pusharg_d(jit_state_t _jit, jit_fpr_t r0)
vfp_pusharg_d(jit_state _jit, jit_fpr_t r0)
{
int ofs = _jitl.nextarg_put++;
assert(ofs < 256);
_jitl.stack_offset -= sizeof(double);
_jitl.arguments[ofs] = (int *)_jit->x.pc;
_jitl.arguments[ofs] = (int *)_jit.x.pc;
_jitl.types[ofs >> 5] |= 1 << (ofs & 31);
_VSTR_F64(r0, JIT_SP, 0);
}
#if 0
__jit_inline void
vfp_retval_f(jit_state_t _jit, jit_fpr_t r0)
{

View File

@@ -990,15 +990,11 @@ arm_prepare_f(jit_state_t _jit, int i0)
assert(i0 >= 0);
_jitl.stack_offset += i0 << 2;
}
#define jit_prepare_d(i0) arm_prepare_d(_jit, i0)
__jit_inline void
arm_prepare_d(jit_state_t _jit, int i0)
{
assert(i0 >= 0);
_jitl.stack_offset += i0 << 3;
}
#endif
#define jit_prepare_d(i0) \
(assert(i0 >= 0), \
_jitl.stack_offset += i0 << 3)
#if 0
#define jit_arg_f() arm_arg_f(_jit)
__jit_inline int
arm_arg_f(jit_state_t _jit)
@@ -1073,16 +1069,12 @@ arm_pusharg_f(jit_state_t _jit, jit_fpr_t r0)
if (jit_swf_p()) swf_pusharg_f(_jit, r0);
else vfp_pusharg_f(_jit, r0);
}
#define jit_pusharg_d(r0) arm_pusharg_d(_jit, r0)
__jit_inline void
arm_pusharg_d(jit_state_t _jit, jit_fpr_t r0)
{
assert(r0 != JIT_FPRET);
if (jit_swf_p()) swf_pusharg_d(_jit, r0);
else vfp_pusharg_d(_jit, r0);
}
#endif
#define jit_pusharg_d(r0) \
(assert(r0 != JIT_FPRET), \
jit_swf_p() ? swf_pusharg_d(_jit, r0) \
: vfp_pusharg_d(_jit, r0))
#if 0
#define jit_retval_f(r0) arm_retval_f(_jit, r0)
__jit_inline void
arm_retval_f(jit_state_t _jit, jit_fpr_t r0)