Search in sources :

Example 56 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeStrictMath method asin.

/**
 * native
 *
 * @see StrictMath#asin(double)
 */
private static Result asin(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    double a = (double) methodArgs.invokeArgs[0];
    double r = StrictMath.asin(a);
    Result result = NativeMethod.result(methodCode, r, frame);
    return result;
}
Also used : Result(io.nuls.contract.vm.Result)

Example 57 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeStrictMath method IEEEremainder.

/**
 * native
 *
 * @see StrictMath#IEEEremainder(double, double)
 */
private static Result IEEEremainder(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    double f1 = (double) methodArgs.invokeArgs[0];
    double f2 = (double) methodArgs.invokeArgs[1];
    double r = StrictMath.IEEEremainder(f1, f2);
    Result result = NativeMethod.result(methodCode, r, frame);
    return result;
}
Also used : Result(io.nuls.contract.vm.Result)

Example 58 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeStrictMath method hypot.

/**
 * native
 *
 * @see StrictMath#hypot(double, double)
 */
private static Result hypot(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    double x = (double) methodArgs.invokeArgs[0];
    double y = (double) methodArgs.invokeArgs[1];
    double r = StrictMath.hypot(x, y);
    Result result = NativeMethod.result(methodCode, r, frame);
    return result;
}
Also used : Result(io.nuls.contract.vm.Result)

Example 59 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeStrictMath method log.

/**
 * native
 *
 * @see StrictMath#log(double)
 */
private static Result log(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    double a = (double) methodArgs.invokeArgs[0];
    double r = StrictMath.log(a);
    Result result = NativeMethod.result(methodCode, r, frame);
    return result;
}
Also used : Result(io.nuls.contract.vm.Result)

Example 60 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeArray method newArray.

/**
 * native
 *
 * @see Array#newArray(Class, int)
 */
private static Result newArray(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    ObjectRef componentType = (ObjectRef) methodArgs.invokeArgs[0];
    int length = (int) methodArgs.invokeArgs[1];
    VariableType variableType = VariableType.valueOf("[" + componentType.getRef());
    ObjectRef array = frame.heap.newArray(variableType, length);
    Result result = NativeMethod.result(methodCode, array, frame);
    return result;
}
Also used : VariableType(io.nuls.contract.vm.code.VariableType) ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Aggregations

Result (io.nuls.contract.vm.Result)63 ObjectRef (io.nuls.contract.vm.ObjectRef)35 VariableType (io.nuls.contract.vm.code.VariableType)12 MethodCode (io.nuls.contract.vm.code.MethodCode)6 ClassCode (io.nuls.contract.vm.code.ClassCode)5 MethodArgs (io.nuls.contract.vm.MethodArgs)3 MethodInsnNode (org.objectweb.asm.tree.MethodInsnNode)3 Frame (io.nuls.contract.vm.Frame)1 VM (io.nuls.contract.vm.VM)1 ErrorException (io.nuls.contract.vm.exception.ErrorException)1 ArrayList (java.util.ArrayList)1 AccountState (org.ethereum.core.AccountState)1 DataWord (org.ethereum.vm.DataWord)1