mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
fix in GNU lightning to enable the compilation of two of the the floating point operations.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user