📄 jvm.java
字号:
package com.jopdesign.sys;class JVM { private static void f_nop() { JVMHelp.noim(); /* jvm.asm */ } private static int f_aconst_null() { return 0; } private static void f_iconst_m1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_0() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_3() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_4() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iconst_5() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lconst_0() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lconst_1() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_fconst_0() { JVMHelp.noim();} private static void f_fconst_1() { JVMHelp.noim();} private static void f_fconst_2() { JVMHelp.noim();} private static void f_dconst_0() { JVMHelp.noim();} private static void f_dconst_1() { JVMHelp.noim();} private static void f_bipush() { JVMHelp.noim(); /* jvm.asm */ } private static void f_sipush() { JVMHelp.noim(); /* jvm.asm */ } private static void f_ldc() { JVMHelp.noim(); /* jvm.asm */ } private static void f_ldc_w() { JVMHelp.noim();} private static void f_ldc2_w() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_iload() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lload() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_fload() { JVMHelp.noim();} private static void f_dload() { JVMHelp.noim();} private static void f_aload() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iload_0() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iload_1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iload_2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iload_3() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lload_0() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lload_1() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lload_2() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lload_3() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_fload_0() { JVMHelp.noim();} private static void f_fload_1() { JVMHelp.noim();} private static void f_fload_2() { JVMHelp.noim();} private static void f_fload_3() { JVMHelp.noim();} private static void f_dload_0() { JVMHelp.noim();} private static void f_dload_1() { JVMHelp.noim();} private static void f_dload_2() { JVMHelp.noim();} private static void f_dload_3() { JVMHelp.noim();} private static void f_aload_0() { JVMHelp.noim(); /* jvm.asm */ } private static void f_aload_1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_aload_2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_aload_3() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iaload() { JVMHelp.noim(); /* jvm.asm */ } private static void f_laload() { JVMHelp.noim(); /* jvm.asm */} private static void f_faload() { JVMHelp.noim();} private static void f_daload() { JVMHelp.noim();} private static void f_aaload() { JVMHelp.noim();} private static void f_baload() { JVMHelp.noim();} private static void f_caload() { JVMHelp.noim();} private static void f_saload() { JVMHelp.noim();} private static void f_istore() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lstore() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_fstore() { JVMHelp.noim();} private static void f_dstore() { JVMHelp.noim();} private static void f_astore() { JVMHelp.noim(); /* jvm.asm */ } private static void f_istore_0() { JVMHelp.noim(); /* jvm.asm */ } private static void f_istore_1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_istore_2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_istore_3() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lstore_0() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lstore_1() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lstore_2() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_lstore_3() { JVMHelp.noim(); /* jvm_long.inc */ } private static void f_fstore_0() { JVMHelp.noim();} private static void f_fstore_1() { JVMHelp.noim();} private static void f_fstore_2() { JVMHelp.noim();} private static void f_fstore_3() { JVMHelp.noim();} private static void f_dstore_0() { JVMHelp.noim();} private static void f_dstore_1() { JVMHelp.noim();} private static void f_dstore_2() { JVMHelp.noim();} private static void f_dstore_3() { JVMHelp.noim();} private static void f_astore_0() { JVMHelp.noim(); /* jvm.asm */ } private static void f_astore_1() { JVMHelp.noim(); /* jvm.asm */ } private static void f_astore_2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_astore_3() { JVMHelp.noim(); /* jvm.asm */ } private static void f_iastore() { JVMHelp.noim(); /* jvm.asm */ } private static void f_lastore() { JVMHelp.noim(); /* jvm.asm */ } private static void f_fastore() { JVMHelp.noim();} private static void f_dastore() { JVMHelp.noim();} private static void f_aastore() { JVMHelp.noim();} private static void f_bastore() { JVMHelp.noim();} private static void f_castore() { JVMHelp.noim();} private static void f_sastore() { JVMHelp.noim();} private static void f_pop() { JVMHelp.noim(); /* jvm.asm */ } private static void f_pop2() { JVMHelp.noim();} private static void f_dup() { JVMHelp.noim(); /* jvm.asm */ } private static void f_dup_x1() { JVMHelp.noim();} private static void f_dup_x2() { JVMHelp.noim();} private static void f_dup2() { JVMHelp.noim(); /* jvm.asm */ } private static void f_dup2_x1() { JVMHelp.noim();} private static void f_dup2_x2() { JVMHelp.noim();} private static void f_swap() { JVMHelp.noim();} private static void f_iadd() { JVMHelp.noim(); /* jvm.asm */ } private static long f_ladd(int ah, int al, int bh, int bl) { int carry = ((al>>>1) + (bl>>>1) + (al & bl & 1)) >>> 31; return Native.makeLong(ah+bh+carry, al+bl); } private static int f_fadd(int a, int b) { return SoftFloat.float32_add(a, b); } private static void f_dadd() { JVMHelp.noim();} private static void f_isub() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lsub(long a, long b) { return a+(~b)+1; } private static int f_fsub(int a, int b) { return SoftFloat.float32_sub(a, b); } private static void f_dsub() { JVMHelp.noim();} private static void f_imul() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lmul(long a, long b) { boolean positive = true; if(a<0) { a = (~a)+1; positive = false; } if(b<0) { b = (~b)+1; positive = !positive; } long aa = a; long res = 0; for(int i=0;i<64;i=i+8) { long bb = b; int am = ((int)aa) & 0x000000FF; for(int j=0;j<64;j=j+8) { int bm = ((int)bb) & 0x000000FF; long sres = 0; if (i+j < 64) sres=f_lshl(0,am*bm,i+j); res += sres; bb = bb>>>8; } aa = aa>>>8; } if(!positive) res = (~res)+1; return res; } private static void f_fmul() { JVMHelp.noim();} private static void f_dmul() { JVMHelp.noim();} private static int f_idiv(int a, int b) { if (b==0) { // division by zero exception Native.wrMem(0x02, Const.IO_EXCPT); return 0; } boolean neg = false; if (a<0) { neg = true; a = -a; } if (b<0) { neg = !neg; b = -b; } int c = 0; int r = 0; for (int i=0; i<32; ++i) { c <<= 1; r <<= 1; if ((a & 0x80000000)!=0) { r |= 1; } a <<= 1; if (r>=b) { r -= b; c |= 1; } } if (neg) { c = -c; } return c; } private static long f_ldiv(long a, long b) { // System.out.println("a="+((int)(a>>32))+" "+((int)a)); // System.out.println("b="+((int)(b>>32))+" "+((int)b)); if(b==0x8000000000000000L) { if(a==0x8000000000000000L) return 1; else return 0; } boolean neg = false; if (a<0) { neg = true; a = -a; } if (b<0) { neg = !neg; b = -b; } long c = 0; long r = 0; for (int i=0; i<64; ++i) { c <<= 1; r <<= 1; if ((a & 0x8000000000000000L)!=0) { r |= 1; } a <<= 1; if ((r-1)>=(b-1)) //over/underflow problem - other testcases?? { r -= b; c |= 1; }// System.out.println("c="+((int)(c>>32))+" "+((int)c));// System.out.println("r="+((int)(r>>32))+" "+((int)r)); } if (neg) { c = -c; } return c; } private static void f_fdiv() { JVMHelp.noim();} private static void f_ddiv() { JVMHelp.noim();} private static int f_irem(int a, int b) { if (b==0) { // division by zero exception Native.wrMem(0x02, Const.IO_EXCPT); return 0; } boolean neg = false; if (a<0) { neg = true; a = -a; } if (b<0) { b = -b; } int r = 0; for (int i=0; i<32; ++i) { r <<= 1; if ((a & 0x80000000)!=0) { r |= 1; } a <<= 1; if (r>=b) { r -= b; } } if (neg) { r = -r; } return r; } private static long f_lrem(long a, long b) { if(b==0x8000000000000000L) { if(a!=0x8000000000000000L) return a; else return 0; } boolean neg = false; if (a<0) { neg = true; a = -a; } if (b<0) { b = -b; } long r = 0; for (int i=0; i<64; ++i) { r <<= 1; if ((a & 0x8000000000000000L)!=0) { r |= 1; } a <<= 1; if (r>=b) { r -= b; } // System.out.println("r="+((int)(r>>32))+" "+((int)r)); } if (neg) { r = -r; } return r; } private static void f_frem() { JVMHelp.noim();} private static void f_drem() { JVMHelp.noim();} private static void f_ineg() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lneg(long a) { return ~a+1; } private static void f_fneg() { JVMHelp.noim();} private static void f_dneg() { JVMHelp.noim();} private static void f_ishl() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lshl(int ah, int al, int cnt) { cnt &= 0x3F; if ((cnt==0)) return Native.makeLong(ah, al); if (cnt>31) { ah = al << (cnt-32); al = 0; } else { ah = ah << cnt; ah += al >>> (32-cnt); al = al << cnt; } return Native.makeLong(ah, al); } private static void f_ishr() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lshr(int ah, int al, int cnt) { cnt &= 0x3F; if (cnt==0) return Native.makeLong(ah, al); if (cnt>31) { al = ah >>> (cnt-32); if(ah<0) ah = -1; else ah = 0; } else { al = al >>> cnt; al += ah << (32-cnt); ah = ah >> cnt; } return Native.makeLong(ah, al); } private static void f_iushr() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lushr(int ah, int al, int cnt) { cnt &= 0x3F; if ((cnt==0)) return Native.makeLong(ah, al); if (cnt>31) { al = ah >>> (cnt-32); ah = 0; } else { al = al >>> cnt; al += ah << (32-cnt); ah = ah >>> cnt; } return Native.makeLong(ah, al); } private static void f_iand() { JVMHelp.noim(); /* jvm.asm */ } private static long f_land(int ah, int al, int bh, int bl) { ah &= bh; al &= bl; return Native.makeLong(ah, al); } private static void f_ior() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lor(int ah, int al, int bh, int bl) { ah |= bh; al |= bl; return Native.makeLong(ah, al); } private static void f_ixor() { JVMHelp.noim(); /* jvm.asm */ } private static long f_lxor(int ah, int al, int bh, int bl) { ah ^= bh; al ^= bl; return Native.makeLong(ah, al); } private static void f_iinc() { JVMHelp.noim(); /* jvm.asm */ } private static long f_i2l(int a) { return Native.makeLong(a>>31, a); } private static int f_i2f(int a) {JVMHelp.noim(); // TODO: test return SoftFloat.int32_to_float32(a); } private static void f_i2d() { JVMHelp.noim();} private static void f_l2i() { JVMHelp.noim(); /* jvm_long.inc */} private static void f_l2f() { JVMHelp.noim();} private static void f_l2d() { JVMHelp.noim();} private static int f_f2i(int a) {JVMHelp.noim(); // TODO: test return SoftFloat.float32_to_int32_round_to_zero(a); } private static void f_f2l() { JVMHelp.noim();} private static void f_f2d() { JVMHelp.noim();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -