⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opcodes.list

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 LIST
📖 第 1 页 / 共 2 页
字号:
## @(#)opcodes.list	1.77 06/10/10## Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER# # This program is free software; you can redistribute it and/or# modify it under the terms of the GNU General Public License version# 2 only, as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# General Public License version 2 for more details (a copy is# included at /legal/license.txt). # # You should have received a copy of the GNU General Public License# version 2 along with this work; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA# 02110-1301 USA # # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa# Clara, CA 95054 or visit www.sun.com if you need additional# information or have any questions. ### Any line that doesn't have a-z in the 1st column is a comment.## The first column is the name of the opcode.## The second column is the opcode's number, or "-" to assign the# next available sequential number.## The third column is the total length of the instruction.  We use 0# for opcodes of variable length, as well as unrecognized/unused# opcodes.## The fourth and fifth column give what the opcode pops off the stack, and# what it then pushes back onto the stack#    -       <no effect on stack>   #    I       integer#    L       long integer#    F       float#    D       double float#    A       address [array or object]#    O       object only#    R       return address (for jsr)#    a       integer, array, or object#    ?       unknown#    [I], [L], [F], [D], [A], [B], [C], [?]#            array of integer, long, float, double, address, bytes, #                  chars, or anything#    1,2,3,4,+ used by stack duplicating/popping routines.  # # 1,2,3,4 represent >>any<< stack type except long or double.  Two numbers# separated by a + (in the third column) indicate that the two, together, can# be used for a double or long.  (Or they can represent two non-long items).## The sixth column has a comma-separated list of attributes of the# opcode. These are necessary in the stackmap computation dataflow # analysis.## GC    -- a GC point# CGC   -- a conditional GC point; only if the thread is at a quickening point# BR    -- a branch# EXC   -- May throw exception# INV   -- A method invocation# NFLW  -- An instruction that doesn't let control flow through#           (returns, athrow, switches, goto, ret)# QUICK -- A quick instruction, re-written by the interpreter.# RET   -- A return opcode.# FP    -- A floating point opcode# -     -- No special attributes to speak of#            # The seventh column is a "simplification" of the opcode, for opcode# sequence measurements (see CVM_INSTRUCTION_COUNTING in executejava.c).## The eigth column has the attribute of CVMJITIROpcodeTag.# The ninth column has the attribute of type tag listed in typeid.h.# The tenth column has the attribute of value representing constant value,# local variable number, etc.nop			  - 1 -     -   -	nop 	   0 0 0 /* nop */aconst_null		  - 1 -     A   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_OBJ 0 /* push null object */iconst_m1	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT -1 /* push integer constant -1 */iconst_0	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 0 /* push integer constant 0 */iconst_1	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 1 /* push integer constant 1 */iconst_2	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 2 /* push integer constant 2 */iconst_3	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 3 /* push integer constant 3 */iconst_4	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 4 /* push integer constant 4 */iconst_5	    	  - 1 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 5 /* push integer constant 5 */lconst_0	    	  - 1 -     L   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC64 CVM_TYPEID_LONG 0 /* push long 0L */lconst_1	    	  - 1 -     L   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC64 CVM_TYPEID_LONG 1 /* push long 1L */fconst_0	    	  - 1 -     F   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_FLOAT 0 /* push float constant 0.0 */fconst_1	    	  - 1 -     F   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_FLOAT 1 /* push float constant 1.0 */fconst_2	    	  - 1 -     F   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_FLOAT 2 /* push float constant 2.0 */dconst_0	    	  - 1 -     D   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC64 CVM_TYPEID_DOUBLE 0 /* push double float constant 0.0d */dconst_1	    	  - 1 -     D   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC64 CVM_TYPEID_DOUBLE 1 /* push double float constant 1.0d */bipush		    	  - 2 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 0  /* push byte-sized value */sipush		    	  - 3 -     I   -	iconst_0   CVMJIT_CONST_JAVA_NUMERIC32 CVM_TYPEID_INT 0 /* push two-byte value */ldc                	  - 2 -     ?  GC,EXC ldc      0 0 0 /* load a const from constant table */ldc_w	    	    	  - 3 -     ?  GC,EXC ldc	   0 0 0ldc2_w	    	    	  - 3 -     ?  GC,EXC ldc	   0 0 0 /* load a 2-word constant . . . */iload		    	  - 2 -     I   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_INT 0 /* load local integer variable */lload		    	  - 2 -     L   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_LONG 0 /* load local long variable */fload		    	  - 2 -     F   -	iload      CVMJIT_LOCAL CVM_TYPEID_FLOAT 0 /* load local floating variable */dload		    	  - 2 -     D   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_DOUBLE 0 /* load local double variable */aload		    	  - 2 -     A   -	aload  	   CVMJIT_LOCAL CVM_TYPEID_OBJ 0 /* load local object variable */iload_0		    	  - 1 -     I   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_INT 0 /* load local integer variable #0 */iload_1		    	  - 1 -     I   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_INT 1 /* load local integer variable #1 */iload_2		    	  - 1 -     I   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_INT 2 /* load local integer variable #2 */iload_3		    	  - 1 -     I   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_INT 3 /* load local integer variable #3 */lload_0		    	  - 1 -     L   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_LONG 0 /* load local long variable #0 */lload_1		    	  - 1 -     L   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_LONG 1 /* load local long variable #1 */lload_2		    	  - 1 -     L   -	iload      CVMJIT_LOCAL CVM_TYPEID_LONG 2 /* load local long variable #2 */lload_3		    	  - 1 -     L   -	iload      CVMJIT_LOCAL CVM_TYPEID_LONG 3 /* load local long variable #3 */fload_0		    	  - 1 -     F   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_FLOAT 0 /* load local float variable #0 */fload_1		    	  - 1 -     F   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_FLOAT 1 /* load local float variable #1 */fload_2		    	  - 1 -     F   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_FLOAT 2 /* load local float variable #2 */fload_3		    	  - 1 -     F   -	iload 	   CVMJIT_LOCAL CVM_TYPEID_FLOAT 3 /* load local float variable #3 */dload_0		    	  - 1 -     D   -	iload      CVMJIT_LOCAL CVM_TYPEID_DOUBLE 0 /* load local double variable #0 */dload_1		    	  - 1 -     D   -	iload      CVMJIT_LOCAL CVM_TYPEID_DOUBLE 1 /* load lcl double float variable #1 */dload_2		    	  - 1 -     D   -	iload      CVMJIT_LOCAL CVM_TYPEID_DOUBLE 2 /* load lcl double float variable #2 */dload_3		    	  - 1 -     D   -	iload      CVMJIT_LOCAL CVM_TYPEID_DOUBLE 3 /* load lcl double float variable #3 */aload_0		    	  - 1 -     A   -	aload_0    CVMJIT_LOCAL CVM_TYPEID_OBJ 0 /* load local object variable #0 */aload_1		    	  - 1 -     A   -	aload      CVMJIT_LOCAL CVM_TYPEID_OBJ 1 /* load local object variable #1 */aload_2		    	  - 1 -     A   -	aload      CVMJIT_LOCAL CVM_TYPEID_OBJ 2 /* load local object variable #2 */aload_3		    	  - 1 -     A   -	aload      CVMJIT_LOCAL CVM_TYPEID_OBJ 3 /* load local object variable #3 */iaload		    	  - 1 [I]I  I  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_INT 0 /* load from array of integer */laload		    	  - 1 [L]I  L  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_LONG 0 /* load from array of long */faload		    	  - 1 [F]I  F  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_FLOAT 0 /* load from array of float */daload		    	  - 1 [D]I  D  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_DOUBLE 0 /* load from array of double */aaload		    	  - 1 [A]I  A  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_OBJ 0 /* load from array of object */baload		    	  - 1 [B]I  I  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_BYTE 0 /* load from array of (signed) bytes */caload		    	  - 1 [C]I  I  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_CHAR 0 /* load from array of chars */saload		    	  - 1 [S]I  I  EXC	iaload     CVMJIT_INDEX CVM_TYPEID_SHORT 0 /* load from array of (signed) shorts */istore		    	  - 2 I     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_INT 0 /* store local integer variable */lstore		    	  - 2 L     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_LONG 0 /* store local long variable */fstore		    	  - 2 F     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_FLOAT 0 /* store local float variable */dstore		    	  - 2 D     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_DOUBLE 0 /* store local double variable */astore		    	  - 2 A     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_OBJ 0 /* store local object variable */istore_0	    	  - 1 I     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_INT 0 /* store local integer variable #0 */istore_1	    	  - 1 I     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_INT 1 /* store local integer variable #1 */istore_2	    	  - 1 I     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_INT 2 /* store local integer variable #2 */istore_3	    	  - 1 I     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_INT 3 /* store local integer variable #3 */lstore_0	    	  - 1 L     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_LONG 0 /* store local long variable #0 */lstore_1	    	  - 1 L     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_LONG 1 /* store local long variable #1 */lstore_2	    	  - 1 L     -   -	istore 	   CVMJIT_ASSIGN CVM_TYPEID_LONG 2 /* store local long variable #2 */lstore_3	    	  - 1 L     -   -	istore 	   CVMJIT_ASSIGN CVM_TYPEID_LONG 3 /* store local long variable #3 */fstore_0	    	  - 1 F     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_FLOAT 0 /* store local float variable #0 */fstore_1	    	  - 1 F     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_FLOAT 1 /* store local float variable #1 */fstore_2	    	  - 1 F     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_FLOAT 2 /* store local float variable #2 */fstore_3	    	  - 1 F     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_FLOAT 3 /* store local float variable #3 */dstore_0	    	  - 1 D     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_DOUBLE 0 /* store lcl double float variable #0 */dstore_1	    	  - 1 D     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_DOUBLE 1 /* store lcl double float variable #1 */dstore_2	    	  - 1 D     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_DOUBLE 2 /* store lcl double float variable #2 */dstore_3	    	  - 1 D     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_DOUBLE 3 /* store lcl double float variable #3 */astore_0	    	  - 1 A     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_OBJ 0 /* store local object variable #0 */astore_1	    	  - 1 A     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_OBJ 1 /* store local object variable #1 */astore_2	    	  - 1 A     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_OBJ 2 /* store local object variable #2 */astore_3	    	  - 1 A     -   -	istore     CVMJIT_ASSIGN CVM_TYPEID_OBJ 3 /* store local object variable #3 */iastore		    	  - 1 [I]II -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_INT 0 /* store into array of int */lastore		    	  - 1 [L]IL -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_LONG 0 /* store into array of long */fastore		    	  - 1 [F]IF -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_FLOAT 0 /* store into array of float */dastore		    	  - 1 [D]ID -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_DOUBLE 0 /* store into array of double float  */aastore		    	  - 1 [A]IA -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_OBJ 0 /* store into array of object */bastore		    	  - 1 [B]II -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_BYTE 0 /* store into array of (signed) bytes */castore		    	  - 1 [C]II -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_CHAR 0 /* store into array of chars */sastore		    	  - 1 [S]II -  EXC	iastore    CVMJIT_INDEX CVM_TYPEID_SHORT 0 /* store into array of (signed) shorts*/pop		    	  - 1 1     -   -	pop 	   0 0 0 /* pop top element */pop2		    	  - 1 2+1   -   -	pop  	   0 0 0 /* pop top two elements */dup		    	  - 1 1     11   -	dup        0 0 0 /* dup top element */dup_x1		    	  - 1 21    121   -	dup  	   0 0 0 /* dup top element. Skip one */dup_x2		    	  - 1 3+21  1321   - dup 	   0 0 0 /* dup top element. Skip two */dup2		    	  - 1 2+1   2121   -	dup  0 0 0 /* dup top two elements.  */dup2_x1		    	  - 1 32+1  21321   -	dup 0 0 0 /* dup top two elements.  Skip one */dup2_x2		    	  - 1 4+32+1 214321   -	dup 0 0 0 /* dup top two elements.  Skip two */swap                	  - 1 21    12      -	dup 0 0 0 /* swap top two elements of stack. */iadd		    	  - 1 II    I   -	iadd 	   CVMJIT_ADD CVM_TYPEID_INT 0 /* integer add */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -