ir

package
v0.0.0-...-236584a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2025 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

See: https://docs.oracle.com/javase/specs/jvms/se21/html/jvms-6.html#jvms-6.5

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Attribute

type Attribute interface {
	Name() string
}

type CaseEntry

type CaseEntry struct {
	K int32
	V int32
	N *ICNode
}

func (CaseEntry) Cmp

func (c CaseEntry) Cmp(o CaseEntry) int

func (CaseEntry) CmpKey

func (c CaseEntry) CmpKey(k int32) int

type Class

type Class interface {
	Name() string
	Desc() *desc.Desc
	ArrayDim() int
	Elem() Class
	Reflect() reflect.Type
	AsRef(VM) Ref

	Modifiers() int32
	Super() Class
	Interfaces() []Class
	IsInterface() bool
	IsAssignableFrom(Class) bool
	IsInstance(Ref) bool

	GetAndPushConst(VM, uint16, Stack) error
	GetAttr(string) Attribute
	GetFields() iter.Seq[Field]
	GetField(VM, uint16) Field
	GetFieldByName(string) Field
	GetMethods() iter.Seq[Method]
	GetMethod(VM, uint16) Method
	GetMethodByName(string) Method
	GetMethodByNameAndType(name, typ string) Method
}

type ClassLoader

type ClassLoader interface {
	DefineClass(class Class)
	LoadClass(name string) (Class, error)
	LoadedClass(name string) Class
	AvaliablePackages() []string
	PackageLocation(name string) string
}

type Field

type Field interface {
	Name() string
	Offset() int64
	GetDeclaringClass() Class
	Modifiers() int32
	IsPublic() bool
	IsStatic() bool

	AsRef(VM) Ref
	GetPointer(Ref) unsafe.Pointer
	GetAndPush(Stack) error
	PopAndSet(Stack) error
}

type IC

type IC interface {
	// The operation code
	Op() ops.Op
	// Execute
	Execute(vm VM) error
}

Intermediate Code Representation

type ICJumpable

type ICJumpable interface {
	Offsets() []int32
	SetNode(i int, n *ICNode)
}

type ICNode

type ICNode struct {
	IC
	Next   *ICNode
	Offset int32
}

type ICaaload

type ICaaload struct{}

func (*ICaaload) Execute

func (*ICaaload) Execute(vm VM) error

func (*ICaaload) Op

func (*ICaaload) Op() ops.Op

type ICaastore

type ICaastore struct{}

func (*ICaastore) Execute

func (*ICaastore) Execute(vm VM) error

func (*ICaastore) Op

func (*ICaastore) Op() ops.Op

type ICaconst_null

type ICaconst_null struct{}

func (*ICaconst_null) Execute

func (*ICaconst_null) Execute(vm VM) error

func (*ICaconst_null) Op

func (*ICaconst_null) Op() ops.Op

type ICaload

type ICaload struct {
	Index uint16
}

func (*ICaload) Execute

func (ic *ICaload) Execute(vm VM) error

func (*ICaload) Op

func (*ICaload) Op() ops.Op

type ICaload_0

type ICaload_0 struct{}

func (*ICaload_0) Execute

func (*ICaload_0) Execute(vm VM) error

func (*ICaload_0) Op

func (*ICaload_0) Op() ops.Op

type ICaload_1

type ICaload_1 struct{}

func (*ICaload_1) Execute

func (*ICaload_1) Execute(vm VM) error

func (*ICaload_1) Op

func (*ICaload_1) Op() ops.Op

type ICaload_2

type ICaload_2 struct{}

func (*ICaload_2) Execute

func (*ICaload_2) Execute(vm VM) error

func (*ICaload_2) Op

func (*ICaload_2) Op() ops.Op

type ICaload_3

type ICaload_3 struct{}

func (*ICaload_3) Execute

func (*ICaload_3) Execute(vm VM) error

func (*ICaload_3) Op

func (*ICaload_3) Op() ops.Op

type ICanewarray

type ICanewarray struct {
	Class uint16
}

func (*ICanewarray) Execute

func (ic *ICanewarray) Execute(vm VM) error

func (*ICanewarray) Op

func (*ICanewarray) Op() ops.Op

type ICareturn

type ICareturn struct{}

func (*ICareturn) Execute

func (*ICareturn) Execute(vm VM) error

func (*ICareturn) Op

func (*ICareturn) Op() ops.Op

type ICarraylength

type ICarraylength struct{}

func (*ICarraylength) Execute

func (*ICarraylength) Execute(vm VM) error

func (*ICarraylength) Op

func (*ICarraylength) Op() ops.Op

type ICastore

type ICastore struct {
	Index uint16
}

func (*ICastore) Execute

func (ic *ICastore) Execute(vm VM) error

func (*ICastore) Op

func (*ICastore) Op() ops.Op

type ICastore_0

type ICastore_0 struct{}

func (*ICastore_0) Execute

func (*ICastore_0) Execute(vm VM) error

func (*ICastore_0) Op

func (*ICastore_0) Op() ops.Op

type ICastore_1

type ICastore_1 struct{}

func (*ICastore_1) Execute

func (*ICastore_1) Execute(vm VM) error

func (*ICastore_1) Op

func (*ICastore_1) Op() ops.Op

type ICastore_2

type ICastore_2 struct{}

func (*ICastore_2) Execute

func (*ICastore_2) Execute(vm VM) error

func (*ICastore_2) Op

func (*ICastore_2) Op() ops.Op

type ICastore_3

type ICastore_3 struct{}

func (*ICastore_3) Execute

func (*ICastore_3) Execute(vm VM) error

func (*ICastore_3) Op

func (*ICastore_3) Op() ops.Op

type ICathrow

type ICathrow struct{}

func (*ICathrow) Execute

func (*ICathrow) Execute(vm VM) error

func (*ICathrow) Op

func (*ICathrow) Op() ops.Op

type ICbaload

type ICbaload struct{}

func (*ICbaload) Execute

func (*ICbaload) Execute(vm VM) error

func (*ICbaload) Op

func (*ICbaload) Op() ops.Op

type ICbastore

type ICbastore struct{}

func (*ICbastore) Execute

func (*ICbastore) Execute(vm VM) error

func (*ICbastore) Op

func (*ICbastore) Op() ops.Op

type ICbipush

type ICbipush struct {
	Value int8
}

func (*ICbipush) Execute

func (ic *ICbipush) Execute(vm VM) error

func (*ICbipush) Op

func (*ICbipush) Op() ops.Op

type ICcaload

type ICcaload struct{}

func (*ICcaload) Execute

func (*ICcaload) Execute(vm VM) error

func (*ICcaload) Op

func (*ICcaload) Op() ops.Op

type ICcastore

type ICcastore struct{}

func (*ICcastore) Execute

func (*ICcastore) Execute(vm VM) error

func (*ICcastore) Op

func (*ICcastore) Op() ops.Op

type ICcheckcast

type ICcheckcast struct {
	Class uint16
}

func (*ICcheckcast) Execute

