Ejemplo n.º 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)))
Ejemplo n.º 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)))
Ejemplo n.º 3
0
def rem(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenRemSInt32(), expr1, expr2)
Ejemplo n.º 4
0
def div(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenDivSInt32(), expr1, expr2)
Ejemplo n.º 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))
Ejemplo n.º 6
0
def eq(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenEqInt32(), expr1, expr2)
Ejemplo n.º 7
0
def bit_and(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAndInt32(), expr1, expr2)
Ejemplo n.º 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)))
Ejemplo n.º 9
0
def add_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAddInt64(), expr1, expr2)
Ejemplo n.º 10
0
def add(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenAddInt32(), expr1, expr2)
Ejemplo n.º 11
0
def l_s(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenLtSInt32(), expr1, expr2)
Ejemplo n.º 12
0
def le_u(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenLeUInt32(), expr1, expr2)
Ejemplo n.º 13
0
def ge_s(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenGeSInt32(), expr1, expr2)
Ejemplo n.º 14
0
def ne(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenNeInt32(), expr1, expr2)
Ejemplo n.º 15
0
def udiv_64_32_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenDivUInt64(), expr1,
                              u_32_to_64(expr2))
Ejemplo n.º 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)))
Ejemplo n.º 17
0
def sub(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenSubInt32(), expr1, expr2)
Ejemplo n.º 18
0
def l_rs(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenShrUInt32(), expr1, expr2)
Ejemplo n.º 19
0
def mul(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenMulInt32(), expr1, expr2)
Ejemplo n.º 20
0
def bit_xor(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenXorInt32(), expr1, expr2)
Ejemplo n.º 21
0
def mul_64(expr1, expr2):
    return lib.BinaryenBinary(module, lib.BinaryenMulInt64(), expr1, expr2)