Added uint64 intrisics.

This commit is contained in:
Бранимир Караџић
2019-09-04 22:26:45 -07:00
parent 5192f02708
commit da9248697e
2 changed files with 96 additions and 0 deletions

View File

@@ -468,6 +468,66 @@ namespace bx
;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_li(uint64_t _a)
{
return _a;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_dec(uint64_t _a)
{
return _a - 1;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_inc(uint64_t _a)
{
return _a + 1;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_not(uint64_t _a)
{
return ~_a;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_neg(uint64_t _a)
{
return -(int32_t)_a;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_ext(uint64_t _a)
{
return ( (int32_t)_a)>>31;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_and(uint64_t _a, uint64_t _b)
{
return _a & _b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_andc(uint64_t _a, uint64_t _b)
{
return _a & ~_b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_xor(uint64_t _a, uint64_t _b)
{
return _a ^ _b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_xorl(uint64_t _a, uint64_t _b)
{
return !_a != !_b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_or(uint64_t _a, uint64_t _b)
{
return _a | _b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_orc(uint64_t _a, uint64_t _b)
{
return _a | ~_b;
}
inline BX_CONSTEXPR_FUNC uint64_t uint64_sll(uint64_t _a, int32_t _sa)
{
return _a << _sa;

View File

@@ -181,6 +181,42 @@ namespace bx
///
BX_CONSTEXPR_FUNC uint32_t uint64_cnttz(uint64_t _val);
///
BX_CONSTEXPR_FUNC uint64_t uint64_li(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_dec(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_inc(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_not(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_neg(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_ext(uint64_t _a);
///
BX_CONSTEXPR_FUNC uint64_t uint64_and(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_andc(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_xor(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_xorl(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_or(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_orc(uint64_t _a, uint64_t _b);
///
BX_CONSTEXPR_FUNC uint64_t uint64_sll(uint64_t _a, int32_t _sa);