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 #ifndef __lightning_fp_swf_h
#define __lightning_fp_swf_h #define __lightning_fp_swf_h
#if 0
#include <math.h> #include <math.h>
#define swf_off(rn) ((rn) << 2) #define swf_off(rn) ((rn) << 2)
@@ -119,7 +118,7 @@ extern int __aeabi_dcmpun(double, double);
else \ else \
_BICI(rt, rn, encode_arm_immediate(im)); \ _BICI(rt, rn, encode_arm_immediate(im)); \
} while (0) } while (0)
#if 0
__jit_inline void __jit_inline void
swf_movr_f(jit_state_t _jit, jit_fpr_t r0, jit_fpr_t r1) 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 else
_STRI(JIT_FTMP, JIT_SP, 0); _STRI(JIT_FTMP, JIT_SP, 0);
} }
#endif
__jit_inline void __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++; int ofs = _jitl.nextarg_put++;
assert(ofs < 256); 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_TMP, JIT_FP, swf_off(r0) + 8);
swf_ldrin(JIT_FTMP, JIT_FP, swf_off(r0) + 4); 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); _jitl.types[ofs >> 5] |= 1 << (ofs & 31);
/* large offsets (handled by patch_arguments) cannot be encoded in STRDI */ /* large offsets (handled by patch_arguments) cannot be encoded in STRDI */
if (jit_thumb_p()) { 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); _STRI(JIT_FTMP, JIT_SP, 0);
} }
} }
#if 0
#define swf_retval_f(_jit, r0) swf_strin(_R0, JIT_FP, swf_off(r0) + 8) #define swf_retval_f(_jit, r0) swf_strin(_R0, JIT_FP, swf_off(r0) + 8)
__jit_inline void __jit_inline void
swf_retval_d(jit_state_t _jit, jit_fpr_t r0) 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)); _jitl.types[ofs >> 5] &= ~(1 << (ofs & 31));
_VSTR_F32(r0, JIT_SP, 0); _VSTR_F32(r0, JIT_SP, 0);
} }
#endif
__jit_inline void __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++; int ofs = _jitl.nextarg_put++;
assert(ofs < 256); assert(ofs < 256);
_jitl.stack_offset -= sizeof(double); _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); _jitl.types[ofs >> 5] |= 1 << (ofs & 31);
_VSTR_F64(r0, JIT_SP, 0); _VSTR_F64(r0, JIT_SP, 0);
} }
#if 0
__jit_inline void __jit_inline void
vfp_retval_f(jit_state_t _jit, jit_fpr_t r0) 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); assert(i0 >= 0);
_jitl.stack_offset += i0 << 2; _jitl.stack_offset += i0 << 2;
} }
#endif
#define jit_prepare_d(i0) arm_prepare_d(_jit, i0) #define jit_prepare_d(i0) \
__jit_inline void (assert(i0 >= 0), \
arm_prepare_d(jit_state_t _jit, int i0) _jitl.stack_offset += i0 << 3)
{ #if 0
assert(i0 >= 0);
_jitl.stack_offset += i0 << 3;
}
#define jit_arg_f() arm_arg_f(_jit) #define jit_arg_f() arm_arg_f(_jit)
__jit_inline int __jit_inline int
arm_arg_f(jit_state_t _jit) 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); if (jit_swf_p()) swf_pusharg_f(_jit, r0);
else vfp_pusharg_f(_jit, r0); else vfp_pusharg_f(_jit, r0);
} }
#endif
#define jit_pusharg_d(r0) arm_pusharg_d(_jit, r0) #define jit_pusharg_d(r0) \
__jit_inline void (assert(r0 != JIT_FPRET), \
arm_pusharg_d(jit_state_t _jit, jit_fpr_t r0) jit_swf_p() ? swf_pusharg_d(_jit, r0) \
{ : vfp_pusharg_d(_jit, r0))
assert(r0 != JIT_FPRET); #if 0
if (jit_swf_p()) swf_pusharg_d(_jit, r0);
else vfp_pusharg_d(_jit, r0);
}
#define jit_retval_f(r0) arm_retval_f(_jit, r0) #define jit_retval_f(r0) arm_retval_f(_jit, r0)
__jit_inline void __jit_inline void
arm_retval_f(jit_state_t _jit, jit_fpr_t r0) arm_retval_f(jit_state_t _jit, jit_fpr_t r0)