Commit 9d51007d authored by Stephanie Gawroriski's avatar Stephanie Gawroriski
Browse files

Remove the old bootstrap, it is broken and incomplete anyway.

parent e1f61725
......@@ -15,36 +15,34 @@
#include "cc_squirreljme_jvm_Assembly.h"
#include "squirreljme.h"
JNIEXPORT jlong JNICALL longPack(JNIEnv* env, jclass classy, jint al, jint ah)
{
return (((jlong)al) & UINT64_C(0xFFFFFFFF)) |
((((jlong)ah) & UINT64_C(0xFFFFFFFF)) << UINT64_C(32));
}
JNIEXPORT jint JNICALL longUnpackHigh(JNIEnv* env, jclass classy, jlong v)
{
return (jint)(v >> UINT64_C(32));
}
JNIEXPORT jint JNICALL longUnpackLow(JNIEnv* env, jclass classy, jlong v)
{
return (jint)(v);
}
// Method handler for special functions
JNIEXPORT void JNICALL restrictedFunction(JNIEnv* env, jclass classy);
// Assembly method mappings
static const JNINativeMethod assemblyMethods[] =
{
{"arrayLength", "(J)I", (void*)restrictedFunction},
{"arrayLength", "(I)I", (void*)restrictedFunction},
{"arrayLength", "(Ljava/lang/Object;)I", (void*)restrictedFunction},
{"arrayLengthSet", "(JI)V", (void*)restrictedFunction},
{"arrayLengthSet", "(Ljava/lang/Object;I)V", (void*)restrictedFunction},
{"atomicCompareGetAndSet", "(IIJ)I", (void*)restrictedFunction},
{"atomicDecrementAndGet", "(J)I", (void*)restrictedFunction},
{"atomicIncrement", "(J)V", (void*)restrictedFunction},
{"breakpoint", "()V", (void*)restrictedFunction},
{"classInfoOfBoolean", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfBooleanPointer", "()J", (void*)restrictedFunction},
{"classInfoOfByte", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfBytePointer", "()J", (void*)restrictedFunction},
{"classInfoOfCharacter", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfCharacterPointer", "()J", (void*)restrictedFunction},
{"classInfoOfDouble", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfDoublePointer", "()J", (void*)restrictedFunction},
{"classInfoOfFloat", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfFloatPointer", "()J", (void*)restrictedFunction},
{"classInfoOfInteger", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfIntegerPointer", "()J", (void*)restrictedFunction},
{"classInfoOfLong", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfLongPointer", "()J", (void*)restrictedFunction},
{"classInfoOfShort", "()Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"classInfoOfShortPointer", "()J", (void*)restrictedFunction},
{"doublePack", "(II)D", (void*)restrictedFunction},
{"doubleToRawLongBits", "(D)J", (void*)restrictedFunction},
{"doubleUnpackHigh", "(D)I", (void*)restrictedFunction},
......@@ -52,50 +50,44 @@ static const JNINativeMethod assemblyMethods[] =
{"exceptionHandle", "()V", (void*)restrictedFunction},
{"floatToRawIntBits", "(F)I", (void*)restrictedFunction},
{"intBitsToFloat", "(I)F", (void*)restrictedFunction},
{"invoke", "(JJ)V", (void*)restrictedFunction},
{"invoke", "(JJI)V", (void*)restrictedFunction},
{"invoke", "(JJII)V", (void*)restrictedFunction},
{"invoke", "(JJIII)V", (void*)restrictedFunction},
{"invoke", "(JJIIII)V", (void*)restrictedFunction},
{"invoke", "(JJIIIII)V", (void*)restrictedFunction},
{"invoke", "(JJIIIIII)V", (void*)restrictedFunction},
{"invoke", "(JJIIIIIII)V", (void*)restrictedFunction},
{"invoke", "(JJIIIIIIII)V", (void*)restrictedFunction},
{"invokeV", "(JJ)I", (void*)restrictedFunction},
{"invokeV", "(JJI)I", (void*)restrictedFunction},
{"invokeV", "(JJII)I", (void*)restrictedFunction},
{"invokeV", "(JJIII)I", (void*)restrictedFunction},
{"invokeV", "(JJIIII)I", (void*)restrictedFunction},
{"invokeV", "(JJIIIII)I", (void*)restrictedFunction},
{"invokeV", "(JJIIIIII)I", (void*)restrictedFunction},
{"invokeV", "(JJIIIIIII)I", (void*)restrictedFunction},
{"invokeV", "(JJIIIIIIII)I", (void*)restrictedFunction},
{"invokeVL", "(JJ)J", (void*)restrictedFunction},
{"invokeVL", "(JJI)J", (void*)restrictedFunction},
{"invokeVL", "(JJII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIIII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIIIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(JJIIIIIIII)J", (void*)restrictedFunction},
{"invoke", "(II)V", (void*)restrictedFunction},
{"invoke", "(III)V", (void*)restrictedFunction},
{"invoke", "(IIII)V", (void*)restrictedFunction},
{"invoke", "(IIIII)V", (void*)restrictedFunction},
{"invoke", "(IIIIII)V", (void*)restrictedFunction},
{"invoke", "(IIIIIII)V", (void*)restrictedFunction},
{"invoke", "(IIIIIIII)V", (void*)restrictedFunction},
{"invoke", "(IIIIIIIII)V", (void*)restrictedFunction},
{"invoke", "(IIIIIIIIII)V", (void*)restrictedFunction},
{"invokeV", "(II)I", (void*)restrictedFunction},
{"invokeV", "(III)I", (void*)restrictedFunction},
{"invokeV", "(IIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIIIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIIIIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIIIIIII)I", (void*)restrictedFunction},
{"invokeV", "(IIIIIIIIII)I", (void*)restrictedFunction},
{"invokeVL", "(II)J", (void*)restrictedFunction},
{"invokeVL", "(III)J", (void*)restrictedFunction},
{"invokeVL", "(IIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIIIIIII)J", (void*)restrictedFunction},
{"invokeVL", "(IIIIIIIIII)J", (void*)restrictedFunction},
{"longBitsToDouble", "(J)D", (void*)restrictedFunction},
{"longPack", "(II)J", (void*)restrictedFunction},
{"longUnpackHigh", "(J)I", (void*)restrictedFunction},
{"longUnpackLow", "(J)I", (void*)restrictedFunction},
{"longPack", "(II)J", (void*)longPack},
{"longUnpackHigh", "(J)I", (void*)longUnpackHigh},
{"longUnpackLow", "(J)I", (void*)longUnpackLow},
{"memReadByte", "(JI)I", (void*)restrictedFunction},
{"memReadInt", "(JI)I", (void*)restrictedFunction},
{"memReadJavaInt", "(JI)I", (void*)restrictedFunction},
{"memReadJavaLong", "(JI)J", (void*)restrictedFunction},
{"memReadJavaShort", "(JI)I", (void*)restrictedFunction},
{"memReadPointer", "(JI)J", (void*)restrictedFunction},
{"memReadLong", "(JI)J", (void*)restrictedFunction},
{"memReadShort", "(JI)I", (void*)restrictedFunction},
{"memWriteByte", "(JII)V", (void*)restrictedFunction},
{"memWriteInt", "(JII)V", (void*)restrictedFunction},
{"memWriteJavaInt", "(JII)V", (void*)restrictedFunction},
{"memWriteJavaLong", "(JIJ)V", (void*)restrictedFunction},
{"memWriteJavaShort", "(JII)V", (void*)restrictedFunction},
{"memWritePointer", "(JIJ)V", (void*)restrictedFunction},
{"memWriteLong", "(JIJ)V", (void*)restrictedFunction},
{"memWriteShort", "(JII)V", (void*)restrictedFunction},
{"monitorCountDecrementAndGetAtomic", "(J)I", (void*)restrictedFunction},
{"monitorCountDecrementAndGetAtomic", "(Ljava/lang/Object;)I", (void*)restrictedFunction},
......@@ -121,37 +113,23 @@ static const JNINativeMethod assemblyMethods[] =
{"monitorOwnerSetAtomic", "(JLjava/lang/Thread;)V", (void*)restrictedFunction},
{"monitorOwnerSetAtomic", "(Ljava/lang/Object;J)V", (void*)restrictedFunction},
{"monitorOwnerSetAtomic", "(Ljava/lang/Object;Ljava/lang/Thread;)V", (void*)restrictedFunction},
{"objectGetClassInfo", "(J)Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"objectGetClassInfo", "(Ljava/lang/Object;)Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"objectGetClassInfoPointer", "(J)J", (void*)restrictedFunction},
{"objectGetClassInfoPointer", "(Ljava/lang/Object;)J", (void*)restrictedFunction},
{"objectSetClassInfo", "(JJ)V", (void*)restrictedFunction},
{"objectSetClassInfo", "(Ljava/lang/Object;J)V", (void*)restrictedFunction},
{"objectSetClassInfo", "(JLcc/squirreljme/jvm/ClassInfo;)V", (void*)restrictedFunction},
{"objectSetClassInfo", "(Ljava/lang/Object;Lcc/squirreljme/jvm/ClassInfo;)V", (void*)restrictedFunction},
{"objectToPointer", "(Ljava/lang/Object;)J", (void*)restrictedFunction},
{"objectToPointerRefQueue", "(Ljava/lang/Object;)J", (void*)restrictedFunction},
{"pointerToObject", "(J)Ljava/lang/Object;", (void*)restrictedFunction},
{"pointerToClassInfo", "(J)Lcc/squirreljme/jvm/ClassInfo;", (void*)restrictedFunction},
{"poolLoad", "(JI)J", (void*)restrictedFunction},
{"poolLoad", "(Ljava/lang/Object;I)J", (void*)restrictedFunction},
{"poolStore", "(JIJ)V", (void*)restrictedFunction},
{"poolStore", "(Ljava/lang/Object;IJ)V", (void*)restrictedFunction},
{"refCount", "(J)V", (void*)restrictedFunction},
{"objectToPointer", "(Ljava/lang/Object;)I", (void*)restrictedFunction},
{"objectToPointerRefQueue", "(Ljava/lang/Object;)I", (void*)restrictedFunction},
{"pointerToObject", "(I)Ljava/lang/Object;", (void*)restrictedFunction},
{"poolLoad", "(II)I", (void*)restrictedFunction},
{"poolLoad", "(Ljava/lang/Object;I)I", (void*)restrictedFunction},
{"refCount", "(I)V", (void*)restrictedFunction},
{"refCount", "(Ljava/lang/Object;)V", (void*)restrictedFunction},
{"refGetCount", "(J)I", (void*)restrictedFunction},
{"refGetCount", "(I)I", (void*)restrictedFunction},
{"refGetCount", "(Ljava/lang/Object;)I", (void*)restrictedFunction},
{"refSetCount", "(JI)V", (void*)restrictedFunction},
{"refSetCount", "(II)V", (void*)restrictedFunction},
{"refSetCount", "(Ljava/lang/Object;I)V", (void*)restrictedFunction},
{"refUncount", "(J)V", (void*)restrictedFunction},
{"refUncount", "(I)V", (void*)restrictedFunction},
{"refUncount", "(Ljava/lang/Object;)V", (void*)restrictedFunction},
{"returnFrame", "()V", (void*)restrictedFunction},
{"returnFrame", "(I)V", (void*)restrictedFunction},
{"returnFrame", "(II)V", (void*)restrictedFunction},
{"returnFrameLong", "(J)V", (void*)restrictedFunction},
{"sizeOfBaseArray", "()I", (void*)restrictedFunction},
{"sizeOfBaseObject", "()I", (void*)restrictedFunction},
{"sizeOfPointer", "()I", (void*)restrictedFunction},
{"specialGetExceptionRegister", "()Ljava/lang/Object;", (void*)restrictedFunction},
{"specialGetExceptionRegisterThrowable", "()Ljava/lang/Throwable;", (void*)restrictedFunction},
{"specialGetExceptionRegisterPointer", "()J", (void*)restrictedFunction},
......@@ -159,73 +137,14 @@ static const JNINativeMethod assemblyMethods[] =
{"specialGetPoolRegisterPointer", "()J", (void*)restrictedFunction},
{"specialGetReturnRegister", "()I", (void*)restrictedFunction},
{"specialGetReturnRegisterLong", "()J", (void*)restrictedFunction},
{"specialGetStaticFieldRegister", "()J", (void*)restrictedFunction},
{"specialGetThreadRegister", "()Ljava/lang/Thread;", (void*)restrictedFunction},
{"specialGetThreadRegisterPointer", "()J", (void*)restrictedFunction},
{"specialSetExceptionRegister", "(J)V", (void*)restrictedFunction},
{"specialSetExceptionRegister", "(Ljava/lang/Object;)V", (void*)restrictedFunction},
{"specialSetPoolRegister", "(J)V", (void*)restrictedFunction},
{"specialSetPoolRegister", "(Ljava/lang/Object;)V", (void*)restrictedFunction},
{"specialSetStaticFieldRegister", "(J)V", (void*)restrictedFunction},
{"specialSetThreadRegister", "(J)V", (void*)restrictedFunction},
{"specialSetThreadRegister", "(Ljava/lang/Thread;)V", (void*)restrictedFunction},
// Un-Pure System Calls
{"sysCall", "(S)V", (void*)restrictedFunction},
{"sysCall", "(SI)V", (void*)restrictedFunction},
{"sysCall", "(SII)V", (void*)restrictedFunction},
{"sysCall", "(SIII)V", (void*)restrictedFunction},
{"sysCall", "(SIIII)V", (void*)restrictedFunction},
{"sysCall", "(SIIIII)V", (void*)restrictedFunction},
{"sysCall", "(SIIIIII)V", (void*)restrictedFunction},
{"sysCall", "(SIIIIIII)V", (void*)restrictedFunction},
{"sysCall", "(SIIIIIIII)V", (void*)restrictedFunction},
{"sysCallV", "(S)I", (void*)restrictedFunction},
{"sysCallV", "(SI)I", (void*)restrictedFunction},
{"sysCallV", "(SII)I", (void*)restrictedFunction},
{"sysCallV", "(SIII)I", (void*)restrictedFunction},
{"sysCallV", "(SIIII)I", (void*)restrictedFunction},
{"sysCallV", "(SIIIII)I", (void*)restrictedFunction},
{"sysCallV", "(SIIIIII)I", (void*)restrictedFunction},
{"sysCallV", "(SIIIIIII)I", (void*)restrictedFunction},
{"sysCallV", "(SIIIIIIII)I", (void*)restrictedFunction},
{"sysCallVL", "(S)J", (void*)restrictedFunction},
{"sysCallVL", "(SI)J", (void*)restrictedFunction},
{"sysCallVL", "(SII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIIII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIIIII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIIIIII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIIIIIII)J", (void*)restrictedFunction},
{"sysCallVL", "(SIIIIIIII)J", (void*)restrictedFunction},
// Pure System Calls {"sysCallP", "(S)V", (void*)restrictedFunction},
{"sysCallP", "(SI)V", (void*)restrictedFunction},
{"sysCallP", "(SII)V", (void*)restrictedFunction},
{"sysCallP", "(SIII)V", (void*)restrictedFunction},
{"sysCallP", "(SIIII)V", (void*)restrictedFunction},
{"sysCallP", "(SIIIII)V", (void*)restrictedFunction},
{"sysCallP", "(SIIIIII)V", (void*)restrictedFunction},
{"sysCallP", "(SIIIIIII)V", (void*)restrictedFunction},
{"sysCallP", "(SIIIIIIII)V", (void*)restrictedFunction},
{"sysCallPV", "(S)I", (void*)restrictedFunction},
{"sysCallPV", "(SI)I", (void*)restrictedFunction},
{"sysCallPV", "(SII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIIII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIIIII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIIIIII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIIIIIII)I", (void*)restrictedFunction},
{"sysCallPV", "(SIIIIIIII)I", (void*)restrictedFunction},
{"sysCallPVL", "(S)J", (void*)restrictedFunction},
{"sysCallPVL", "(SI)J", (void*)restrictedFunction},
{"sysCallPVL", "(SII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIIII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIIIII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIIIIII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIIIIIII)J", (void*)restrictedFunction},
{"sysCallPVL", "(SIIIIIIII)J", (void*)restrictedFunction}
};
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved)
......
......@@ -12,11 +12,12 @@ package cc.squirreljme.vm.springcoat;
import cc.squirreljme.jvm.mle.RuntimeShelf;
import cc.squirreljme.jvm.mle.constants.BuiltInEncodingType;
import cc.squirreljme.jvm.mle.constants.BuiltInLocaleType;
import cc.squirreljme.jvm.mle.constants.ByteOrderType;
import cc.squirreljme.jvm.mle.constants.MemoryProfileType;
import cc.squirreljme.jvm.mle.constants.VMDescriptionType;
import cc.squirreljme.jvm.mle.constants.VMStatisticType;
import cc.squirreljme.jvm.mle.constants.VMType;
import cc.squirreljme.runtime.cldc.SquirrelJME;
import cc.squirreljme.runtime.cldc.debug.Debugging;
import cc.squirreljme.runtime.cldc.lang.LineEndingUtils;
import cc.squirreljme.vm.springcoat.exceptions.SpringMLECallError;
......@@ -28,6 +29,21 @@ import cc.squirreljme.vm.springcoat.exceptions.SpringMLECallError;
public enum MLERuntime
implements MLEFunction
{
/** {@link RuntimeShelf#byteOrder()}. */
BYTE_ORDER("byteOrder:()I")
{
/**
* {@inheritDoc}
* @since 2021/02/09
*/
@Override
public Object handle(SpringThreadWorker __thread, Object... __args)
{
// SpringCoat is always big endian
return ByteOrderType.BIG_ENDIAN;
}
},
/** {@link RuntimeShelf#currentTimeMillis()}. */
CURRENT_TIME_MILLIS("currentTimeMillis:()J")
{
......@@ -134,6 +150,21 @@ public enum MLERuntime
}
},
/** {@link RuntimeShelf#memoryProfile()}. */
MEMORY_PROFILE("memoryProfile:()I")
{
/**
* {@inheritDoc}
* @since 2021/02/19
*/
@Override
public Object handle(SpringThreadWorker __thread, Object... __args)
{
// No memory concerns
return MemoryProfileType.NORMAL;
}
},
/** {@link RuntimeShelf#nanoTime()}. */
NANO_TIME("nanoTime:()J")
{
......
......@@ -9,6 +9,8 @@
package cc.squirreljme.jvm;
import cc.squirreljme.jvm.mle.brackets.TypeBracket;
/**
* This class is used special by the compiler to transform all the various
* operations into regular instructions rather than method calls.
......@@ -20,7 +22,7 @@ package cc.squirreljme.jvm;
*
* @since 2019/04/20
*/
@SuppressWarnings("NewMethodNamingConvention")
@SuppressWarnings({"NewMethodNamingConvention", "OverlyComplexClass"})
public final class Assembly
{
/**
......@@ -40,7 +42,7 @@ public final class Assembly
* an array.
* @since 2020/02/23
*/
public static native int arrayLength(long __o);
public static native int arrayLength(int __o);
/**
* Returns the array length of the given object.
......@@ -52,24 +54,6 @@ public final class Assembly
*/
public static native int arrayLength(Object __o);
/**
* Sets the array length of an array.
*
* @param __o The object to set.
* @param __l The length to set.
* @since 2020/02/23
*/
public static native void arrayLengthSet(long __o, int __l);
/**
* Sets the array length of an array.
*
* @param __o The object to set.
* @param __l The length to set.
* @since 2020/02/23
*/
public static native void arrayLengthSet(Object __o, int __l);
/**
* Atomic comparison and set.
*
......@@ -107,143 +91,15 @@ public final class Assembly
*/
public static native void breakpoint();
/**
* Returns the class info pointer of {@code boolean}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfBoolean();
/**
* Returns the class info pointer of {@code boolean}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfBooleanPointer();
/**
* Returns the class info pointer of {@code byte}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfByte();
/**
* Returns the class info pointer of {@code byte}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfBytePointer();
/**
* Returns the class info pointer of {@code char}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfCharacter();
/**
* Returns the class info pointer of {@code char}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfCharacterPointer();
/**
* Returns the class info pointer of {@code double}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfDouble();
/**
* Returns the class info pointer of {@code double}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfDoublePointer();
/**
* Returns the class info pointer of {@code float}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfFloat();
/**
* Returns the class info pointer of {@code float}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfFloatPointer();
/**
* Returns the class info pointer of {@code int}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfInteger();
/**
* Returns the class info pointer of {@code int}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfIntegerPointer();
/**
* Returns the class info pointer of {@code long}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfLong();
/**
* Returns the class info pointer of {@code long}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfLongPointer();
/**
* Returns the class info pointer of {@code short}.
*
* @return The class info pointer.
* @since 2020/01/19
*/
public static native ClassInfo classInfoOfShort();
/**
* Returns the class info pointer of {@code short}.
*
* @return The class info pointer.
* @since 2020/02/24
*/
public static native long classInfoOfShortPointer();
/**
* Packs the given two integers to a double value.
*
* @param __hi The high value.
* @param __lo The low value.
* @param __hi The high value.
* @return The double value.
* @since 2019/06/21
*/
public static native double doublePack(int __hi, int __lo);
public static native double doublePack(int __lo, int __hi);
/**
* Double to raw long bits.
......@@ -304,7 +160,7 @@ public final class Assembly
* @param __pool The pool address to load.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool);
public static native void invoke(int __addr, int __pool);
/**
* Invoke method at pointer, with arguments.
......@@ -314,7 +170,7 @@ public final class Assembly
* @param __a Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a);
public static native void invoke(int __addr, int __pool, int __a);
/**
* Invoke method at pointer, with arguments.
......@@ -325,7 +181,7 @@ public final class Assembly
* @param __b Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a,
public static native void invoke(int __addr, int __pool, int __a,
int __b);
/**
......@@ -338,7 +194,7 @@ public final class Assembly
* @param __c Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a,
public static native void invoke(int __addr, int __pool, int __a,
int __b, int __c);
/**
......@@ -352,7 +208,7 @@ public final class Assembly
* @param __d Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a,
public static native void invoke(int __addr, int __pool, int __a,
int __b, int __c, int __d);
/**
......@@ -367,7 +223,7 @@ public final class Assembly
* @param __e Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a,
public static native void invoke(int __addr, int __pool, int __a,
int __b, int __c, int __d, int __e);
/**
......@@ -383,7 +239,7 @@ public final class Assembly
* @param __f Argument.
* @since 2019/04/28
*/
public static native void invoke(long __addr, long __pool, int __a,
public static native void invoke(int __addr, int __pool, int __a,
int __b, int __c, int __d, int __e, int __f);
/**
......@@ -400,7 +256,7 @@ public final class Assembly
* @param __g Argument.
* @since 2019/04/28
*/