示例#1
0
def invert_double_cell(expr):
    """forth wants low | hi, but wasm is little endian (i.e. the
    reverse). Cells are already stored in little-endian, so we can get
    a proper 64 bit number by rotating by 32 bits.

    """
    return lib.BinaryenBinary(module, lib.BinaryenRotRInt64(), expr, lib.BinaryenConst(module, lib.BinaryenLiteralInt64(32)))
示例#2
0
def div_64_32_32(expr1, expr2):
    return s_64_to_32(
        lib.BinaryenBinary(module, lib.BinaryenDivSInt64(), expr1,
                           s_32_to_64(expr2)))
示例#3
0
def rem(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenRemSInt32(), expr1, expr2)
示例#4
0
def div(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenDivSInt32(), expr1, expr2)
示例#5
0
def umul_32_32_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenMulInt64(),
                              u_32_to_64(expr1), u_32_to_64(expr2))
示例#6
0
def eq(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenEqInt32(), expr1, expr2)
示例#7
0
def bit_and(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAndInt32(), expr1, expr2)
示例#8
0
def urem_64_32_32(expr1, expr2):
    return u_64_to_32(
        lib.BinaryenBinary(module, lib.BinaryenRemUInt64(), expr1,
                           u_32_to_64(expr2)))
示例#9
0
def add_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAddInt64(), expr1, expr2)
示例#10
0
def add(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAddInt32(), expr1, expr2)
示例#11
0
def l_s(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenLtSInt32(), expr1, expr2)
示例#12
0
def le_u(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenLeUInt32(), expr1, expr2)
示例#13
0
def ge_s(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenGeSInt32(), expr1, expr2)
示例#14
0
def ne(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenNeInt32(), expr1, expr2)
示例#15
0
def udiv_64_32_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenDivUInt64(), expr1,
                              u_32_to_64(expr2))
示例#16
0
def rem_64_32_32(expr1, expr2):
    return s_64_to_32(
        lib.BinaryenBinary(module, lib.BinaryenRemSInt64(), expr1,
                           s_32_to_64(expr2)))
示例#17
0
def sub(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenSubInt32(), expr1, expr2)
示例#18
0
def l_rs(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenShrUInt32(), expr1, expr2)
示例#19
0
def mul(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenMulInt32(), expr1, expr2)
示例#20
0
def bit_xor(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenXorInt32(), expr1, expr2)
示例#21
0
def mul_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenMulInt64(), expr1, expr2)