artur-zawlocki
10 years ago
4 changed files with 53 additions and 15 deletions
@ -0,0 +1,24 @@ |
|||
|
|||
#include "Endianness.h" |
|||
|
|||
#include <llvm/IR/IntrinsicInst.h> |
|||
|
|||
#include "Type.h" |
|||
|
|||
namespace dev |
|||
{ |
|||
namespace eth |
|||
{ |
|||
namespace jit |
|||
{ |
|||
|
|||
llvm::Value* Endianness::toBE(llvm::IRBuilder<>& _builder, llvm::Value* _word) |
|||
{ |
|||
// TODO: Native is Little Endian
|
|||
auto bswap = llvm::Intrinsic::getDeclaration(_builder.GetInsertBlock()->getParent()->getParent(), llvm::Intrinsic::bswap, Type::i256); |
|||
return _builder.CreateCall(bswap, _word); |
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,22 @@ |
|||
|
|||
#pragma once |
|||
|
|||
#include <llvm/IR/IRBuilder.h> |
|||
|
|||
namespace dev |
|||
{ |
|||
namespace eth |
|||
{ |
|||
namespace jit |
|||
{ |
|||
|
|||
class Endianness |
|||
{ |
|||
public: |
|||
|
|||
static llvm::Value* toBE(llvm::IRBuilder<>& _builder, llvm::Value* _word); |
|||
}; |
|||
|
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue