You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
532 B
39 lines
532 B
10 years ago
|
#pragma once
|
||
|
|
||
|
#include <evmjit/libevmjit/Common.h>
|
||
|
|
||
|
namespace dev
|
||
|
{
|
||
|
namespace eth
|
||
|
{
|
||
|
|
||
|
inline u256 llvm2eth(jit::i256 _i)
|
||
|
{
|
||
|
u256 u = 0;
|
||
|
u |= _i.d;
|
||
|
u <<= 64;
|
||
|
u |= _i.c;
|
||
|
u <<= 64;
|
||
|
u |= _i.b;
|
||
|
u <<= 64;
|
||
|
u |= _i.a;
|
||
|
return u;
|
||
|
}
|
||
|
|
||
|
inline jit::i256 eth2llvm(u256 _u)
|
||
|
{
|
||
|
jit::i256 i;
|
||
|
u256 mask = 0xFFFFFFFFFFFFFFFF;
|
||
|
i.a = static_cast<uint64_t>(_u & mask);
|
||
|
_u >>= 64;
|
||
|
i.b = static_cast<uint64_t>(_u & mask);
|
||
|
_u >>= 64;
|
||
|
i.c = static_cast<uint64_t>(_u & mask);
|
||
|
_u >>= 64;
|
||
|
i.d = static_cast<uint64_t>(_u & mask);
|
||
|
return i;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|