/*
- * Copyright (C) 2012-2022 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2023 Free Software Foundation, Inc.
*
* This file is part of GNU lightning.
*
jit_word_t i0, jit_int32_t r0, \
jit_float##size##_t *i1) \
{ \
- jit_word_t word; \
+ jit_word_t w; \
jit_int32_t reg = jit_get_reg(jit_class_fpr| \
jit_class_nospill); \
assert(jit_x87_reg_p(reg)); \
x87_movi_##type(rn(reg), i1); \
- word = x87_b##name##r_##type(i0, r0, rn(reg)); \
+ w = x87_b##name##r_##type(i0, r0, rn(reg)); \
jit_unget_reg(reg); \
- return (word); \
+ return (w); \
}
# define fopi(name) fpr_opi(name, f, 32)
# define fbopi(name) fpr_bopi(name, f, 32)
static void
_x87_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1)
{
+ CHECK_CVT_OFFSET();
#if defined(sun)
/* for the sake of passing test cases in x87 mode, otherwise only sse
* is supported */
static void
_x87_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1)
{
+ CHECK_CVT_OFFSET();
fldr(r1);
fisttpqm(CVT_OFFSET, _RBP_REGNO, _NOREG, _SCL1);
ldxi(r0, _RBP_REGNO, CVT_OFFSET);
static void
_x87_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1)
{
+ CHECK_CVT_OFFSET();
stxi(CVT_OFFSET, _RBP_REGNO, r1);
# if __X32
fildlm(CVT_OFFSET, _RBP_REGNO, _NOREG, _SCL1);
fldr(r0);
fucomipr(r1 + 1);
}
- jcc(code, i0);
- return (_jit->pc.w);
+ return (jcc(code, i0));
}
static jit_word_t
fldr(f0);
fucomipr(f1 + 1);
}
- jcc(code, i0);
- return (_jit->pc.w);
+ return (jcc(code, i0));
}
fopi(lt)
fldln2();
else {
if (_jitc->no_data) {
+ CHECK_CVT_OFFSET();
reg = jit_get_reg(jit_class_gpr);
movi(rn(reg), data.i);
stxi_i(CVT_OFFSET, _RBP_REGNO, rn(reg));
fldln2();
else {
if (_jitc->no_data) {
+ CHECK_CVT_OFFSET();
reg = jit_get_reg(jit_class_gpr);
#if __X32 || __X64_32
movi(rn(reg), data.ii[0]);
fldr(f1);
fucomipr(f2 + 1);
}
- jpes(0);
- jp_code = _jit->pc.w;
+ jp_code = jpes(0);
cc(X86_CC_E, reg);
- patch_rel_char(jp_code, _jit->pc.w);
+ patch_at(jp_code, _jit->pc.w);
if (!rc)
xchgr(r0, reg);
}
fldr(f1);
fucomipr(f2 + 1);
}
- jpes(0);
- jp_code = _jit->pc.w;
+ jp_code = jpes(0);
cc(X86_CC_NE, reg);
- patch_rel_char(jp_code, _jit->pc.w);
+ patch_at(jp_code, _jit->pc.w);
if (!rc)
xchgr(r0, reg);
}
static jit_word_t
_x87_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1)
{
+ jit_word_t w;
jit_int32_t f0, f1;
jit_word_t jp_code;
if (r1 == _ST0_REGNO) f0 = r1, f1 = r0;
fldr(f0);
fucomipr(f1 + 1);
}
- jpes(0);
- jp_code = _jit->pc.w;
- jcc(X86_CC_E, i0);
- patch_rel_char(jp_code, _jit->pc.w);
- return (_jit->pc.w);
+ jp_code = jpes(0);
+ w = jcc(X86_CC_E, i0);
+ patch_at(jp_code, _jit->pc.w);
+ return (w);
}
dbopi(eq)
dbopi(ge)
static jit_word_t
_x87_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1)
{
+ jit_word_t w;
jit_int32_t f0, f1;
jit_word_t jp_code;
jit_word_t jz_code;
fldr(f0);
fucomipr(f1 + 1);
}
- jpes(0);
- jp_code = _jit->pc.w;
- jzs(0);
- jz_code = _jit->pc.w;
- patch_rel_char(jp_code, _jit->pc.w);
- jmpi(i0);
- patch_rel_char(jz_code, _jit->pc.w);
- return (_jit->pc.w);
+ jp_code = jpes(0);
+ jz_code = jzs(0);
+ patch_at(jp_code, _jit->pc.w);
+ w = jmpi(i0);
+ patch_at(jz_code, _jit->pc.w);
+ return (w);
}
dbopi(ne)
dbopi(unlt)