func (ic *ICcheckcast) Execute(vm VM) error

func (*ICcheckcast) Op

func (*ICcheckcast) Op() ops.Op

type ICd2f

type ICd2f struct{}

func (*ICd2f) Execute

func (*ICd2f) Execute(vm VM) error

func (*ICd2f) Op

func (*ICd2f) Op() ops.Op

type ICd2i

type ICd2i struct{}

func (*ICd2i) Execute

func (*ICd2i) Execute(vm VM) error

func (*ICd2i) Op

func (*ICd2i) Op() ops.Op

type ICd2l

type ICd2l struct{}

func (*ICd2l) Execute

func (*ICd2l) Execute(vm VM) error

func (*ICd2l) Op

func (*ICd2l) Op() ops.Op

type ICdadd

type ICdadd struct{}

func (*ICdadd) Execute

func (*ICdadd) Execute(vm VM) error

func (*ICdadd) Op

func (*ICdadd) Op() ops.Op

type ICdaload

type ICdaload struct{}

func (*ICdaload) Execute

func (*ICdaload) Execute(vm VM) error

func (*ICdaload) Op

func (*ICdaload) Op() ops.Op

type ICdastore

type ICdastore struct{}

func (*ICdastore) Execute

func (*ICdastore) Execute(vm VM) error

func (*ICdastore) Op

func (*ICdastore) Op() ops.Op

type ICdcmpg

type ICdcmpg struct{}

func (*ICdcmpg) Execute

func (*ICdcmpg) Execute(vm VM) error

func (*ICdcmpg) Op

func (*ICdcmpg) Op() ops.Op

type ICdcmpl

type ICdcmpl struct{}

func (*ICdcmpl) Execute

func (*ICdcmpl) Execute(vm VM) error

func (*ICdcmpl) Op

func (*ICdcmpl) Op() ops.Op

type ICdconst_0

type ICdconst_0 struct{}

func (*ICdconst_0) Execute

func (*ICdconst_0) Execute(vm VM) error

func (*ICdconst_0) Op

func (*ICdconst_0) Op() ops.Op

type ICdconst_1

type ICdconst_1 struct{}

func (*ICdconst_1) Execute

func (*ICdconst_1) Execute(vm VM) error

func (*ICdconst_1) Op

func (*ICdconst_1) Op() ops.Op

type ICddiv

type ICddiv struct{}

func (*ICddiv) Execute

func (*ICddiv) Execute(vm VM) error

func (*ICddiv) Op

func (*ICddiv) Op() ops.Op

type ICdload

type ICdload struct {
	Index uint16
}

func (*ICdload) Execute

func (ic *ICdload) Execute(vm VM) error

func (*ICdload) Op

func (*ICdload) Op() ops.Op

type ICdload_0

type ICdload_0 struct{}

func (*ICdload_0) Execute

func (*ICdload_0) Execute(vm VM) error

func (*ICdload_0) Op

func (*ICdload_0) Op() ops.Op

type ICdload_1

type ICdload_1 struct{}

func (*ICdload_1) Execute

func (*ICdload_1) Execute(vm VM) error

func (*ICdload_1) Op

func (*ICdload_1) Op() ops.Op

type ICdload_2

type ICdload_2 struct{}

func (*ICdload_2) Execute

func (*ICdload_2) Execute(vm VM) error

func (*ICdload_2) Op

func (*ICdload_2) Op() ops.Op

type ICdload_3

type ICdload_3 struct{}

func (*ICdload_3) Execute

func (*ICdload_3) Execute(vm VM) error

func (*ICdload_3) Op

func (*ICdload_3) Op() ops.Op

type ICdmul

type ICdmul struct{}

func (*ICdmul) Execute

func (*ICdmul) Execute(vm VM) error

func (*ICdmul) Op

func (*ICdmul) Op() ops.Op

type ICdneg

type ICdneg struct{}

func (*ICdneg) Execute

func (*ICdneg) Execute(vm VM) error

func (*ICdneg) Op

func (*ICdneg) Op() ops.Op

type ICdrem

type ICdrem struct{}

func (*ICdrem) Execute

func (*ICdrem) Execute(vm VM) error

func (*ICdrem) Op

func (*ICdrem) Op() ops.Op

type ICdreturn

type ICdreturn struct{}

func (*ICdreturn) Execute

func (*ICdreturn) Execute(vm VM) error

func (*ICdreturn) Op

func (*ICdreturn) Op() ops.Op

type ICdstore

type ICdstore struct {
	Index uint16
}

func (*ICdstore) Execute

func (ic *ICdstore) Execute(vm VM) error

func (*ICdstore) Op

func (*ICdstore) Op() ops.Op

type ICdstore_0

type ICdstore_0 struct{}

func (*ICdstore_0) Execute

func (*ICdstore_0) Execute(vm VM) error

func (*ICdstore_0) Op

func (*ICdstore_0) Op() ops.Op

type ICdstore_1

type ICdstore_1 struct{}

func (*ICdstore_1) Execute

func (*ICdstore_1) Execute(vm VM) error

func (*ICdstore_1) Op

func (*ICdstore_1) Op() ops.Op

type ICdstore_2

type ICdstore_2 struct{}

func (*ICdstore_2) Execute

func (*ICdstore_2) Execute(vm VM) error

func (*ICdstore_2) Op

func (*ICdstore_2) Op() ops.Op

type ICdstore_3

type ICdstore_3 struct{}

func (*ICdstore_3) Execute

func (*ICdstore_3) Execute(vm VM) error

func (*ICdstore_3) Op

func (*ICdstore_3) Op() ops.Op

type ICdsub

type ICdsub struct{}

func (*ICdsub) Execute

func (*ICdsub) Execute(vm VM) error

func (*ICdsub) Op

func (*ICdsub) Op() ops.Op

type ICdup

type ICdup struct{}

func (*ICdup) Execute

func (*ICdup) Execute(vm VM) error

func (*ICdup) Op

func (*ICdup) Op() ops.Op

type ICdup2

type ICdup2 struct{}

func (*ICdup2) Execute

func (*ICdup2) Execute(vm VM) error

func (*ICdup2) Op

func (*ICdup2) Op() ops.Op

type ICdup2_x1

type ICdup2_x1 struct{}

func (*ICdup2_x1) Execute

func (*ICdup2_x1) Execute(vm VM) error

func (*ICdup2_x1) Op

func (*ICdup2_x1) Op() ops.Op

type ICdup2_x2

type ICdup2_x2 struct{}

func (*ICdup2_x2) Execute

func (*ICdup2_x2) Execute(vm VM) error

func (*ICdup2_x2) Op

func (*ICdup2_x2) Op() ops.Op

type ICdup_x1

type ICdup_x1 struct{}

func (*ICdup_x1) Execute

func (*ICdup_x1) Execute(vm VM) error

func (*ICdup_x1) Op

func (*ICdup_x1) Op() ops.Op

type ICdup_x2

type ICdup_x2 struct{}

func (*ICdup_x2) Execute

func (*ICdup_x2) Execute(vm VM) error

func (*ICdup_x2) Op

func (*ICdup_x2) Op() ops.Op

type ICf2d

type ICf2d struct{}

func (*ICf2d) Execute

func (*ICf2d) Execute(vm VM) error

func (*ICf2d) Op

func (*ICf2d) Op() ops.Op

type ICf2i

type ICf2i struct{}

func (*ICf2i) Execute

func (*ICf2i) Execute(vm VM) error

func (*ICf2i) Op

func (*ICf2i) Op() ops.Op

type ICf2l

type ICf2l struct{}

func (*ICf2l) Execute

func (*ICf2l) Execute(vm VM) error

func (*ICf2l) Op

func (*ICf2l) Op() ops.Op

type ICfadd

type ICfadd struct{}

func (*ICfadd) Execute

func (*ICfadd) Execute(vm VM) error

func (*ICfadd) Op

func (*ICfadd) Op() ops.Op

type ICfaload

type ICfaload struct{}

func (*ICfaload) Execute

func (*ICfaload) Execute(vm VM) error

func (*ICfaload) Op

func (*ICfaload) Op() ops.Op

type ICfastore

type ICfastore struct{}

func (*ICfastore) Execute

func (*ICfastore) Execute(vm VM) error

func (*ICfastore) Op

func (*ICfastore) Op() ops.Op

type ICfcmpg

type ICfcmpg struct{}

func (*ICfcmpg) Execute

func (*ICfcmpg) Execute(vm VM) error

func (*ICfcmpg) Op

func (*ICfcmpg) Op() ops.Op

type ICfcmpl

type ICfcmpl struct{}

func (*ICfcmpl) Execute

func (*ICfcmpl) Execute(vm VM) error

func (*ICfcmpl) Op

func (*ICfcmpl) Op() ops.Op

type ICfconst_0

type ICfconst_0 struct{}

func (*ICfconst_0) Execute

func (*ICfconst_0) Execute(vm VM) error

func (*ICfconst_0) Op

func (*ICfconst_0) Op() ops.Op

type ICfconst_1

type ICfconst_1 struct{}

func (*ICfconst_1) Execute

func (*ICfconst_1) Execute(vm VM) error

func (*ICfconst_1) Op

func (*ICfconst_1) Op() ops.Op

type ICfconst_2

type ICfconst_2 struct{}

func (*ICfconst_2) Execute

func (*ICfconst_2) Execute(vm VM) error

func (*ICfconst_2) Op

func (*ICfconst_2) Op() ops.Op

type ICfdiv

type ICfdiv struct{}

func (*ICfdiv) Execute

func (*ICfdiv) Execute(vm VM) error

func (*ICfdiv) Op

func (*ICfdiv) Op() ops.Op

type ICfload

type ICfload struct {
	Index uint16
}

func (*ICfload) Execute

func (ic *ICfload) Execute(vm VM) error

func (*ICfload) Op

func (*ICfload) Op() ops.Op

type ICfload_0

type ICfload_0 struct{}

func (*ICfload_0) Execute

func (*ICfload_0) Execute(vm VM) error

func (*ICfload_0) Op

func (*ICfload_0) Op() ops.Op

type ICfload_1

type ICfload_1 struct{}

func (*ICfload_1) Execute

func (*ICfload_1) Execute(vm VM) error

func (*ICfload_1) Op

func (*ICfload_1) Op() ops.Op

type ICfload_2

type ICfload_2 struct{}

func (*ICfload_2) Execute

func (*ICfload_2) Execute(vm VM) error

func (*ICfload_2) Op

func (*ICfload_2) Op() ops.Op

type ICfload_3

type ICfload_3 struct{}

func (*ICfload_3) Execute

func (*ICfload_3) Execute(vm VM) error

func (*ICfload_3) Op

func (*ICfload_3) Op() ops.Op

type ICfmul

type ICfmul struct{}

func (*ICfmul) Execute

func (*ICfmul) Execute(vm VM) error

func (*ICfmul) Op

func (*ICfmul) Op() ops.Op

type ICfneg

type ICfneg struct{}

func (*ICfneg) Execute

func (*ICfneg) Execute(vm VM) error

func (*ICfneg) Op

func (*ICfneg) Op() ops.Op

type ICfrem

type ICfrem struct{}

func (*ICfrem) Execute

func (*ICfrem) Execute(vm VM) error

func (*ICfrem) Op

func (*ICfrem) Op() ops.Op

type ICfreturn

type ICfreturn struct{}

func (*ICfreturn) Execute

func (*ICfreturn) Execute(vm VM) error

func (*ICfreturn) Op

func (*ICfreturn) Op() ops.Op

type ICfstore

type ICfstore struct {
	Index uint16
}

func (*ICfstore) Execute

func (ic *ICfstore) Execute(vm VM) error

func (*ICfstore) Op

func (*ICfstore) Op() ops.Op

type ICfstore_0

type ICfstore_0 struct{}

func (*ICfstore_0) Execute

func (*ICfstore_0) Execute(vm VM) error

func (*ICfstore_0) Op

func (*ICfstore_0) Op() ops.Op

type ICfstore_1

type ICfstore_1 struct{}

func (*ICfstore_1) Execute

func (*ICfstore_1) Execute(vm VM) error

func (*ICfstore_1) Op

func (*ICfstore_1) Op() ops.Op

type ICfstore_2

type ICfstore_2 struct{}

func (*ICfstore_2) Execute

func (*ICfstore_2) Execute(vm VM) error

func (*ICfstore_2) Op

func (*ICfstore_2) Op() ops.Op

type ICfstore_3

type ICfstore_3 struct{}

func (*ICfstore_3) Execute

func (*ICfstore_3) Execute(vm VM) error

func (*ICfstore_3) Op

func (*ICfstore_3) Op() ops.Op

type ICfsub

type ICfsub struct{}

func (*ICfsub) Execute

func (*ICfsub) Execute(vm VM) error

func (*ICfsub) Op

func (*ICfsub) Op() ops.Op

type ICgetfield

type ICgetfield struct {
	Field uint16
}

func (*ICgetfield) Execute

func (ic *ICgetfield) Execute(vm VM) error

func (*ICgetfield) Op

func (*ICgetfield) Op() ops.Op

type ICgetstatic

type ICgetstatic struct {
	Field uint16
}

func (*ICgetstatic) Execute

func (ic *ICgetstatic) Execute(vm VM) error

func (*ICgetstatic) Op

func (*ICgetstatic) Op() ops.Op

type ICgoto

type ICgoto struct {
	Offset int16
	Node   *ICNode
}

func (*ICgoto) Execute

func (ic *ICgoto) Execute(vm VM) error

func (*ICgoto) Offsets

func (ic *ICgoto) Offsets() []int32

func (*ICgoto) Op

func (*ICgoto) Op() ops.Op

func (*ICgoto) SetNode

func (ic *ICgoto) SetNode(i int, n *ICNode)

