Example #1
0
def op_0x62(frame):  # fadd
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    result = value1[1] + value2[1]
    frame.stack.append(("float", result))
Example #2
0
def freturn(frame):
    value = frame.stack.pop()
    logger.debug("To be returned {0}".format(value))
    jassert_float(value)
    frame.ret = value
    frame.has_result = True
    frame.pc = len(frame.code) + 1
Example #3
0
def fadd(frame):
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    result = value1[1] + value2[1]
    frame.stack.append(("float", result))
Example #4
0
def fsub(frame):
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    result = value1[1] - value2[1]
    frame.stack.append(("float", result))
Example #5
0
def op_0x6a(frame):  # fmul
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    result = value1[1] * value2[1]
    #result = numpy.float32(result)
    frame.stack.append(("float", result))
Example #6
0
def fmul(frame):
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    result = value1[1] * value2[1]
    #result = numpy.float32(result)
    frame.stack.append(("float", result))
Example #7
0
def op_0x6e(frame):  # fdiv
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    if value2[1] == 0:
        frame.stack.append(("float", float("inf")))
        return
    result = value1[1] / value2[1]
    frame.stack.append(("float", result))
Example #8
0
def fdiv(frame):
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    if value2[1] == 0:
        frame.stack.append(("float", float("inf")))
        return
    result = value1[1] / value2[1]
    frame.stack.append(("float", result))
Example #9
0
def op_0x96(frame):  # fcmpg
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    if value1[1] > value2[1]:
        frame.stack.append(1)
    elif value1 == value2:
        frame.stack.append(0)
    else:
        frame.stack.append(-1)
Example #10
0
def fcmpg(frame):
    value2 = frame.stack.pop()
    value1 = frame.stack.pop()
    jassert_float(value1)
    jassert_float(value2)
    if value1[1] > value2[1]:
        frame.stack.append(1)
    elif value1 == value2:
        frame.stack.append(0)
    else:
        frame.stack.append(-1)
Example #11
0
def f2i(frame):
    value = frame.stack.pop()
    jassert_float(value)
    if value[1] is None:
        frame.stack.append(0)
    else:
        if value[1] < -2147483648:  # -1 * math.pow(2, 31)
            result = -2147483648
        elif value[1] > 2147483647:  # math.pow(2, 31) - 1
            result = 2147483647
        else:
            result = int(value[1])
        jassert_int(result)
        frame.stack.append(result)
Example #12
0
def f2l(frame):
    value = frame.stack.pop()
    jassert_float(value)
    if value[1] is None:
        frame.stack.append(("long", 0))
    else:
        min_value = long(-1 * math.pow(2, 63))
        max_value = long(math.pow(2, 63) - 1)
        if value[1] < min_value:
            result = min_value
        elif value[1] > max_value:
            result = max_value
        else:
            result = long(value[1])
        jassert_long(("long", result))
        frame.stack.append(("long", result))
Example #13
0
def fastore(frame):
    value = frame.stack.pop()
    index = frame.stack.pop()
    ref = frame.stack.pop()
    jassert_float(value)
    jassert_int(index)
    if ref is None:
        frame.vm.raise_exception(frame, "java/lang/NullPointerException")
        return
    jassert_ref(ref)
    array = frame.vm.heap[ref[1]]
    jassert_array(array)
    values = array.values
    if index < 0 or index >= len(values):
        frame.vm.raise_exception(frame,
                                 "java/lang/ArrayIndexOutOfBoundsException")
        return
    values[index] = value
Example #14
0
def fastore(frame):
    value = frame.stack.pop()
    index = frame.stack.pop()
    ref = frame.stack.pop()
    jassert_float(value)
    jassert_int(index)
    if ref is None:
        frame.vm.raise_exception(frame, "java/lang/NullPointerException")
        return
    jassert_ref(ref)
    array = frame.vm.heap[ref[1]]
    jassert_array(array)
    values = array.values
    if index < 0 or index >= len(values):
        frame.vm.raise_exception(frame,
                                 "java/lang/ArrayIndexOutOfBoundsException")
        return
    values[index] = value
Example #15
0
def op_0x24(frame):  # fload_2
    value = frame.args[2]
    jassert_float(value)
    frame.stack.append(value)
Example #16
0
def op_0x23(frame):  # fload_1
    value = frame.args[1]
    jassert_float(value)
    frame.stack.append(value)
Example #17
0
def op_0x22(frame):  # fload_0
    value = frame.args[0]
    jassert_float(value)
    frame.stack.append(value)
Example #18
0
def op_0x17(frame):  # fload
    index = ord(frame.code[frame.pc])
    frame.pc += 1
    value = frame.args[index]
    jassert_float(value)
    frame.stack.append(value)
Example #19
0
def f2d(frame):
    value = frame.stack.pop()
    jassert_float(value)
    frame.stack.append(("double", value[1]))
Example #20
0
def fstore_3(frame):
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[3] = value
Example #21
0
def op_0x45(frame):  # fstore_2
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[2] = value
Example #22
0
def op_0x43(frame):  # fstore_0
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[0] = value
Example #23
0
def op_0x25(frame):  # fload_3
    value = frame.args[3]
    jassert_float(value)
    frame.stack.append(value)
Example #24
0
def op_0x8d(frame):  # f2d
    value = frame.stack.pop()
    jassert_float(value)
    frame.stack.append(("double", value[1]))
Example #25
0
def op_0x38(frame):  # fstore
    index = ord(frame.code[frame.pc])
    frame.pc += 1
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[index] = value
Example #26
0
def fload(frame):
    index = ord(frame.code[frame.pc])
    frame.pc += 1
    value = frame.args[index]
    jassert_float(value)
    frame.stack.append(value)
Example #27
0
def op_0x44(frame):  # fstore_1
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[1] = value
Example #28
0
def fload_3(frame):
    value = frame.args[3]
    jassert_float(value)
    frame.stack.append(value)
Example #29
0
def op_0x46(frame):  # fstore_3
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[3] = value
Example #30
0
def fstore(frame):
    index = ord(frame.code[frame.pc])
    frame.pc += 1
    value = frame.stack.pop()
    jassert_float(value)
    frame.args[index] = value