/* *I probably should not be releasing my code on my own JVM implementation yet, but I wanted to show my JVM design. This is not yet *finished. */ #pragma once #include "frame.h" class Java : public Object { public: Java(std::vector code); ~Java(); void run(); private: std::vector code; void run0(byte b); static void aaload(); static void aastore(); // static void aconst_null(); // push null onto current frame operand stack static void aload();//push reference onto current frame operand stack static void aload_0(); static void aload_1(); static void aload_2(); static void aload_3(); static void anewarray(); static void areturn(); static void arraylength(); static void astore(); static void astore_0(); static void astore_1(); static void astore_2(); static void astore_3(); static void athrow(); static void baload(); static void bastore(); static void bipush(); static void breakpovoid(); static void caload(); static void castore(); static void checkcast(); static void d2f(); static void d2i(); static void d2l(); static void dadd(); static void daload(); static void dastore(); static void dcmpg(); static void dcmpl(); static void dconst_0(); static void dconst_1(); static void ddiv(); static void dload(); static void dload_0(); static void dload_1(); static void dload_2(); static void dload_3(); static void dmul(); static void dneg(); static void drem(); static void dreturn(); static void dstore(); static void dstore_0(); static void dstore_1(); static void dstore_2(); static void dstore_3(); static void dsub(); static void dup(); static void dup_x1(); static void dup_x2(); static void dup2(); static void dup2_x1(); static void dup2_x2(); static void f2d(); static void f2i(); static void f2l(); static void fadd(); static void faload(); static void fastore(); static void fcmpg(); static void fcmpl(); static void fconst_0(); static void fconst_1(); static void fconst_2(); static void fdiv(); static void fload(); static void fload_0(); static void fload_1(); static void fload_2(); static void fload_3(); static void fmul(); static void fneg(); static void frem(); static void freturn(); static void fstore(); static void fstore_0(); static void fstore_1(); static void fstore_2(); static void fstore_3(); static void fsub(); static void getfield(); static void getstatic(); static void goto0(); static void goto_w(); static void i2b(); static void i2c(); static void i2d(); static void i2f(); static void i2l(); static void i2s(); static void iadd(); static void iaload(); static void iand(); static void iastore(); static void iconst_m1(); static void iconst_0(); static void iconst_1(); static void iconst_2(); static void iconst_3(); static void iconst_4(); static void iconst_5(); static void idiv(); static void if_acmpeq(); static void if_acmpne(); static void if_icmpeq(); static void if_icmpge(); static void if_icmpgt(); static void if_icmple(); static void if_icmplt(); static void if_icmpne(); static void ifeq(); static void ifge(); static void ifgt(); static void ifle(); static void iflt(); static void ifne(); static void ifnonnull(); static void ifnull(); static void iinc(); static void iload(); static void iload_0(); static void iload_1(); static void iload_2(); static void iload_3(); static void impdep1(); static void impdep2(); static void imul(); static void ineg(); static void instanceof(); static void invokedynamic(); static void invokeinterface(); static void invokespecial(); static void invokestatic(); static void invokevirtual(); static void ior(); static void irem(); static void ireturn(); static void ishl(); static void ishr(); static void istore(); static void istore_0(); static void istore_1(); static void istore_2(); static void istore_3(); static void isub(); static void iushr(); static void ixor(); static void jsr(); static void jsr_w(); static void l2d(); static void l2f(); static void l2i(); static void ladd(); static void laload(); static void land(); static void lastore(); static void lcmp(); static void lconst_0(); static void lconst_1(); static void ldc(); static void ldc_w(); static void ldc2_w(); static void ldiv(); static void lload(); static void lload_0(); static void lload_1(); static void lload_2(); static void lload_3(); static void lmul(); static void lneg(); static void lookupswitch(); static void lor(); static void lrem(); static void lreturn(); static void lshl(); static void lshr(); static void lstore(); static void lstore_0(); static void lstore_1(); static void lstore_2(); static void lstore_3(); static void lsub(); static void lushr(); static void lxor(); static void monitorenter(); static void monitorexit(); static void multianewarray(); static void new0(); static void newarray(); static void nop(); static void pop(); static void pop2(); static void putfield(); static void putstatic(); static void ret(); static void return0(); static void saload(); static void sastore(); static void sipush(); static void swap(); static void tableswitch(); static void wide(); };