type ICgoto_w

type ICgoto_w struct {
	Offset int32
	Node   *ICNode
}

func (*ICgoto_w) Execute

func (ic *ICgoto_w) Execute(vm VM) error

func (*ICgoto_w) Offsets

func (ic *ICgoto_w) Offsets() []int32

func (*ICgoto_w) Op

func (*ICgoto_w) Op() ops.Op

func (*ICgoto_w) SetNode

func (ic *ICgoto_w) SetNode(i int, n *ICNode)

type ICi2b

type ICi2b struct{}

func (*ICi2b) Execute

func (*ICi2b) Execute(vm VM) error

func (*ICi2b) Op

func (*ICi2b) Op() ops.Op

type ICi2c

type ICi2c struct{}

func (*ICi2c) Execute

func (*ICi2c) Execute(vm VM) error

func (*ICi2c) Op

func (*ICi2c) Op() ops.Op

type ICi2d

type ICi2d struct{}

func (*ICi2d) Execute

func (*ICi2d) Execute(vm VM) error

func (*ICi2d) Op

func (*ICi2d) Op() ops.Op

type ICi2f

type ICi2f struct{}

func (*ICi2f) Execute

func (*ICi2f) Execute(vm VM) error

func (*ICi2f) Op

func (*ICi2f) Op() ops.Op

type ICi2l

type ICi2l struct{}

func (*ICi2l) Execute

func (*ICi2l) Execute(vm VM) error

func (*ICi2l) Op

func (*ICi2l) Op() ops.Op

type ICi2s

type ICi2s struct{}

func (*ICi2s) Execute

func (*ICi2s) Execute(vm VM) error

func (*ICi2s) Op

func (*ICi2s) Op() ops.Op

type ICiadd

type ICiadd struct{}

func (*ICiadd) Execute

func (*ICiadd) Execute(vm VM) error

func (*ICiadd) Op

func (*ICiadd) Op() ops.Op

type ICiaload

type ICiaload struct{}

func (*ICiaload) Execute

func (*ICiaload) Execute(vm VM) error

func (*ICiaload) Op

func (*ICiaload) Op() ops.Op

type ICiand

type ICiand struct{}

func (*ICiand) Execute

func (*ICiand) Execute(vm VM) error

func (*ICiand) Op

func (*ICiand) Op() ops.Op

type ICiastore

type ICiastore struct{}

func (*ICiastore) Execute

func (*ICiastore) Execute(vm VM) error

func (*ICiastore) Op

func (*ICiastore) Op() ops.Op

type ICiconst_0

type ICiconst_0 struct{}

func (*ICiconst_0) Execute

func (*ICiconst_0) Execute(vm VM) error

func (*ICiconst_0) Op

func (*ICiconst_0) Op() ops.Op

type ICiconst_1

type ICiconst_1 struct{}

func (*ICiconst_1) Execute

func (*ICiconst_1) Execute(vm VM) error

func (*ICiconst_1) Op

func (*ICiconst_1) Op() ops.Op

type ICiconst_2

type ICiconst_2 struct{}

func (*ICiconst_2) Execute

func (*ICiconst_2) Execute(vm VM) error

func (*ICiconst_2) Op

func (*ICiconst_2) Op() ops.Op

type ICiconst_3

type ICiconst_3 struct{}

func (*ICiconst_3) Execute

func (*ICiconst_3) Execute(vm VM) error

func (*ICiconst_3) Op

func (*ICiconst_3) Op() ops.Op

type ICiconst_4

type ICiconst_4 struct{}

func (*ICiconst_4) Execute

func (*ICiconst_4) Execute(vm VM) error

func (*ICiconst_4) Op

func (*ICiconst_4) Op() ops.Op

type ICiconst_5

type ICiconst_5 struct{}

func (*ICiconst_5) Execute

func (*ICiconst_5) Execute(vm VM) error

func (*ICiconst_5) Op

func (*ICiconst_5) Op() ops.Op

type ICiconst_m1

type ICiconst_m1 struct{}

func (*ICiconst_m1) Execute

func (*ICiconst_m1) Execute(vm VM) error

func (*ICiconst_m1) Op

func (*ICiconst_m1) Op() ops.Op

type ICidiv

type ICidiv struct{}

func (*ICidiv) Execute

func (*ICidiv) Execute(vm VM) error

func (*ICidiv) Op

func (*ICidiv) Op() ops.Op

type ICif_acmpeq

type ICif_acmpeq struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_acmpeq) Execute

func (ic *ICif_acmpeq) Execute(vm VM) error

func (*ICif_acmpeq) Offsets

func (ic *ICif_acmpeq) Offsets() []int32

func (*ICif_acmpeq) Op

func (*ICif_acmpeq) Op() ops.Op

func (*ICif_acmpeq) SetNode

func (ic *ICif_acmpeq) SetNode(i int, n *ICNode)

type ICif_acmpne

type ICif_acmpne struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_acmpne) Execute

func (ic *ICif_acmpne) Execute(vm VM) error

func (*ICif_acmpne) Offsets

func (ic *ICif_acmpne) Offsets() []int32

func (*ICif_acmpne) Op

func (*ICif_acmpne) Op() ops.Op

func (*ICif_acmpne) SetNode

func (ic *ICif_acmpne) SetNode(i int, n *ICNode)

type ICif_icmpeq

type ICif_icmpeq struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmpeq) Execute

func (ic *ICif_icmpeq) Execute(vm VM) error

func (*ICif_icmpeq) Offsets

func (ic *ICif_icmpeq) Offsets() []int32

func (*ICif_icmpeq) Op

func (*ICif_icmpeq) Op() ops.Op

func (*ICif_icmpeq) SetNode

func (ic *ICif_icmpeq) SetNode(i int, n *ICNode)

type ICif_icmpge

type ICif_icmpge struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmpge) Execute

func (ic *ICif_icmpge) Execute(vm VM) error

func (*ICif_icmpge) Offsets

func (ic *ICif_icmpge) Offsets() []int32

func (*ICif_icmpge) Op

func (*ICif_icmpge) Op() ops.Op

func (*ICif_icmpge) SetNode

func (ic *ICif_icmpge) SetNode(i int, n *ICNode)

type ICif_icmpgt

type ICif_icmpgt struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmpgt) Execute

func (ic *ICif_icmpgt) Execute(vm VM) error

func (*ICif_icmpgt) Offsets

func (ic *ICif_icmpgt) Offsets() []int32

func (*ICif_icmpgt) Op

func (*ICif_icmpgt) Op() ops.Op

func (*ICif_icmpgt) SetNode

func (ic *ICif_icmpgt) SetNode(i int, n *ICNode)

type ICif_icmple

type ICif_icmple struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmple) Execute

func (ic *ICif_icmple) Execute(vm VM) error

func (*ICif_icmple) Offsets

func (ic *ICif_icmple) Offsets() []int32

func (*ICif_icmple) Op

func (*ICif_icmple) Op() ops.Op

func (*ICif_icmple) SetNode

func (ic *ICif_icmple) SetNode(i int, n *ICNode)

type ICif_icmplt

type ICif_icmplt struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmplt) Execute

func (ic *ICif_icmplt) Execute(vm VM) error

func (*ICif_icmplt) Offsets

func (ic *ICif_icmplt) Offsets() []int32

func (*ICif_icmplt) Op

func (*ICif_icmplt) Op() ops.Op

func (*ICif_icmplt) SetNode

func (ic *ICif_icmplt) SetNode(i int, n *ICNode)

type ICif_icmpne

type ICif_icmpne struct {
	Offset int16
	Node   *ICNode
}

func (*ICif_icmpne) Execute

func (ic *ICif_icmpne) Execute(vm VM) error

func (*ICif_icmpne) Offsets

func (ic *ICif_icmpne) Offsets() []int32

func (*ICif_icmpne) Op

func (*ICif_icmpne) Op() ops.Op

func (*ICif_icmpne) SetNode

func (ic *ICif_icmpne) SetNode(i int, n *ICNode)

type ICifeq

type ICifeq struct {
	Offset int16
	Node   *ICNode
}

func (*ICifeq) Execute

func (ic *ICifeq) Execute(vm VM) error

func (*ICifeq) Offsets

func (ic *ICifeq) Offsets() []int32

func (*ICifeq) Op

func (*ICifeq) Op() ops.Op

func (*ICifeq) SetNode

func (ic *ICifeq) SetNode(i int, n *ICNode)

type ICifge

type ICifge struct {
	Offset int16
	Node   *ICNode
}

func (*ICifge) Execute

func (ic *ICifge) Execute(vm VM) error

func (*ICifge) Offsets

func (ic *ICifge) Offsets() []int32

func (*ICifge) Op

func (*ICifge) Op() ops.Op

func (*ICifge) SetNode

func (ic *ICifge) SetNode(i int, n *ICNode)

type ICifgt

type ICifgt struct {
	Offset int16
	Node   *ICNode
}

func (*ICifgt) Execute

func (ic *ICifgt) Execute(vm VM) error

func (*ICifgt) Offsets

func (ic *ICifgt) Offsets() []int32

func (*ICifgt) Op

func (*ICifgt) Op() ops.Op

func (*ICifgt) SetNode

func (ic *ICifgt) SetNode(i int, n *ICNode)

type ICifle

type ICifle struct {
	Offset int16
	Node   *ICNode
}

func (*ICifle) Execute

func (ic *ICifle) Execute(vm VM) error

func (*ICifle) Offsets

func (ic *ICifle) Offsets() []int32

func (*ICifle) Op

func (*ICifle) Op() ops.Op

func (*ICifle) SetNode

func (ic *ICifle) SetNode(i int, n *ICNode)

type ICiflt

type ICiflt struct {
	Offset int16
	Node   *ICNode
}

func (*ICiflt) Execute

func (ic *ICiflt) Execute(vm VM) error

func (*ICiflt) Offsets

func (ic *ICiflt) Offsets() []int32

func (*ICiflt) Op

func (*ICiflt) Op() ops.Op

func (*ICiflt) SetNode

func (ic *ICiflt) SetNode(i int, n *ICNode)

type ICifne

type ICifne struct {
	Offset int16
	Node   *ICNode
}

func (*ICifne) Execute

func (ic *ICifne) Execute(vm VM) error

func (*ICifne) Offsets

func (ic *ICifne) Offsets() []int32

func (*ICifne) Op

func (*ICifne) Op() ops.Op

func (*ICifne) SetNode

func (ic *ICifne) SetNode(i int, n *ICNode)

type ICifnonnull

type ICifnonnull struct {
	Offset int16
	Node   *ICNode
}

func (*ICifnonnull) Execute

func (ic *ICifnonnull) Execute(vm VM) error

func (*ICifnonnull) Offsets

func (ic *ICifnonnull) Offsets() []int32

func (*ICifnonnull) Op

func (*ICifnonnull) Op() ops.Op

func (*ICifnonnull) SetNode

func (ic *ICifnonnull) SetNode(i int, n *ICNode)

type ICifnull

type ICifnull struct {
	Offset int16
	Node   *ICNode
}

func (*ICifnull) Execute

func (ic *ICifnull) Execute(vm VM) error

func (*ICifnull) Offsets

func (ic *ICifnull) Offsets() []int32

func (*ICifnull) Op

func (*ICifnull) Op() ops.Op

func (*ICifnull) SetNode

func (ic *ICifnull) SetNode(i int, n *ICNode)

type ICiinc

type ICiinc struct {
	Index uint16
	Const int16
}

func (*ICiinc) Execute

func (ic *ICiinc) Execute(vm VM) error

func (*ICiinc) Op

func (*ICiinc) Op() ops.Op

type ICiload

type ICiload struct {
	Index uint16
}

func (*ICiload) Execute

func (ic *ICiload) Execute(vm VM) error

func (*ICiload) Op

func (*ICiload) Op() ops.Op

type ICiload_0

type ICiload_0 struct{}

func (*ICiload_0) Execute

func (*ICiload_0) Execute(vm VM) error

func (*ICiload_0) Op

func (*ICiload_0) Op() ops.Op

type ICiload_1

type ICiload_1 struct{}

func (*ICiload_1) Execute

func (*ICiload_1) Execute(vm VM) error

func (*ICiload_1) Op

func (*ICiload_1) Op() ops.Op

type ICiload_2

type ICiload_2 struct{}

func (*ICiload_2) Execute

func (*ICiload_2) Execute(vm VM) error

func (*ICiload_2) Op

func (*ICiload_2) Op() ops.Op

type ICiload_3

type ICiload_3 struct{}

func (*ICiload_3) Execute

func (*ICiload_3) Execute(vm VM) error

func (*ICiload_3) Op

func (*ICiload_3) Op() ops.Op

type ICimul

type ICimul struct{}

func (*ICimul) Execute

func (*ICimul) Execute(vm VM) error

func (*ICimul) Op

func (*ICimul) Op() ops.Op

type ICineg

type ICineg struct{}

func (*ICineg) Execute

func (*ICineg) Execute(vm VM) error

func (*ICineg) Op

func (*ICineg) Op() ops.Op

type ICinstanceof

type ICinstanceof struct {
	Class uint16
}

func (*ICinstanceof) Execute

func (ic *ICinstanceof) Execute(vm VM) error

func (*ICinstanceof) Op

func (*ICinstanceof) Op() ops.Op

type ICinvokedynamic

type ICinvokedynamic struct {
	Method uint16
}

func (*ICinvokedynamic) Execute

func (ic *ICinvokedynamic) Execute(vm VM) error

func (*ICinvokedynamic) Op

func (*ICinvokedynamic) Op() ops.Op

type ICinvokeinterface

type ICinvokeinterface struct {
	Method uint16
	Count  byte // not in use
}

func (*ICinvokeinterface) Execute

func (ic *ICinvokeinterface) Execute(vm VM) error

