stack

package
v0.0.0-...-26bd4cb Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2019 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dup

type Dup struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup Page.410

格式: dup 字节: 0x59 操作: 复制操作数栈栈顶的一个槽,只能用于站一个槽的数据(非long、double 的数据)

func (*Dup) Execute

func (this *Dup) Execute(frame *rtda.Frame)

type Dup2

type Dup2 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup2 Page.413

格式: dup2 字节: 0x5c 操作: ..., slot2, slot1 ->

..., slot2, slot1, slot2, slot1

func (*Dup2) Execute

func (this *Dup2) Execute(frame *rtda.Frame)

type Dup2X1

type Dup2X1 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup2_x1 Page.414

格式: dup2_x1 字节: 0x5d 操作: ...,slot3, slot2, slot1 ->

..., slot2, slot1, slot3, slot2, slot1

PS: slot3 不能是 long、double 的其中一个槽

func (*Dup2X1) Execute

func (this *Dup2X1) Execute(frame *rtda.Frame)

type Dup2X2

type Dup2X2 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup2_x2 Page.415

格式: dup2_x2 字节: 0x5e 操作: ..., slot4, slot3, slot2, slot1 ->

... slot2, slot1, slot4, slot3, slot2, slot1 ->

PS: slot3 和 slot4 可以是一个操作数(double、long),也可以是两个

func (*Dup2X2) Execute

func (this *Dup2X2) Execute(frame *rtda.Frame)

type DupX1

type DupX1 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup_x1 Page.411

格式: dup_x1 字节: 0x5a 操作: ..., value2, value1 ->

..., value1, value2, value1

PS: value2 不能是 long、double

func (*DupX1) Execute

func (this *DupX1) Execute(frame *rtda.Frame)

type DupX2

type DupX2 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf dup_x2 Page.412

格式: dup_x2 字节: 0x5b 操作: ..., slot3, slot2, slot1 ->

..., slot1, slot33, slot2, slot1 ->

PS: slot3 和 slot2 可以是一个操作数(double、long),也可以是两个

func (*DupX2) Execute

func (this *DupX2) Execute(frame *rtda.Frame)

type POP

type POP struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf pop Page.548

格式: pop 字节: 0x57 操作: 弹出操作数栈栈顶的一个槽(若只有一次指令调用,弹出一个栈顶元素,则只能用于非 long 和 double 的数据)

func (*POP) Execute

func (this *POP) Execute(frame *rtda.Frame)

type POP2

type POP2 struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf pop2 Page.549

格式: pop2 字节: 0x58 操作: 弹出操作数栈栈顶的两个槽(若栈顶是double或long,则弹出的是一个数据,若不是,则弹出两个数据)

func (*POP2) Execute

func (this *POP2) Execute(frame *rtda.Frame)

type Swap

type Swap struct {
	base.NoOperandsInstruction
}

指令定义来源 The Java® Virtual Machine Specification https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf swap Page.559

格式: swap 字节: 0x5f 操作: ..., slot2, slot1 ->

..., slot1, slot2

PS: 交换栈顶的两个槽,目前版本的 JVM 不提供 long、double 类型操作数的 swap 操作

func (*Swap) Execute

func (this *Swap) Execute(frame *rtda.Frame)

Jump to

Keyboard shortcuts

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