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/jit_arm-swf.c
diff options
context:
space:
mode:
authorpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2013年11月27日 15:05:27 -0200
committerpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2013年11月27日 15:05:27 -0200
commit6fa5123855b3312dcd22352f58897895fc7a4e3b (patch)
treebb844fbce6c5354ae7e791bee77f49fa24238786 /lib/jit_arm-swf.c
parent67d994cc5eb552ee6ea57093db74e4cb6f459025 (diff)
downloadlightning-6fa5123855b3312dcd22352f58897895fc7a4e3b.tar.gz
ARM: Minor changes that should allow building on non gnu-linux/gcc.
* configure.ac, lib/jit_arm-swf.c, lib/jit_arm.c: Add changes that should at least allow building lightning on Apple iOS7.
Diffstat (limited to 'lib/jit_arm-swf.c')
-rw-r--r--lib/jit_arm-swf.c 161
1 files changed, 159 insertions, 2 deletions
diff --git a/lib/jit_arm-swf.c b/lib/jit_arm-swf.c
index 972c8ec..f07d65d 100644
--- a/lib/jit_arm-swf.c
+++ b/lib/jit_arm-swf.c
@@ -34,8 +34,8 @@ extern float __aeabi_i2f(int);
extern double __aeabi_i2d(int);
extern float __aeabi_d2f(double);
extern double __aeabi_f2d(float);
-extern int __aeabi_f2iz(double);
-extern int __aeabi_d2iz(float);
+extern int __aeabi_f2iz(float);
+extern int __aeabi_d2iz(double);
extern int __aeabi_fcmplt(float, float);
extern int __aeabi_dcmplt(double, double);
extern int __aeabi_fcmple(float, float);
@@ -394,6 +394,163 @@ static void _swf_stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t);
BICI(rt, rn, encode_arm_immediate(im)); \
} while (0)
+#if !defined(__GNUC__)
+float __addsf3(float u, float v)
+{
+ return (u + v);
+}
+
+double
+__adddf3(double u, double v)
+{
+ return (u + v);
+}
+
+float
+__aeabi_fsub(float u, float v)
+{
+ return (u - v);
+}
+
+double
+__aeabi_dsub(double u, double v)
+{
+ return (u - v);
+}
+
+float
+__aeabi_fmul(float u, float v)
+{
+ return (u * v);
+}
+
+double
+__aeabi_dmul(double u, double v)
+{
+ return (u * v);
+}
+
+float
+__aeabi_fdiv(float u, float v)
+{
+ return (u / v);
+}
+
+double
+__aeabi_ddiv(double u, double v)
+{
+ return (u / v);
+}
+
+float
+__aeabi_i2f(int u)
+{
+ return (u);
+}
+
+double
+__aeabi_i2d(int u)
+{
+ return (u);
+}
+
+float
+__aeabi_d2f(double u)
+{
+ return (u);
+}
+
+double
+__aeabi_f2d(float u)
+{
+ return (u);
+}
+
+extern int
+__aeabi_f2iz(float u)
+{
+ return (u);
+}
+
+int
+__aeabi_d2iz(double u)
+{
+ return (u);
+}
+
+int
+__aeabi_fcmplt(float u, float v)
+{
+ return (u < v);
+}
+
+int
+__aeabi_dcmplt(double u, double v)
+{
+ return (u < v);
+}
+
+int
+__aeabi_fcmple(float u, float v)
+{
+ return (u <= v);
+}
+
+int
+__aeabi_dcmple(double u, double v)
+{
+ return (u <= v);
+}
+
+int
+__aeabi_fcmpeq(float u, float v)
+{
+ return (u == v);
+}
+
+int
+__aeabi_dcmpeq(double u, double v)
+{
+ return (u == v);
+}
+
+int
+__aeabi_fcmpge(float u, float v)
+{
+ return (u >= v);
+}
+
+int
+__aeabi_dcmpge(double u, double v)
+{
+ return (u >= v);
+}
+
+int
+__aeabi_fcmpgt(float u, float v)
+{
+ return (u > v);
+}
+
+int
+__aeabi_dcmpgt(double u, double v)
+{
+ return (u > v);
+}
+
+int
+__aeabi_fcmpun(float u, float v)
+{
+ return ((u != u) || (v != v));
+}
+
+int
+__aeabi_dcmpun(double u, double v)
+{
+ return ((u != u) || (v != v));
+}
+#endif
+
static void
_swf_ff(jit_state_t *_jit, float(*i0)(float),
jit_int32_t r0, jit_int32_t r1)
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月11日 06:45:43 +0000

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