func (*ICinvokeinterface) Op

func (*ICinvokeinterface) Op() ops.Op

type ICinvokespecial

type ICinvokespecial struct {
	Method uint16
}

func (*ICinvokespecial) Execute

func (ic *ICinvokespecial) Execute(vm VM) error

func (*ICinvokespecial) Op

func (*ICinvokespecial) Op() ops.Op

type ICinvokestatic

type ICinvokestatic struct {
	Method uint16
}

func (*ICinvokestatic) Execute

func (ic *ICinvokestatic) Execute(vm VM) error

func (*ICinvokestatic) Op

func (*ICinvokestatic) Op() ops.Op

type ICinvokevirtual

type ICinvokevirtual struct {
	Method uint16
}

func (*ICinvokevirtual) Execute

func (ic *ICinvokevirtual) Execute(vm VM) error

func (*ICinvokevirtual) Op

func (*ICinvokevirtual) Op() ops.Op

type ICior

type ICior struct{}

func (*ICior) Execute

func (*ICior) Execute(vm VM) error

func (*ICior) Op

func (*ICior) Op() ops.Op

type ICirem

type ICirem struct{}

func (*ICirem) Execute

func (*ICirem) Execute(vm VM) error

func (*ICirem) Op

func (*ICirem) Op() ops.Op

type ICireturn

type ICireturn struct{}

func (*ICireturn) Execute

func (*ICireturn) Execute(vm VM) error

func (*ICireturn) Op

func (*ICireturn) Op() ops.Op

type ICishl

type ICishl struct{}

func (*ICishl) Execute

func (*ICishl) Execute(vm VM) error

func (*ICishl) Op

func (*ICishl) Op() ops.Op

type ICishr

type ICishr struct{}

func (*ICishr) Execute

func (*ICishr) Execute(vm VM) error

func (*ICishr) Op

func (*ICishr) Op() ops.Op

type ICistore

type ICistore struct {
	Index uint16
}

func (*ICistore) Execute

func (ic *ICistore) Execute(vm VM) error

func (*ICistore) Op

func (*ICistore) Op() ops.Op

type ICistore_0

type ICistore_0 struct{}

func (*ICistore_0) Execute

func (*ICistore_0) Execute(vm VM) error

func (*ICistore_0) Op

func (*ICistore_0) Op() ops.Op

type ICistore_1

type ICistore_1 struct{}

func (*ICistore_1) Execute

func (*ICistore_1) Execute(vm VM) error

func (*ICistore_1) Op

func (*ICistore_1) Op() ops.Op

type ICistore_2

type ICistore_2 struct{}

func (*ICistore_2) Execute

func (*ICistore_2) Execute(vm VM) error

func (*ICistore_2) Op

func (*ICistore_2) Op() ops.Op

type ICistore_3

type ICistore_3 struct{}

func (*ICistore_3) Execute

func (*ICistore_3) Execute(vm VM) error

func (*ICistore_3) Op

func (*ICistore_3) Op() ops.Op

type ICisub

type ICisub struct{}

func (*ICisub) Execute

func (*ICisub) Execute(vm VM) error

func (*ICisub) Op

func (*ICisub) Op() ops.Op

type ICiushr

type ICiushr struct{}

func (*ICiushr) Execute

func (*ICiushr) Execute(vm VM) error

func (*ICiushr) Op

func (*ICiushr) Op() ops.Op

type ICixor

type ICixor struct{}

func (*ICixor) Execute

func (*ICixor) Execute(vm VM) error

func (*ICixor) Op

func (*ICixor) Op() ops.Op

type ICjsr

type ICjsr struct{}

func (*ICjsr) Execute

func (*ICjsr) Execute(vm VM) error

func (*ICjsr) Op

func (*ICjsr) Op() ops.Op

func (*ICjsr) Parse

func (*ICjsr) Parse(operands []byte)

type ICjsr_w

type ICjsr_w struct{}

func (*ICjsr_w) Execute

func (*ICjsr_w) Execute(vm VM) error

func (*ICjsr_w) Op

func (*ICjsr_w) Op() ops.Op

func (*ICjsr_w) Parse

func (*ICjsr_w) Parse(operands []byte)

type ICl2d

type ICl2d struct{}

func (*ICl2d) Execute

func (*ICl2d) Execute(vm VM) error

func (*ICl2d) Op

func (*ICl2d) Op() ops.Op

type ICl2f

type ICl2f struct{}

func (*ICl2f) Execute

func (*ICl2f) Execute(vm VM) error

func (*ICl2f) Op

func (*ICl2f) Op() ops.Op

type ICl2i

type ICl2i struct{}

func (*ICl2i) Execute

func (*ICl2i) Execute(vm VM) error

func (*ICl2i) Op

func (*ICl2i) Op() ops.Op

type ICladd

type ICladd struct{}

func (*ICladd) Execute

func (*ICladd) Execute(vm VM) error

func (*ICladd) Op

func (*ICladd) Op() ops.Op

type IClaload

type IClaload struct{}

func (*IClaload) Execute

func (*IClaload) Execute(vm VM) error

func (*IClaload) Op

func (*IClaload) Op() ops.Op

type ICland

type ICland struct{}

func (*ICland) Execute

func (*ICland) Execute(vm VM) error

func (*ICland) Op

func (*ICland) Op() ops.Op

type IClastore

type IClastore struct{}

func (*IClastore) Execute

func (*IClastore) Execute(vm VM) error

func (*IClastore) Op

func (*IClastore) Op() ops.Op

type IClcmp

type IClcmp struct{}

func (*IClcmp) Execute

func (*IClcmp) Execute(vm VM) error

func (*IClcmp) Op

func (*IClcmp) Op() ops.Op

type IClconst_0

type IClconst_0 struct{}

func (*IClconst_0) Execute

func (*IClconst_0) Execute(vm VM) error

func (*IClconst_0) Op

func (*IClconst_0) Op() ops.Op

type IClconst_1

type IClconst_1 struct{}

func (*IClconst_1) Execute

func (*IClconst_1) Execute(vm VM) error

func (*IClconst_1) Op

func (*IClconst_1) Op() ops.Op

type ICldc

type ICldc struct {
	Index byte
}

func (*ICldc) Execute

func (ic *ICldc) Execute(vm VM) error

func (*ICldc) Op

func (*ICldc) Op() ops.Op

type ICldc2_w

type ICldc2_w struct {
	Index uint16
}

func (*ICldc2_w) Execute

func (ic *ICldc2_w) Execute(vm VM) error

func (*ICldc2_w) Op

func (*ICldc2_w) Op() ops.Op

type ICldc_w

type ICldc_w struct {
	Index uint16
}

func (*ICldc_w) Execute

func (ic *ICldc_w) Execute(vm VM) error

func (*ICldc_w) Op

func (*ICldc_w) Op() ops.Op

type ICldiv

type ICldiv struct{}

func (*ICldiv) Execute

func (*ICldiv) Execute(vm VM) error

func (*ICldiv) Op

