|
|
@ -22,6 +22,9 @@ llvm::Value* Endianness::bswapIfLE(llvm::IRBuilder<>& _builder, llvm::Value* _wo |
|
|
|
|
|
|
|
if (tester{1}.isLE) |
|
|
|
{ |
|
|
|
if (auto constant = llvm::dyn_cast<llvm::ConstantInt>(_word)) |
|
|
|
return _builder.getInt(constant->getValue().byteSwap()); |
|
|
|
|
|
|
|
// OPT: Cache func declaration?
|
|
|
|
auto bswapFunc = llvm::Intrinsic::getDeclaration(_builder.GetInsertBlock()->getParent()->getParent(), llvm::Intrinsic::bswap, Type::Word); |
|
|
|
return _builder.CreateCall(bswapFunc, _word); |
|
|
|