Browse Source

Added uint64 intrisics.

Бранимир Караџић 6 years ago
parent
commit
da9248697e
2 changed files with 96 additions and 0 deletions
  1. 60 0
      include/bx/inline/uint32_t.inl
  2. 36 0
      include/bx/uint32_t.h

+ 60 - 0
include/bx/inline/uint32_t.inl

@@ -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;

+ 36 - 0
include/bx/uint32_t.h

@@ -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);