func (*ICldiv) Op() ops.Op

type IClload

type IClload struct {
	Index uint16
}

func (*IClload) Execute

func (ic *IClload) Execute(vm VM) error

func (*IClload) Op

func (*IClload) Op() ops.Op

type IClload_0

type IClload_0 struct{}

func (*IClload_0) Execute

func (*IClload_0) Execute(vm VM) error

func (*IClload_0) Op

func (*IClload_0) Op() ops.Op

type IClload_1

type IClload_1 struct{}

func (*IClload_1) Execute

func (*IClload_1) Execute(vm VM) error

func (*IClload_1) Op

func (*IClload_1) Op() ops.Op

type IClload_2

type IClload_2 struct{}

func (*IClload_2) Execute

func (*IClload_2) Execute(vm VM) error

func (*IClload_2) Op

func (*IClload_2) Op() ops.Op

type IClload_3

type IClload_3 struct{}

func (*IClload_3) Execute

func (*IClload_3) Execute(vm VM) error

func (*IClload_3) Op

func (*IClload_3) Op() ops.Op

type IClmul

type IClmul struct{}

func (*IClmul) Execute

func (*IClmul) Execute(vm VM) error

func (*IClmul) Op

func (*IClmul) Op() ops.Op

type IClneg

type IClneg struct{}

func (*IClneg) Execute

func (*IClneg) Execute(vm VM) error

func (*IClneg) Op

func (*IClneg) Op() ops.Op

type IClookupswitch

type IClookupswitch struct {
	DefaultOffset int32
	DefaultNode   *ICNode
	Indexes       []CaseEntry
}

A lookupswitch is a variable-length instruction. Immediately after the lookupswitch opcode, between zero and three bytes must act as padding, such that defaultbyte1 begins at an address that is a multiple of four bytes from the start of the current method (the opcode of its first instruction).

IClookupswitch's operands' length must determined by the parser.

func (*IClookupswitch) Execute

func (ic *IClookupswitch) Execute(vm VM) error

func (*IClookupswitch) Offsets

func (ic *IClookupswitch) Offsets() []int32

func (*IClookupswitch) Op

func (*IClookupswitch) Op() ops.Op

func (*IClookupswitch) SetNode

func (ic *IClookupswitch) SetNode(i int, n *ICNode)

type IClor

type IClor struct{}

func (*IClor) Execute

func (*IClor) Execute(vm VM) error

func (*IClor) Op

func (*IClor) Op() ops.Op

type IClrem

type IClrem struct{}

func (*IClrem) Execute

func (*IClrem) Execute(vm VM) error

func (*IClrem) Op

func (*IClrem) Op() ops.Op

type IClreturn

type IClreturn struct{}

func (*IClreturn) Execute

func (*IClreturn) Execute(vm VM) error

func (*IClreturn) Op

func (*IClreturn) Op() ops.Op

type IClshl

type IClshl struct{}

func (*IClshl) Execute

func (*IClshl) Execute(vm VM) error

func (*IClshl) Op

func (*IClshl) Op() ops.Op

type IClshr

type IClshr struct{}

func (*IClshr) Execute

func (*IClshr) Execute(vm VM) error

func (*IClshr) Op

func (*IClshr) Op() ops.Op

type IClstore

type IClstore struct {
	Index uint16
}

func (*IClstore) Execute

func (ic *IClstore) Execute(vm VM) error

func (*IClstore) Op

func (*IClstore) Op() ops.Op

type IClstore_0

type IClstore_0 struct{}

func (*IClstore_0) Execute

func (*IClstore_0) Execute(vm VM) error

func (*IClstore_0) Op

func (*IClstore_0) Op() ops.Op

type IClstore_1

type IClstore_1 struct{}

func (*IClstore_1) Execute

func (*IClstore_1) Execute(vm VM) error

func (*IClstore_1) Op

func (*IClstore_1) Op() ops.Op

type IClstore_2

type IClstore_2 struct{}

func (*IClstore_2) Execute

func (*IClstore_2) Execute(vm VM) error

func (*IClstore_2) Op

func (*IClstore_2) Op() ops.Op

type IClstore_3

type IClstore_3 struct{}

func (*IClstore_3) Execute

func (*IClstore_3) Execute(vm VM) error

func (*IClstore_3) Op

func (*IClstore_3) Op() ops.Op

type IClsub

type IClsub struct{}

func (*IClsub) Execute

func (*IClsub) Execute(vm VM) error

func (*IClsub) Op

func (*IClsub) Op() ops.Op

type IClushr

type IClushr struct{}

func (*IClushr) Execute

func (*IClushr) Execute(vm VM) error

func (*IClushr) Op

func (*IClushr) Op() ops.Op

type IClxor

type IClxor struct{}

func (*IClxor) Execute

func (*IClxor) Execute(vm VM) error

func (*IClxor) Op

func (*IClxor) Op() ops.Op

type ICmonitorenter

type ICmonitorenter struct{}

func (*ICmonitorenter) Execute

func (*ICmonitorenter) Execute(vm VM) error

func (*ICmonitorenter) Op

func (*ICmonitorenter) Op() ops.Op

type ICmonitorexit

type ICmonitorexit struct{}

func (*ICmonitorexit) Execute

func (*ICmonitorexit) Execute(vm VM) error

func (*ICmonitorexit) Op

func (*ICmonitorexit) Op() ops.Op

type ICmultianewarray

type ICmultianewarray struct {
	ArrClass   uint16
	Dimensions byte
}

func (*ICmultianewarray) Execute

func (ic *ICmultianewarray) Execute(vm VM) error

func (*ICmultianewarray) Op

func (*ICmultianewarray) Op() ops.Op

type ICnew

type ICnew struct {
	Class uint16
}

func (*ICnew) Execute

func (ic *ICnew) Execute(vm VM) error

func (*ICnew) Op

func (*ICnew) Op() ops.Op

type ICnewarray

type ICnewarray struct {
	Atype byte
}

func (*ICnewarray) Execute

func (ic *ICnewarray) Execute(vm VM) error

func (*ICnewarray) Op

func (*ICnewarray) Op() ops.Op

type ICnop

type ICnop struct{}

func (*ICnop) Execute

func (*ICnop) Execute(vm VM) error

func (*ICnop) Op

func (*ICnop) Op() ops.Op

type ICpop

type ICpop struct{}

func (*ICpop) Execute

func (*ICpop) Execute(vm VM) error

func (*ICpop) Op

func (*ICpop) Op() ops.Op

type ICpop2

type ICpop2 struct{}

func (*ICpop2) Execute

func (*ICpop2) Execute(vm VM) error

func (*ICpop2) Op

func (*ICpop2) Op() ops.Op

type ICputfield

type ICputfield struct {
	Field uint16
}

func (*ICputfield) Execute

func (ic *ICputfield) Execute(vm VM) error

func (*ICputfield) Op

func (*ICputfield) Op() ops.Op

type ICputstatic

type ICputstatic struct {
	Field uint16
}

