vcf/JavaScriptKit/js-impl/jslong.h File Reference
Defines | |
| #define | JSLL_MAXINT JSLL_MaxInt() |
| #define | JSLL_MININT JSLL_MinInt() |
| #define | JSLL_ZERO JSLL_Zero() |
| #define | JSLL_INIT(hi, lo) {JS_INT32(hi), JS_INT32(lo)} |
| #define | JSLL_IS_ZERO(a) (((a).hi == 0) && ((a).lo == 0)) |
| #define | JSLL_EQ(a, b) (((a).hi == (b).hi) && ((a).lo == (b).lo)) |
| #define | JSLL_NE(a, b) (((a).hi != (b).hi) || ((a).lo != (b).lo)) |
| #define | JSLL_GE_ZERO(a) (((a).hi >> 31) == 0) |
| #define | JSLL_CMP(a, op, b) JSLL_REAL_CMP(a, op, b) |
| #define | JSLL_UCMP(a, op, b) JSLL_REAL_UCMP(a, op, b) |
| #define | JSLL_REAL_CMP(a, op, b) |
| #define | JSLL_REAL_UCMP(a, op, b) |
| #define | JSLL_AND(r, a, b) |
| #define | JSLL_OR(r, a, b) |
| #define | JSLL_XOR(r, a, b) |
| #define | JSLL_OR2(r, a) |
| #define | JSLL_NOT(r, a) |
| #define | JSLL_NEG(r, a) |
| #define | JSLL_ADD(r, a, b) |
| #define | JSLL_SUB(r, a, b) |
| #define | JSLL_MUL(r, a, b) |
| #define | jslo16(a) ((a) & JS_BITMASK(16)) |
| #define | jshi16(a) ((a) >> 16) |
| #define | JSLL_MUL32(r, a, b) |
| #define | JSLL_UDIVMOD(qp, rp, a, b) jsll_udivmod(qp, rp, a, b) |
| #define | JSLL_DIV(r, a, b) |
| #define | JSLL_MOD(r, a, b) |
| #define | JSLL_SHL(r, a, b) |
| #define | JSLL_ISHL(r, a, b) |
| #define | JSLL_SHR(r, a, b) |
| #define | JSLL_USHR(r, a, b) |
| #define | JSLL_L2I(i, l) ((i) = (l).lo) |
| #define | JSLL_L2UI(ui, l) ((ui) = (l).lo) |
| #define | JSLL_L2F(f, l) { double _d; JSLL_L2D(_d, l); (f) = (JSFloat64)_d; } |
| #define | JSLL_L2D(d, l) |
| #define | JSLL_I2L(l, i) { JSInt32 _i = (i) >> 31; (l).lo = (i); (l).hi = _i; } |
| #define | JSLL_UI2L(l, ui) ((l).lo = (ui), (l).hi = 0) |
| #define | JSLL_F2L(l, f) { double _d = (double)f; JSLL_D2L(l, _d); } |
| #define | JSLL_D2L(l, d) |
Functions | |
| JS_BEGIN_EXTERN_C | JS_PUBLIC_API (JSInt64) JSLL_MaxInt(void) |
| JS_PUBLIC_API (void) jsll_udivmod(JSUint64 *qp | |
Variables | |
| JSUint64 * | rp |
| JSUint64 JSUint64 | a |
| JSUint64 JSUint64 JSUint64 | b |
Define Documentation
|
|
|
|
|
Value: |
|
|
Value: |
|
|
|
|
|
Value: { \
int _negative; \
double _absval, _d_hi; \
JSInt64 _lo_d; \
\
_negative = ((d) < 0); \
_absval = _negative ? -(d) : (d); \
\
(l).hi = _absval / 4.294967296e9; \
(l).lo = 0; \
JSLL_L2D(_d_hi, l); \
_absval -= _d_hi; \
_lo_d.hi = 0; \
if (_absval < 0) { \
_lo_d.lo = -_absval; \
JSLL_SUB(l, l, _lo_d); \
} else { \
_lo_d.lo = _absval; \
JSLL_ADD(l, l, _lo_d); \
} \
\
if (_negative) \
JSLL_NEG(l, l); \
}
|
|
|
Value: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: |
|
|
Value: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: |
|
|
Value: |
|
|
Value: { \
JSUint32 _a1, _a0, _b1, _b0, _y0, _y1, _y2, _y3; \
_a1 = jshi16(a), _a0 = jslo16(a); \
_b1 = jshi16(b), _b0 = jslo16(b); \
_y0 = _a0 * _b0; \
_y1 = _a0 * _b1; \
_y2 = _a1 * _b0; \
_y3 = _a1 * _b1; \
_y1 += jshi16(_y0); /* can't carry */ \
_y1 += _y2; /* might carry */ \
if (_y1 < _y2) \
_y3 += (JSUint32)(JS_BIT(16)); /* propagate */ \
(r).lo = (jslo16(_y1) << 16) + jslo16(_y0); \
(r).hi = _y3 + jshi16(_y1); \
}
|
|
|
|
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
|
|
|
|
|
|
|
|
|
Value: |
|
|
Value: |
|
|
|
|
|
|
Function Documentation
|
|
|
|
|
|
Variable Documentation
|
|
|
|
|
|
|
|
|
