Paweł Bylica
10 years ago
4 changed files with 54 additions and 0 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