mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-04 05:31:51 +00:00
Adding llvm::sys::swapByteOrder() for the common use-case of byte-swapping a value in place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9bb92cb537
commit
25e659b6ff
@ -95,6 +95,11 @@ inline signed long long getSwappedBytes(signed long long C) {
|
|||||||
return SwapByteOrder_64(C);
|
return SwapByteOrder_64(C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline void swapByteOrder(T &Value) {
|
||||||
|
Value = getSwappedBytes(Value);
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace sys
|
} // end namespace sys
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
|
||||||
|
@ -125,4 +125,52 @@ TEST(getSwappedBytes, int64_t) {
|
|||||||
sys::getSwappedBytes(int64_t(0x8877665544332211LL)));
|
sys::getSwappedBytes(int64_t(0x8877665544332211LL)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, uint8_t) {
|
||||||
|
uint8_t value = 0x11;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(uint8_t(0x11), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, uint16_t) {
|
||||||
|
uint16_t value = 0x2211;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(uint16_t(0x1122), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, uint32_t) {
|
||||||
|
uint32_t value = 0x44332211;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(uint32_t(0x11223344), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, uint64_t) {
|
||||||
|
uint64_t value = 0x8877665544332211ULL;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(uint64_t(0x1122334455667788ULL), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, int8_t) {
|
||||||
|
int8_t value = 0x11;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(int8_t(0x11), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, int16_t) {
|
||||||
|
int16_t value = 0x2211;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(int16_t(0x1122), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, int32_t) {
|
||||||
|
int32_t value = 0x44332211;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(int32_t(0x11223344), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(swapByteOrder, int64_t) {
|
||||||
|
int64_t value = 0x8877665544332211LL;
|
||||||
|
sys::swapByteOrder(value);
|
||||||
|
EXPECT_EQ(int64_t(0x1122334455667788LL), value);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user