mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[ewasm] Polyfill: Rename endian_swap -> bswap.
This commit is contained in:
@@ -59,20 +59,20 @@ function u256_to_address(x1, x2, x3, x4) -> r1, r2, r3 {
|
||||
r3 := x4
|
||||
}
|
||||
|
||||
function endian_swap_16(x) -> y {
|
||||
function bswap16(x) -> y {
|
||||
let hi := i64.and(i64.shl(x, 8), 0xff00)
|
||||
let lo := i64.and(i64.shr_u(x, 8), 0xff)
|
||||
y := i64.or(hi, lo)
|
||||
}
|
||||
|
||||
function endian_swap_32(x) -> y {
|
||||
let hi := i64.shl(endian_swap_16(x), 16)
|
||||
let lo := endian_swap_16(i64.shr_u(x, 16))
|
||||
function bswap32(x) -> y {
|
||||
let hi := i64.shl(bswap16(x), 16)
|
||||
let lo := bswap16(i64.shr_u(x, 16))
|
||||
y := i64.or(hi, lo)
|
||||
}
|
||||
|
||||
function endian_swap(x) -> y {
|
||||
let hi := i64.shl(endian_swap_32(x), 32)
|
||||
let lo := endian_swap_32(i64.shr_u(x, 32))
|
||||
function bswap64(x) -> y {
|
||||
let hi := i64.shl(bswap32(x), 32)
|
||||
let lo := bswap32(i64.shr_u(x, 32))
|
||||
y := i64.or(hi, lo)
|
||||
}
|
||||
|
||||
@@ -161,10 +161,10 @@ function mload(x1, x2, x3, x4) -> z1, z2, z3, z4 {
|
||||
}
|
||||
|
||||
function mload_internal(pos:i32) -> z1, z2, z3, z4 {
|
||||
z1 := endian_swap(i64.load(pos))
|
||||
z2 := endian_swap(i64.load(i32.add(pos, 8:i32)))
|
||||
z3 := endian_swap(i64.load(i32.add(pos, 16:i32)))
|
||||
z4 := endian_swap(i64.load(i32.add(pos, 24:i32)))
|
||||
z1 := bswap64(i64.load(pos))
|
||||
z2 := bswap64(i64.load(i32.add(pos, 8:i32)))
|
||||
z3 := bswap64(i64.load(i32.add(pos, 16:i32)))
|
||||
z4 := bswap64(i64.load(i32.add(pos, 24:i32)))
|
||||
}
|
||||
|
||||
function mstore(x1, x2, x3, x4, y1, y2, y3, y4) {
|
||||
@@ -172,10 +172,10 @@ function mstore(x1, x2, x3, x4, y1, y2, y3, y4) {
|
||||
}
|
||||
|
||||
function mstore_internal(pos:i32, y1, y2, y3, y4) {
|
||||
i64.store(pos, endian_swap(y1))
|
||||
i64.store(i32.add(pos, 8:i32), endian_swap(y2))
|
||||
i64.store(i32.add(pos, 16:i32), endian_swap(y3))
|
||||
i64.store(i32.add(pos, 24:i32), endian_swap(y4))
|
||||
i64.store(pos, bswap64(y1))
|
||||
i64.store(i32.add(pos, 8:i32), bswap64(y2))
|
||||
i64.store(i32.add(pos, 16:i32), bswap64(y3))
|
||||
i64.store(i32.add(pos, 24:i32), bswap64(y4))
|
||||
}
|
||||
|
||||
function mstore_address(pos:i32, a1, a2, a3, a4) {
|
||||
|
||||
Reference in New Issue
Block a user