sim-codec-classfile 0.1.0

Bounded, lossless Java Virtual Machine classfile codec for SIM
Documentation
# Sole source of truth for the complete JVM opcode byte space.
# Generated Rust and Markdown must be refreshed with ./generate_opcodes.py.
value	mnemonic	identity	operands	width	control	constant_pool	since	until
0x00	nop	Nop	none	1	fallthrough	none	45.3	unbounded
0x01	aconst_null	AconstNull	none	1	fallthrough	none	45.3	unbounded
0x02	iconst_m1	IconstM1	none	1	fallthrough	none	45.3	unbounded
0x03	iconst_0	Iconst0	none	1	fallthrough	none	45.3	unbounded
0x04	iconst_1	Iconst1	none	1	fallthrough	none	45.3	unbounded
0x05	iconst_2	Iconst2	none	1	fallthrough	none	45.3	unbounded
0x06	iconst_3	Iconst3	none	1	fallthrough	none	45.3	unbounded
0x07	iconst_4	Iconst4	none	1	fallthrough	none	45.3	unbounded
0x08	iconst_5	Iconst5	none	1	fallthrough	none	45.3	unbounded
0x09	lconst_0	Lconst0	none	1	fallthrough	none	45.3	unbounded
0x0a	lconst_1	Lconst1	none	1	fallthrough	none	45.3	unbounded
0x0b	fconst_0	Fconst0	none	1	fallthrough	none	45.3	unbounded
0x0c	fconst_1	Fconst1	none	1	fallthrough	none	45.3	unbounded
0x0d	fconst_2	Fconst2	none	1	fallthrough	none	45.3	unbounded
0x0e	dconst_0	Dconst0	none	1	fallthrough	none	45.3	unbounded
0x0f	dconst_1	Dconst1	none	1	fallthrough	none	45.3	unbounded
0x10	bipush	Bipush	value:s1	2	fallthrough	none	45.3	unbounded
0x11	sipush	Sipush	value:s2	3	fallthrough	none	45.3	unbounded
0x12	ldc	Ldc	constant_pool:u1	2	fallthrough	loadable-category-1	45.3	unbounded
0x13	ldc_w	LdcW	constant_pool:u2	3	fallthrough	loadable-category-1	45.3	unbounded
0x14	ldc2_w	Ldc2W	constant_pool:u2	3	fallthrough	loadable-category-2	45.3	unbounded
0x15	iload	Iload	local:u1	2	fallthrough	none	45.3	unbounded
0x16	lload	Lload	local:u1	2	fallthrough	none	45.3	unbounded
0x17	fload	Fload	local:u1	2	fallthrough	none	45.3	unbounded
0x18	dload	Dload	local:u1	2	fallthrough	none	45.3	unbounded
0x19	aload	Aload	local:u1	2	fallthrough	none	45.3	unbounded
0x1a	iload_0	Iload0	none	1	fallthrough	none	45.3	unbounded
0x1b	iload_1	Iload1	none	1	fallthrough	none	45.3	unbounded
0x1c	iload_2	Iload2	none	1	fallthrough	none	45.3	unbounded
0x1d	iload_3	Iload3	none	1	fallthrough	none	45.3	unbounded
0x1e	lload_0	Lload0	none	1	fallthrough	none	45.3	unbounded
0x1f	lload_1	Lload1	none	1	fallthrough	none	45.3	unbounded
0x20	lload_2	Lload2	none	1	fallthrough	none	45.3	unbounded
0x21	lload_3	Lload3	none	1	fallthrough	none	45.3	unbounded
0x22	fload_0	Fload0	none	1	fallthrough	none	45.3	unbounded
0x23	fload_1	Fload1	none	1	fallthrough	none	45.3	unbounded
0x24	fload_2	Fload2	none	1	fallthrough	none	45.3	unbounded
0x25	fload_3	Fload3	none	1	fallthrough	none	45.3	unbounded
0x26	dload_0	Dload0	none	1	fallthrough	none	45.3	unbounded
0x27	dload_1	Dload1	none	1	fallthrough	none	45.3	unbounded
0x28	dload_2	Dload2	none	1	fallthrough	none	45.3	unbounded
0x29	dload_3	Dload3	none	1	fallthrough	none	45.3	unbounded
0x2a	aload_0	Aload0	none	1	fallthrough	none	45.3	unbounded
0x2b	aload_1	Aload1	none	1	fallthrough	none	45.3	unbounded
0x2c	aload_2	Aload2	none	1	fallthrough	none	45.3	unbounded
0x2d	aload_3	Aload3	none	1	fallthrough	none	45.3	unbounded
0x2e	iaload	Iaload	none	1	fallthrough	none	45.3	unbounded
0x2f	laload	Laload	none	1	fallthrough	none	45.3	unbounded
0x30	faload	Faload	none	1	fallthrough	none	45.3	unbounded
0x31	daload	Daload	none	1	fallthrough	none	45.3	unbounded
0x32	aaload	Aaload	none	1	fallthrough	none	45.3	unbounded
0x33	baload	Baload	none	1	fallthrough	none	45.3	unbounded
0x34	caload	Caload	none	1	fallthrough	none	45.3	unbounded
0x35	saload	Saload	none	1	fallthrough	none	45.3	unbounded
0x36	istore	Istore	local:u1	2	fallthrough	none	45.3	unbounded
0x37	lstore	Lstore	local:u1	2	fallthrough	none	45.3	unbounded
0x38	fstore	Fstore	local:u1	2	fallthrough	none	45.3	unbounded
0x39	dstore	Dstore	local:u1	2	fallthrough	none	45.3	unbounded
0x3a	astore	Astore	local:u1	2	fallthrough	none	45.3	unbounded
0x3b	istore_0	Istore0	none	1	fallthrough	none	45.3	unbounded
0x3c	istore_1	Istore1	none	1	fallthrough	none	45.3	unbounded
0x3d	istore_2	Istore2	none	1	fallthrough	none	45.3	unbounded
0x3e	istore_3	Istore3	none	1	fallthrough	none	45.3	unbounded
0x3f	lstore_0	Lstore0	none	1	fallthrough	none	45.3	unbounded
0x40	lstore_1	Lstore1	none	1	fallthrough	none	45.3	unbounded
0x41	lstore_2	Lstore2	none	1	fallthrough	none	45.3	unbounded
0x42	lstore_3	Lstore3	none	1	fallthrough	none	45.3	unbounded
0x43	fstore_0	Fstore0	none	1	fallthrough	none	45.3	unbounded
0x44	fstore_1	Fstore1	none	1	fallthrough	none	45.3	unbounded
0x45	fstore_2	Fstore2	none	1	fallthrough	none	45.3	unbounded
0x46	fstore_3	Fstore3	none	1	fallthrough	none	45.3	unbounded
0x47	dstore_0	Dstore0	none	1	fallthrough	none	45.3	unbounded
0x48	dstore_1	Dstore1	none	1	fallthrough	none	45.3	unbounded
0x49	dstore_2	Dstore2	none	1	fallthrough	none	45.3	unbounded
0x4a	dstore_3	Dstore3	none	1	fallthrough	none	45.3	unbounded
0x4b	astore_0	Astore0	none	1	fallthrough	none	45.3	unbounded
0x4c	astore_1	Astore1	none	1	fallthrough	none	45.3	unbounded
0x4d	astore_2	Astore2	none	1	fallthrough	none	45.3	unbounded
0x4e	astore_3	Astore3	none	1	fallthrough	none	45.3	unbounded
0x4f	iastore	Iastore	none	1	fallthrough	none	45.3	unbounded
0x50	lastore	Lastore	none	1	fallthrough	none	45.3	unbounded
0x51	fastore	Fastore	none	1	fallthrough	none	45.3	unbounded
0x52	dastore	Dastore	none	1	fallthrough	none	45.3	unbounded
0x53	aastore	Aastore	none	1	fallthrough	none	45.3	unbounded
0x54	bastore	Bastore	none	1	fallthrough	none	45.3	unbounded
0x55	castore	Castore	none	1	fallthrough	none	45.3	unbounded
0x56	sastore	Sastore	none	1	fallthrough	none	45.3	unbounded
0x57	pop	Pop	none	1	fallthrough	none	45.3	unbounded
0x58	pop2	Pop2	none	1	fallthrough	none	45.3	unbounded
0x59	dup	Dup	none	1	fallthrough	none	45.3	unbounded
0x5a	dup_x1	DupX1	none	1	fallthrough	none	45.3	unbounded
0x5b	dup_x2	DupX2	none	1	fallthrough	none	45.3	unbounded
0x5c	dup2	Dup2	none	1	fallthrough	none	45.3	unbounded
0x5d	dup2_x1	Dup2X1	none	1	fallthrough	none	45.3	unbounded
0x5e	dup2_x2	Dup2X2	none	1	fallthrough	none	45.3	unbounded
0x5f	swap	Swap	none	1	fallthrough	none	45.3	unbounded
0x60	iadd	Iadd	none	1	fallthrough	none	45.3	unbounded
0x61	ladd	Ladd	none	1	fallthrough	none	45.3	unbounded
0x62	fadd	Fadd	none	1	fallthrough	none	45.3	unbounded
0x63	dadd	Dadd	none	1	fallthrough	none	45.3	unbounded
0x64	isub	Isub	none	1	fallthrough	none	45.3	unbounded
0x65	lsub	Lsub	none	1	fallthrough	none	45.3	unbounded
0x66	fsub	Fsub	none	1	fallthrough	none	45.3	unbounded
0x67	dsub	Dsub	none	1	fallthrough	none	45.3	unbounded
0x68	imul	Imul	none	1	fallthrough	none	45.3	unbounded
0x69	lmul	Lmul	none	1	fallthrough	none	45.3	unbounded
0x6a	fmul	Fmul	none	1	fallthrough	none	45.3	unbounded
0x6b	dmul	Dmul	none	1	fallthrough	none	45.3	unbounded
0x6c	idiv	Idiv	none	1	fallthrough	none	45.3	unbounded
0x6d	ldiv	Ldiv	none	1	fallthrough	none	45.3	unbounded
0x6e	fdiv	Fdiv	none	1	fallthrough	none	45.3	unbounded
0x6f	ddiv	Ddiv	none	1	fallthrough	none	45.3	unbounded
0x70	irem	Irem	none	1	fallthrough	none	45.3	unbounded
0x71	lrem	Lrem	none	1	fallthrough	none	45.3	unbounded
0x72	frem	Frem	none	1	fallthrough	none	45.3	unbounded
0x73	drem	Drem	none	1	fallthrough	none	45.3	unbounded
0x74	ineg	Ineg	none	1	fallthrough	none	45.3	unbounded
0x75	lneg	Lneg	none	1	fallthrough	none	45.3	unbounded
0x76	fneg	Fneg	none	1	fallthrough	none	45.3	unbounded
0x77	dneg	Dneg	none	1	fallthrough	none	45.3	unbounded
0x78	ishl	Ishl	none	1	fallthrough	none	45.3	unbounded
0x79	lshl	Lshl	none	1	fallthrough	none	45.3	unbounded
0x7a	ishr	Ishr	none	1	fallthrough	none	45.3	unbounded
0x7b	lshr	Lshr	none	1	fallthrough	none	45.3	unbounded
0x7c	iushr	Iushr	none	1	fallthrough	none	45.3	unbounded
0x7d	lushr	Lushr	none	1	fallthrough	none	45.3	unbounded
0x7e	iand	Iand	none	1	fallthrough	none	45.3	unbounded
0x7f	land	Land	none	1	fallthrough	none	45.3	unbounded
0x80	ior	Ior	none	1	fallthrough	none	45.3	unbounded
0x81	lor	Lor	none	1	fallthrough	none	45.3	unbounded
0x82	ixor	Ixor	none	1	fallthrough	none	45.3	unbounded
0x83	lxor	Lxor	none	1	fallthrough	none	45.3	unbounded
0x84	iinc	Iinc	local:u1,increment:s1	3	fallthrough	none	45.3	unbounded
0x85	i2l	I2l	none	1	fallthrough	none	45.3	unbounded
0x86	i2f	I2f	none	1	fallthrough	none	45.3	unbounded
0x87	i2d	I2d	none	1	fallthrough	none	45.3	unbounded
0x88	l2i	L2i	none	1	fallthrough	none	45.3	unbounded
0x89	l2f	L2f	none	1	fallthrough	none	45.3	unbounded
0x8a	l2d	L2d	none	1	fallthrough	none	45.3	unbounded
0x8b	f2i	F2i	none	1	fallthrough	none	45.3	unbounded
0x8c	f2l	F2l	none	1	fallthrough	none	45.3	unbounded
0x8d	f2d	F2d	none	1	fallthrough	none	45.3	unbounded
0x8e	d2i	D2i	none	1	fallthrough	none	45.3	unbounded
0x8f	d2l	D2l	none	1	fallthrough	none	45.3	unbounded
0x90	d2f	D2f	none	1	fallthrough	none	45.3	unbounded
0x91	i2b	I2b	none	1	fallthrough	none	45.3	unbounded
0x92	i2c	I2c	none	1	fallthrough	none	45.3	unbounded
0x93	i2s	I2s	none	1	fallthrough	none	45.3	unbounded
0x94	lcmp	Lcmp	none	1	fallthrough	none	45.3	unbounded
0x95	fcmpl	Fcmpl	none	1	fallthrough	none	45.3	unbounded
0x96	fcmpg	Fcmpg	none	1	fallthrough	none	45.3	unbounded
0x97	dcmpl	Dcmpl	none	1	fallthrough	none	45.3	unbounded
0x98	dcmpg	Dcmpg	none	1	fallthrough	none	45.3	unbounded
0x99	ifeq	Ifeq	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9a	ifne	Ifne	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9b	iflt	Iflt	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9c	ifge	Ifge	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9d	ifgt	Ifgt	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9e	ifle	Ifle	branch:s2	3	conditional-branch	none	45.3	unbounded
0x9f	if_icmpeq	IfIcmpeq	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa0	if_icmpne	IfIcmpne	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa1	if_icmplt	IfIcmplt	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa2	if_icmpge	IfIcmpge	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa3	if_icmpgt	IfIcmpgt	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa4	if_icmple	IfIcmple	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa5	if_acmpeq	IfAcmpeq	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa6	if_acmpne	IfAcmpne	branch:s2	3	conditional-branch	none	45.3	unbounded
0xa7	goto	Goto	branch:s2	3	unconditional-branch	none	45.3	unbounded
0xa8	jsr	Jsr	branch:s2	3	subroutine-call	none	45.3	unbounded
0xa9	ret	Ret	local:u1	2	subroutine-return	none	45.3	unbounded
0xaa	tableswitch	Tableswitch	padding:align4,default:s4,low:s4,high:s4,offsets:s4[]	variable	switch	none	45.3	unbounded
0xab	lookupswitch	Lookupswitch	padding:align4,default:s4,npairs:s4,pairs:(s4,s4)[]	variable	switch	none	45.3	unbounded
0xac	ireturn	Ireturn	none	1	return	none	45.3	unbounded
0xad	lreturn	Lreturn	none	1	return	none	45.3	unbounded
0xae	freturn	Freturn	none	1	return	none	45.3	unbounded
0xaf	dreturn	Dreturn	none	1	return	none	45.3	unbounded
0xb0	areturn	Areturn	none	1	return	none	45.3	unbounded
0xb1	return	Return	none	1	return	none	45.3	unbounded
0xb2	getstatic	Getstatic	constant_pool:u2	3	fallthrough	Fieldref	45.3	unbounded
0xb3	putstatic	Putstatic	constant_pool:u2	3	fallthrough	Fieldref	45.3	unbounded
0xb4	getfield	Getfield	constant_pool:u2	3	fallthrough	Fieldref	45.3	unbounded
0xb5	putfield	Putfield	constant_pool:u2	3	fallthrough	Fieldref	45.3	unbounded
0xb6	invokevirtual	Invokevirtual	constant_pool:u2	3	invoke	Methodref	45.3	unbounded
0xb7	invokespecial	Invokespecial	constant_pool:u2	3	invoke	Methodref|InterfaceMethodref	45.3	unbounded
0xb8	invokestatic	Invokestatic	constant_pool:u2	3	invoke	Methodref|InterfaceMethodref	45.3	unbounded
0xb9	invokeinterface	Invokeinterface	constant_pool:u2,count:u1,zero:u1	5	invoke	InterfaceMethodref	45.3	unbounded
0xba	invokedynamic	Invokedynamic	constant_pool:u2,zero:u2	5	invoke	InvokeDynamic	51.0	unbounded
0xbb	new	New	constant_pool:u2	3	fallthrough	Class	45.3	unbounded
0xbc	newarray	Newarray	atype:u1	2	fallthrough	none	45.3	unbounded
0xbd	anewarray	Anewarray	constant_pool:u2	3	fallthrough	Class	45.3	unbounded
0xbe	arraylength	Arraylength	none	1	fallthrough	none	45.3	unbounded
0xbf	athrow	Athrow	none	1	throw	none	45.3	unbounded
0xc0	checkcast	Checkcast	constant_pool:u2	3	fallthrough	Class	45.3	unbounded
0xc1	instanceof	Instanceof	constant_pool:u2	3	fallthrough	Class	45.3	unbounded
0xc2	monitorenter	Monitorenter	none	1	fallthrough	none	45.3	unbounded
0xc3	monitorexit	Monitorexit	none	1	fallthrough	none	45.3	unbounded
0xc4	wide	Wide	modified_opcode:u1,local:u2[,increment:s2]	variable	fallthrough	none	45.3	unbounded
0xc5	multianewarray	Multianewarray	constant_pool:u2,dimensions:u1	4	fallthrough	Class	45.3	unbounded
0xc6	ifnull	Ifnull	branch:s2	3	conditional-branch	none	45.3	unbounded
0xc7	ifnonnull	Ifnonnull	branch:s2	3	conditional-branch	none	45.3	unbounded
0xc8	goto_w	GotoW	branch:s4	5	unconditional-branch	none	45.3	unbounded
0xc9	jsr_w	JsrW	branch:s4	5	subroutine-call	none	45.3	unbounded
0xca	breakpoint	Breakpoint	none	1	reserved	none	reserved	unbounded
0xcb	reserved_cb	ReservedCB	invalid	invalid	invalid	none	never	never
0xcc	reserved_cc	ReservedCC	invalid	invalid	invalid	none	never	never
0xcd	reserved_cd	ReservedCD	invalid	invalid	invalid	none	never	never
0xce	reserved_ce	ReservedCE	invalid	invalid	invalid	none	never	never
0xcf	reserved_cf	ReservedCF	invalid	invalid	invalid	none	never	never
0xd0	reserved_d0	ReservedD0	invalid	invalid	invalid	none	never	never
0xd1	reserved_d1	ReservedD1	invalid	invalid	invalid	none	never	never
0xd2	reserved_d2	ReservedD2	invalid	invalid	invalid	none	never	never
0xd3	reserved_d3	ReservedD3	invalid	invalid	invalid	none	never	never
0xd4	reserved_d4	ReservedD4	invalid	invalid	invalid	none	never	never
0xd5	reserved_d5	ReservedD5	invalid	invalid	invalid	none	never	never
0xd6	reserved_d6	ReservedD6	invalid	invalid	invalid	none	never	never
0xd7	reserved_d7	ReservedD7	invalid	invalid	invalid	none	never	never
0xd8	reserved_d8	ReservedD8	invalid	invalid	invalid	none	never	never
0xd9	reserved_d9	ReservedD9	invalid	invalid	invalid	none	never	never
0xda	reserved_da	ReservedDA	invalid	invalid	invalid	none	never	never
0xdb	reserved_db	ReservedDB	invalid	invalid	invalid	none	never	never
0xdc	reserved_dc	ReservedDC	invalid	invalid	invalid	none	never	never
0xdd	reserved_dd	ReservedDD	invalid	invalid	invalid	none	never	never
0xde	reserved_de	ReservedDE	invalid	invalid	invalid	none	never	never
0xdf	reserved_df	ReservedDF	invalid	invalid	invalid	none	never	never
0xe0	reserved_e0	ReservedE0	invalid	invalid	invalid	none	never	never
0xe1	reserved_e1	ReservedE1	invalid	invalid	invalid	none	never	never
0xe2	reserved_e2	ReservedE2	invalid	invalid	invalid	none	never	never
0xe3	reserved_e3	ReservedE3	invalid	invalid	invalid	none	never	never
0xe4	reserved_e4	ReservedE4	invalid	invalid	invalid	none	never	never
0xe5	reserved_e5	ReservedE5	invalid	invalid	invalid	none	never	never
0xe6	reserved_e6	ReservedE6	invalid	invalid	invalid	none	never	never
0xe7	reserved_e7	ReservedE7	invalid	invalid	invalid	none	never	never
0xe8	reserved_e8	ReservedE8	invalid	invalid	invalid	none	never	never
0xe9	reserved_e9	ReservedE9	invalid	invalid	invalid	none	never	never
0xea	reserved_ea	ReservedEA	invalid	invalid	invalid	none	never	never
0xeb	reserved_eb	ReservedEB	invalid	invalid	invalid	none	never	never
0xec	reserved_ec	ReservedEC	invalid	invalid	invalid	none	never	never
0xed	reserved_ed	ReservedED	invalid	invalid	invalid	none	never	never
0xee	reserved_ee	ReservedEE	invalid	invalid	invalid	none	never	never
0xef	reserved_ef	ReservedEF	invalid	invalid	invalid	none	never	never
0xf0	reserved_f0	ReservedF0	invalid	invalid	invalid	none	never	never
0xf1	reserved_f1	ReservedF1	invalid	invalid	invalid	none	never	never
0xf2	reserved_f2	ReservedF2	invalid	invalid	invalid	none	never	never
0xf3	reserved_f3	ReservedF3	invalid	invalid	invalid	none	never	never
0xf4	reserved_f4	ReservedF4	invalid	invalid	invalid	none	never	never
0xf5	reserved_f5	ReservedF5	invalid	invalid	invalid	none	never	never
0xf6	reserved_f6	ReservedF6	invalid	invalid	invalid	none	never	never
0xf7	reserved_f7	ReservedF7	invalid	invalid	invalid	none	never	never
0xf8	reserved_f8	ReservedF8	invalid	invalid	invalid	none	never	never
0xf9	reserved_f9	ReservedF9	invalid	invalid	invalid	none	never	never
0xfa	reserved_fa	ReservedFA	invalid	invalid	invalid	none	never	never
0xfb	reserved_fb	ReservedFB	invalid	invalid	invalid	none	never	never
0xfc	reserved_fc	ReservedFC	invalid	invalid	invalid	none	never	never
0xfd	reserved_fd	ReservedFD	invalid	invalid	invalid	none	never	never
0xfe	impdep1	Impdep1	none	1	reserved	none	reserved	unbounded
0xff	impdep2	Impdep2	none	1	reserved	none	reserved	unbounded