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))
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
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))
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))
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))
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))
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))
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))
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)
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)
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)
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))
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
def op_0x24(frame): # fload_2 value = frame.args[2] jassert_float(value) frame.stack.append(value)
def op_0x23(frame): # fload_1 value = frame.args[1] jassert_float(value) frame.stack.append(value)
def op_0x22(frame): # fload_0 value = frame.args[0] jassert_float(value) frame.stack.append(value)
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)
def f2d(frame): value = frame.stack.pop() jassert_float(value) frame.stack.append(("double", value[1]))
def fstore_3(frame): value = frame.stack.pop() jassert_float(value) frame.args[3] = value
def op_0x45(frame): # fstore_2 value = frame.stack.pop() jassert_float(value) frame.args[2] = value
def op_0x43(frame): # fstore_0 value = frame.stack.pop() jassert_float(value) frame.args[0] = value
def op_0x25(frame): # fload_3 value = frame.args[3] jassert_float(value) frame.stack.append(value)
def op_0x8d(frame): # f2d value = frame.stack.pop() jassert_float(value) frame.stack.append(("double", value[1]))
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
def fload(frame): index = ord(frame.code[frame.pc]) frame.pc += 1 value = frame.args[index] jassert_float(value) frame.stack.append(value)
def op_0x44(frame): # fstore_1 value = frame.stack.pop() jassert_float(value) frame.args[1] = value
def fload_3(frame): value = frame.args[3] jassert_float(value) frame.stack.append(value)
def op_0x46(frame): # fstore_3 value = frame.stack.pop() jassert_float(value) frame.args[3] = value
def fstore(frame): index = ord(frame.code[frame.pc]) frame.pc += 1 value = frame.stack.pop() jassert_float(value) frame.args[index] = value