func (*ICputstatic) Execute

func (ic *ICputstatic) Execute(vm VM) error

func (*ICputstatic) Op

func (*ICputstatic) Op() ops.Op

type ICret

type ICret struct{}

func (*ICret) Execute

func (*ICret) Execute(vm VM) error

func (*ICret) Op

func (*ICret) Op() ops.Op

func (*ICret) Parse

func (*ICret) Parse(operands []byte)

type ICreturn

type ICreturn struct{}

func (*ICreturn) Execute

func (*ICreturn) Execute(vm VM) error

func (*ICreturn) Op

func (*ICreturn) Op() ops.Op

type ICsaload

type ICsaload struct{}

func (*ICsaload) Execute

func (*ICsaload) Execute(vm VM) error

func (*ICsaload) Op

func (*ICsaload) Op() ops.Op

type ICsastore

type ICsastore struct{}

func (*ICsastore) Execute

func (*ICsastore) Execute(vm VM) error

func (*ICsastore) Op

func (*ICsastore) Op() ops.Op

type ICsipush

type ICsipush struct {
	Value int16
}

func (*ICsipush) Execute

func (ic *ICsipush) Execute(vm VM) error

func (*ICsipush) Op

func (*ICsipush) Op() ops.Op

type ICswap

type ICswap struct{}

func (*ICswap) Execute

func (*ICswap) Execute(vm VM) error

func (*ICswap) Op

func (*ICswap) Op() ops.Op

type ICtableswitch

type ICtableswitch struct {
	DefaultOffset int32
	DefaultNode   *ICNode
	Low, High     int32
	OffsetList    []int32
	Nodes         []*ICNode
}

func (*ICtableswitch) Execute

func (ic *ICtableswitch) Execute(vm VM) error

func (*ICtableswitch) Offsets

func (ic *ICtableswitch) Offsets() []int32

func (*ICtableswitch) Op

func (*ICtableswitch) Op() ops.Op

func (*ICtableswitch) SetNode

func (ic *ICtableswitch) SetNode(i int, n *ICNode)

type ICwide

type ICwide struct {
	OpCode ops.Op
	Index  uint16
	Const  uint16
}

func (*ICwide) Execute

func (ic *ICwide) Execute(vm VM) error

func (*ICwide) Op

func (*ICwide) Op() ops.Op

type Method

type Method interface {
	Name() string
	Desc() *desc.MethodDesc
	GetDeclaringClass() Class
	Modifiers() int32
	IsPublic() bool
	IsStatic() bool
	IsConstructor() bool

	AsRef(VM) Ref
}

type Ref

type Ref interface {
	Desc() *desc.Desc
	Class() Class
	Id() int32
	Len() int32
	UserData() *any
	Data() unsafe.Pointer
	GetRefArr() []unsafe.Pointer
	GetByteArr() []byte
	GetInt8Arr() []int8
	GetInt16Arr() []int16
	GetInt32Arr() []int32
	GetInt64Arr() []int64

	IsLocked(VM) int
	Lock(VM) int
	Unlock(VM) (int, error)
	Notify(VM) error
	NotifyAll(VM) error
	Wait(VM, int64) error

	Clone(VM) Ref
}

type Stack

type Stack interface {
	Prev() Stack
	Method() Method
	PC() *ICNode

	GetVar(uint16) uint32
	GetVar64(uint16) uint64
	GetVarInt8(uint16) int8
	GetVarInt16(uint16) int16
	GetVarInt32(uint16) int32
	GetVarInt64(uint16) int64
	GetVarFloat32(uint16) float32
	GetVarFloat64(uint16) float64
	GetVarRef(uint16) Ref
	GetVarPointer(uint16) unsafe.Pointer
	SetVar(uint16, uint32)
	SetVar64(uint16, uint64)
	SetVarInt8(uint16, int8)
	SetVarInt16(uint16, int16)
	SetVarInt32(uint16, int32)
	SetVarInt64(uint16, int64)
	SetVarFloat32(uint16, float32)
	SetVarFloat64(uint16, float64)
	SetVarRef(uint16, Ref)
	SetVarPointer(uint16, unsafe.Pointer)

	Peek() uint32
	Peek64() uint64
	PeekInt8() int8
	PeekInt16() int16
	PeekInt32() int32
	PeekInt64() int64
	PeekFloat32() float32
	PeekFloat64() float64
	PeekRef() Ref
	PeekPointer() unsafe.Pointer
	Pop() uint32
	Pop64() uint64
	PopInt8() int8
	PopInt16() int16
	PopInt32() int32
	PopInt64() int64
	PopFloat32() float32
	PopFloat64() float64
	PopRef() Ref
	PopPointer() unsafe.Pointer
	Push(uint32)
	Push64(uint64)
	PushInt8(int8)
	PushInt16(int16)
	PushInt32(int32)
	PushInt64(int64)
	PushFloat32(float32)
	PushFloat64(float64)
	PushRef(Ref)
	PushPointer(unsafe.Pointer)

	// returns whether the top element is a reference or not
	IsRef() bool
}

type VM

type VM interface {
	GetStack() Stack
	Running() bool
	Step() error
	RunStack() error

	New(Class) Ref
	NewString(string) Ref
	// Alloc an array with the descriptor as the array's type
	NewArray(*desc.Desc, int32) Ref
	NewArrayMultiDim(*desc.Desc, []int32) Ref
	// Alloc an array with the class as the array's type
	NewArrayMultiDimWithClass(Class, []int32) Ref
	// Alloc an array with the class as the array's element's type
	NewObjectArray(Class, int32) Ref
	// Alloc an array with the class as the array's element's type
	NewObjectMultiDimArray(Class, []int32) Ref

	RefToPtr(Ref) unsafe.Pointer
	PtrToRef(unsafe.Pointer) Ref

	GetObjectClass() Class
	GetThrowableClass() Class
	GetStringClass() Class
	GetString(Ref) string
	GetStringIntern(Ref) Ref
	GetStringInternOrNew(string) Ref

	GetDesc(uint16) *desc.Desc
	GetClassByIndex(uint16) (Class, error)
	GetClassByName(string) (Class, error)
	GetClass(Ref) Class
	GetLoadedClassByName(string) (Class, error)

	GetBootLoader() ClassLoader
	GetClassLoader() ClassLoader
	GetCurrentClass() Class
	GetCurrentMethod() Method

	LoadNativeMethod(Method, func(VM) error)
	Invoke(Method)
	InvokeStatic(Method)
	InvokeVirtual(Method)
	InvokeDynamic(uint16) error

	Return()
	Throw(Ref)
	Throwing() Ref
	Goto(*ICNode)

	GetCarrierThread() Ref
	GetCurrentThread() Ref
	SetCurrentThread(Ref)
	Interrupt(Ref)
	ClearInterrupt()

	FillThrowableStackTrace(Ref)

	NewSubVM(Ref) VM
}

Directories

Path Synopsis
This package declares standard Java class file parser
This package declares standard Java class file parser

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL