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_ia64-fpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/jit_ia64-fpu.c')
-rw-r--r--lib/jit_ia64-fpu.c 77
1 files changed, 49 insertions, 28 deletions
diff --git a/lib/jit_ia64-fpu.c b/lib/jit_ia64-fpu.c
index ccbf60f..c955afa 100644
--- a/lib/jit_ia64-fpu.c
+++ b/lib/jit_ia64-fpu.c
@@ -44,25 +44,29 @@
/* libm */
extern float sqrtf(float);
extern double sqrt(double);
-
#define M7(x6,ht,r3,r2,f1) _M7(_jit,0,x6,ht,r3,r2,f1)
static void _M7(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define M8(x6,ht,r3,im,f1) _M8(_jit,0,x6,ht,r3,im,f1)
static void _M8(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define M9(x6,ht,r3,f1) _M9(_jit,0,x6,ht,r3,f1)
static void _M9(jit_state_t*,jit_word_t,
jit_word_t,jit_word_t,jit_word_t,jit_word_t);
#define M10(x6,ht,r3,r2,im) _M10(_jit,0,x6,ht,r3,r2,im)
static void _M10(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define M11(x6,ht,r3,f2,f1) _M11(_jit,0,x6,ht,r3,f2,f1)
static void _M11(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define M12(x6,ht,r3,f2,f1) _M12(_jit,0,x6,ht,r3,f2,f1)
static void _M12(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define M18(x6,r2,f1) _M18(_jit,0,x6,r2,f1)
static void _M18(jit_state_t*,jit_word_t,
jit_word_t,jit_word_t,jit_word_t);
@@ -84,7 +88,8 @@ static void F4_(jit_state_t*,jit_word_t,
jit_word_t,jit_word_t,jit_word_t,jit_word_t);
#define F5(p2,fc,f2,ta,p1) F5_(_jit,0,p2,fc,f2,ta,p1)
static void F5_(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define F6x(op,q,sf,p2,f3,f2,f1) F6x_(_jit,0,op,q,sf,p2,f3,f2,f1)
#define F6(op,sf,p2,f3,f2,f1) F6x(op,0,sf,p2,f3,f2,f1)
#define F7(op,sf,p2,f3,f1) F6x(op,1,sf,p2,f3,0,f1)
@@ -101,15 +106,17 @@ static void F8_(jit_state_t*,jit_word_t,
#define F12(sf,x6,omsk,amsk) F12_(_jit,0,sf,x6,omsk,amsk)
#define F13(sf,x6) F12(sf,x6,0,0)
static void F12_(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define F14x(sf,x,x6,im) F14x_(_jit,0,sf,x,x6,im)
#define F14(sf,im) F14x(sf,0,8,im)
#define F15(im) F14x(0,0,0,im)
static void F14x_(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t,jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t,jit_word_t,jit_word_t)
+ maybe_unused;
#define F16(y,im) F16_(_jit,0,y,im)
static void F16_(jit_state_t*,jit_word_t,
- jit_word_t,jit_word_t);
+ jit_word_t,jit_word_t)maybe_unused;
/* break */
#define BREAK_F(im) F15(im)
@@ -424,7 +431,6 @@ static void F16_(jit_state_t*,jit_word_t,
#define movr_d(r0,r1) MOVF(r0,r1)
#define movi_f(r0,i0) ldi_f(r0,(jit_word_t)i0)
#define movi_d(r0,i0) ldi_d(r0,(jit_word_t)i0)
-
#define movr_f_w(r0,r1) _movr_f_w(_jit,r0,r1)
static void _movr_f_w(jit_state_t*,jit_int32_t,jit_int32_t);
#define movr_d_w(r0,r1) _movr_d_w(_jit,r0,r1)
@@ -433,7 +439,6 @@ static void _movr_d_w(jit_state_t*,jit_int32_t,jit_int32_t);
static void _movi_f_w(jit_state_t*,jit_int32_t,jit_word_t);
#define movi_d_w(r0,i0) _movi_d_w(_jit,r0,i0)
static void _movi_d_w(jit_state_t*,jit_int32_t,jit_word_t);
-
#define absr_f(r0,r1) absr_d(r0,r1)
#define absr_d(r0,r1) FABS(r0,r1)
#define negr_f(r0,r1) negr_d(r0,r1)
@@ -1312,10 +1317,14 @@ static void
_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
{
jit_int32_t reg;
- reg = jit_get_reg(jit_class_gpr);
- addi(rn(reg), r1, i0);
- ldr_f(r0, rn(reg));
- jit_unget_reg(reg);
+ if (r0) {
+ reg = jit_get_reg(jit_class_gpr);
+ addi(rn(reg), r1, i0);
+ ldr_f(r0, rn(reg));
+ jit_unget_reg(reg);
+ }
+ else
+ ldr_f(r0, r1);
}
static void
@@ -1342,10 +1351,14 @@ static void
_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
{
jit_int32_t reg;
- reg = jit_get_reg(jit_class_gpr);
- addi(rn(reg), r1, i0);
- ldr_d(r0, rn(reg));
- jit_unget_reg(reg);
+ if (r0) {
+ reg = jit_get_reg(jit_class_gpr);
+ addi(rn(reg), r1, i0);
+ ldr_d(r0, rn(reg));
+ jit_unget_reg(reg);
+ }
+ else
+ ldr_d(r0, r1);
}
static void
@@ -1372,10 +1385,14 @@ static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1)
{
jit_int32_t reg;
- reg = jit_get_reg(jit_class_gpr);
- addi(rn(reg), r0, i0);
- str_f(rn(reg), r1);
- jit_unget_reg(reg);
+ if (i0) {
+ reg = jit_get_reg(jit_class_gpr);
+ addi(rn(reg), r0, i0);
+ str_f(rn(reg), r1);
+ jit_unget_reg(reg);
+ }
+ else
+ str_f(r0, r1);
}
static void
@@ -1402,10 +1419,14 @@ static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1)
{
jit_int32_t reg;
- reg = jit_get_reg(jit_class_gpr);
- addi(rn(reg), r0, i0);
- str_d(rn(reg), r1);
- jit_unget_reg(reg);
+ if (i0) {
+ reg = jit_get_reg(jit_class_gpr);
+ addi(rn(reg), r0, i0);
+ str_d(rn(reg), r1);
+ jit_unget_reg(reg);
+ }
+ else
+ str_d(r0, r1);
}
static void
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月26日 10:59:28 +0000

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