APIdia Launch Partner
Top Inners Fields Constructors Methods
jdk.internal.classfile.impl

public final Class DirectCodeBuilder

extends AbstractDirectBuilder<CodeModel>
implements TerminalCodeBuilder
Class Inheritance
All Implemented Interfaces
jdk.internal.classfile.impl.TerminalCodeBuilder, jdk.internal.classfile.impl.LabelContext, java.lang.classfile.CodeBuilder, java.lang.classfile.ClassFileBuilder, java.util.function.Consumer
Imports
java.lang.classfile.*, java.lang.classfile.attribute.CodeAttribute, .LineNumberTableAttribute, java.lang.classfile.constantpool.*, java.lang.classfile.instruction.CharacterRange, .ExceptionCatch, .LocalVariable, .LocalVariableType, .SwitchCase, java.lang.constant.ClassDesc, .MethodTypeDesc, java.util.*, java.util.function.Consumer, .Function

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static record
private static class

Field Summary

Modifier and TypeField and Description
pack-priv final BufWriterImpl
private CharacterRange[]
private int
private UnboundAttribute<CodeAttribute>
private DirectCodeBuilder.DeferredLabel[]
private int
private static final CharacterRange[]
private static final DirectCodeBuilder.DeferredLabel[]
private static final LocalVariable[]
private static final LocalVariableType[]
private final Label
pack-priv final List<AbstractPseudoInstruction.ExceptionCatchImpl>
private DirectCodeBuilder.DedupLineNumberTableAttribute
private LocalVariable[]
private int
private LocalVariableType[]
private int
private int
private int
pack-priv final MethodInfo
private CodeAttribute
private int[]
private Map<CodeAttribute, int[]>
private final Label
private int
private final boolean
private final boolean
Inherited from jdk.internal.classfile.impl.AbstractDirectBuilder:
attributesconstantPoolcontextoriginal

Constructor Summary

AccessConstructor and Description
private
DirectCodeBuilder(MethodInfo methodInfo, SplitConstantPool constantPool, ClassFileImpl context, CodeModel original, boolean transformDeferredJumps)

Method Summary

Modifier and TypeMethod and Description
public CodeBuilder
aconst_null()

Overrides default java.lang.classfile.CodeBuilder.aconst_null.

Generates an instruction pushing the null object reference onto the operand stack.

public void
public void
public void
public void
public void
public int
allocateLocal(TypeKind typeKind)

Implements java.lang.classfile.CodeBuilder.allocateLocal.

Returns the local variable slot of a fresh local variable.

public CodeBuilder
aload(int slot)

Overrides default java.lang.classfile.CodeBuilder.aload.

Generates an instruction to load a reference from a local variable.

public CodeBuilder
anewarray(ClassEntry entry)

Overrides default java.lang.classfile.CodeBuilder.anewarray.

Generates an instruction to create a new array of reference.

public CodeBuilder
areturn()

Overrides default java.lang.classfile.CodeBuilder.areturn.

Generates an instruction to return a reference from this method.

public CodeBuilder
arraylength()

Overrides default java.lang.classfile.CodeBuilder.arraylength.

Generates an instruction to get the length of an array.

public CodeBuilder
arrayLoad(TypeKind tk)

Overrides default java.lang.classfile.CodeBuilder.arrayLoad.

Generates an instruction to load from an array.

public CodeBuilder
arrayStore(TypeKind tk)

Overrides default java.lang.classfile.CodeBuilder.arrayStore.

Generates an instruction to store into an array.

public CodeBuilder
astore(int slot)

Overrides default java.lang.classfile.CodeBuilder.astore.

Generates an instruction to store a reference into a local variable.

public CodeBuilder
athrow()

Overrides default java.lang.classfile.CodeBuilder.athrow.

Generates an instruction to throw an exception or error.

public CodeBuilder
bipush(int b)

Overrides default java.lang.classfile.CodeBuilder.bipush.

Generates an instruction pushing an int in the range of byte ([-128, 127]) onto the operand stack.

public CodeBuilder
branch(Opcode op, Label target)

Overrides default java.lang.classfile.CodeBuilder.branch.

Generates a branch instruction.

public static UnboundAttribute<CodeAttribute>
build(MethodInfo methodInfo, Consumer<? super CodeBuilder> handler, SplitConstantPool constantPool, ClassFileImpl context, CodeModel original)

private void
public CodeBuilder
checkcast(ClassEntry type)

Overrides default java.lang.classfile.CodeBuilder.checkcast.

Generates an instruction to check whether an object is of the given type, throwing a ClassCastException if the check fails.

private boolean
codeAndExceptionsMatch(int codeLength)

public int
public int
public CodeBuilder
d2f()

Overrides default java.lang.classfile.CodeBuilder.d2f.

Generates an instruction to convert a double into a float.

public CodeBuilder
d2i()

Overrides default java.lang.classfile.CodeBuilder.d2i.

Generates an instruction to convert a double into an int.

public CodeBuilder
d2l()

Overrides default java.lang.classfile.CodeBuilder.d2l.

Generates an instruction to convert a double into a long.

public CodeBuilder
dadd()

Overrides default java.lang.classfile.CodeBuilder.dadd.

Generates an instruction to add two doubles.

public CodeBuilder
dcmpg()

Overrides default java.lang.classfile.CodeBuilder.dcmpg.

Generates an instruction to compare two doubles, producing 1 if any operand is NaN.

public CodeBuilder
dcmpl()

Overrides default java.lang.classfile.CodeBuilder.dcmpl.

Generates an instruction to compare two doubles, producing -1 if any operand is NaN.

public CodeBuilder
dconst_0()

Overrides default java.lang.classfile.CodeBuilder.dconst_0.

Generates an instruction pushing double constant 0 onto the operand stack.

public CodeBuilder
dconst_1()

Overrides default java.lang.classfile.CodeBuilder.dconst_1.

Generates an instruction pushing double constant 1 onto the operand stack.

public CodeBuilder
ddiv()

Overrides default java.lang.classfile.CodeBuilder.ddiv.

Generates an instruction to divide doubles.

public CodeBuilder
dload(int slot)

Overrides default java.lang.classfile.CodeBuilder.dload.

Generates an instruction to load a double from a local variable.

public CodeBuilder
dmul()

Overrides default java.lang.classfile.CodeBuilder.dmul.

Generates an instruction to multiply doubles.

public CodeBuilder
dneg()

Overrides default java.lang.classfile.CodeBuilder.dneg.

Generates an instruction to negate a double.

public CodeBuilder
drem()

Overrides default java.lang.classfile.CodeBuilder.drem.

Generates an instruction to calculate double remainder.

public CodeBuilder
dreturn()

Overrides default java.lang.classfile.CodeBuilder.dreturn.

Generates an instruction to return a double from this method.

public CodeBuilder
dstore(int slot)

Overrides default java.lang.classfile.CodeBuilder.dstore.

Generates an instruction to store a double into a local variable.

public CodeBuilder
dsub()

Overrides default java.lang.classfile.CodeBuilder.dsub.

Generates an instruction to subtract doubles.

public CodeBuilder
dup()

Overrides default java.lang.classfile.CodeBuilder.dup.

Generates an instruction to duplicate the top operand stack value.

public CodeBuilder
dup2()

Overrides default java.lang.classfile.CodeBuilder.dup2.

Generates an instruction to duplicate the top one or two operand stack value.

public CodeBuilder
dup2_x1()

Overrides default java.lang.classfile.CodeBuilder.dup2_x1.

Generates an instruction to duplicate the top one or two operand stack values and insert two or three values down.

public CodeBuilder
dup2_x2()

Overrides default java.lang.classfile.CodeBuilder.dup2_x2.

Generates an instruction to duplicate the top one or two operand stack values and insert two, three, or four values down.

public CodeBuilder
dup_x1()

Overrides default java.lang.classfile.CodeBuilder.dup_x1.

Generates an instruction to duplicate the top operand stack value and insert two values down.

public CodeBuilder
dup_x2()

Overrides default java.lang.classfile.CodeBuilder.dup_x2.

Generates an instruction to duplicate the top operand stack value and insert two or three values down.

public Label
endLabel()

Implements java.lang.classfile.CodeBuilder.endLabel.

Returns the label associated with the end of the current block.

public CodeBuilder
f2d()

Overrides default java.lang.classfile.CodeBuilder.f2d.

Generates an instruction to convert a float into a double.

public CodeBuilder
f2i()

Overrides default java.lang.classfile.CodeBuilder.f2i.

Generates an instruction to convert a float into an int.

public CodeBuilder
f2l()

Overrides default java.lang.classfile.CodeBuilder.f2l.

Generates an instruction to convert a float into a long.

public CodeBuilder
fadd()

Overrides default java.lang.classfile.CodeBuilder.fadd.

Generates an instruction to add two floats.

public CodeBuilder
fcmpg()

Overrides default java.lang.classfile.CodeBuilder.fcmpg.

Generates an instruction to compare floats, producing 1 if any operand is NaN.

public CodeBuilder
fcmpl()

Overrides default java.lang.classfile.CodeBuilder.fcmpl.

Generates an instruction to compare floats, producing -1 if any operand is NaN.

public CodeBuilder
fconst_0()

Overrides default java.lang.classfile.CodeBuilder.fconst_0.

Generates an instruction pushing float constant 0 onto the operand stack.

public CodeBuilder
fconst_1()

Overrides default java.lang.classfile.CodeBuilder.fconst_1.

Generates an instruction pushing float constant 1 onto the operand stack.

public CodeBuilder
fconst_2()

Overrides default java.lang.classfile.CodeBuilder.fconst_2.

Generates an instruction pushing float constant 2 onto the operand stack.

public CodeBuilder
fdiv()

Overrides default java.lang.classfile.CodeBuilder.fdiv.

Generates an instruction to divide floats.

public CodeBuilder
fieldAccess(Opcode opcode, FieldRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.fieldAccess.

Generates an instruction to access a field.

private void
fixShortJump(int bytecode, int jumpOrInstructionPc, Label nullOrTarget)

public CodeBuilder
fload(int slot)

Overrides default java.lang.classfile.CodeBuilder.fload.

Generates an instruction to load a float from a local variable.

public CodeBuilder
fmul()

Overrides default java.lang.classfile.CodeBuilder.fmul.

Generates an instruction to multiply floats.

public CodeBuilder
fneg()

Overrides default java.lang.classfile.CodeBuilder.fneg.

Generates an instruction to negate a float.

public CodeBuilder
frem()

Overrides default java.lang.classfile.CodeBuilder.frem.

Generates an instruction to calculate floats remainder.

public CodeBuilder
freturn()

Overrides default java.lang.classfile.CodeBuilder.freturn.

Generates an instruction to return a float from this method.

public CodeBuilder
fstore(int slot)

Overrides default java.lang.classfile.CodeBuilder.fstore.

Generates an instruction to store a float into a local variable.

public CodeBuilder
fsub()

Overrides default java.lang.classfile.CodeBuilder.fsub.

Generates an instruction to subtract floats.

public CodeBuilder
getfield(ClassDesc owner, String name, ClassDesc type)

Overrides default java.lang.classfile.CodeBuilder.getfield.

Generates an instruction to fetch field from an object.

public Label
public CodeBuilder
getstatic(ClassDesc owner, String name, ClassDesc type)

Overrides default java.lang.classfile.CodeBuilder.getstatic.

Generates an instruction to get static field from a class or interface.

public CodeBuilder
goto_(Label target)

Overrides default java.lang.classfile.CodeBuilder.goto_.

Generates an instruction to branch always.

public CodeBuilder
i2b()

Overrides default java.lang.classfile.CodeBuilder.i2b.

Generates an instruction to truncate an int into the range of byte and sign-extend it.

public CodeBuilder
i2c()

Overrides default java.lang.classfile.CodeBuilder.i2c.

Generates an instruction to truncate an int into the range of char and zero-extend it.

public CodeBuilder
i2d()

Overrides default java.lang.classfile.CodeBuilder.i2d.

Generates an instruction to convert an int into a double.

public CodeBuilder
i2f()

Overrides default java.lang.classfile.CodeBuilder.i2f.

Generates an instruction to convert an int into a float.

public CodeBuilder
i2l()

Overrides default java.lang.classfile.CodeBuilder.i2l.

Generates an instruction to convert an int into a long.

public CodeBuilder
i2s()

Overrides default java.lang.classfile.CodeBuilder.i2s.

Generates an instruction to truncate an int into the range of short and sign-extend it.

public CodeBuilder
iadd()

Overrides default java.lang.classfile.CodeBuilder.iadd.

Generates an instruction to add two ints.

public CodeBuilder
iand()

Overrides default java.lang.classfile.CodeBuilder.iand.

Generates an instruction to calculate bitwise AND of ints, also used for boolean AND.

public CodeBuilder
iconst_0()

Overrides default java.lang.classfile.CodeBuilder.iconst_0.

Generates an instruction pushing int constant 0 onto the operand stack.

public CodeBuilder
iconst_1()

Overrides default java.lang.classfile.CodeBuilder.iconst_1.

Generates an instruction pushing int constant 1 onto the operand stack.

public CodeBuilder
iconst_2()

Overrides default java.lang.classfile.CodeBuilder.iconst_2.

Generates an instruction pushing int constant 2 onto the operand stack.

public CodeBuilder
iconst_3()

Overrides default java.lang.classfile.CodeBuilder.iconst_3.

Generates an instruction pushing int constant 3 onto the operand stack.

public CodeBuilder
iconst_4()

Overrides default java.lang.classfile.CodeBuilder.iconst_4.

Generates an instruction pushing int constant 4 onto the operand stack.

public CodeBuilder
iconst_5()

Overrides default java.lang.classfile.CodeBuilder.iconst_5.

Generates an instruction pushing int constant 5 onto the operand stack.

public CodeBuilder
iconst_m1()

Overrides default java.lang.classfile.CodeBuilder.iconst_m1.

Generates an instruction pushing int constant -1 onto the operand stack.

public CodeBuilder
idiv()

Overrides default java.lang.classfile.CodeBuilder.idiv.

Generates an instruction to divide ints.

public CodeBuilder
if_acmpeq(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_acmpeq.

Generates an instruction to branch if reference comparison operand1 == operand2 succeeds.

public CodeBuilder
if_acmpne(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_acmpne.

Generates an instruction to branch if reference comparison operand1 != operand2 succeeds.

public CodeBuilder
if_icmpeq(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmpeq.

Generates an instruction to branch if int comparison operand1 == operand2 succeeds.

public CodeBuilder
if_icmpge(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmpge.

Generates an instruction to branch if int comparison operand1 >= operand2 succeeds.

public CodeBuilder
if_icmpgt(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmpgt.

Generates an instruction to branch if int comparison operand1 > operand2 succeeds.

public CodeBuilder
if_icmple(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmple.

Generates an instruction to branch if int comparison operand1 <= operand2 succeeds.

public CodeBuilder
if_icmplt(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmplt.

Generates an instruction to branch if int comparison operand1 < operand2 succeeds.

public CodeBuilder
if_icmpne(Label target)

Overrides default java.lang.classfile.CodeBuilder.if_icmpne.

Generates an instruction to branch if int comparison operand1 != operand2 succeeds.

public CodeBuilder
ifeq(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifeq.

Generates an instruction to branch if int comparison with zero == 0 succeeds.

public CodeBuilder
ifge(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifge.

Generates an instruction to branch if int comparison with zero >= 0 succeeds.

public CodeBuilder
ifgt(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifgt.

Generates an instruction to branch if int comparison with zero > 0 succeeds.

public CodeBuilder
ifle(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifle.

Generates an instruction to branch if int comparison with zero <= 0 succeeds.

public CodeBuilder
iflt(Label target)

Overrides default java.lang.classfile.CodeBuilder.iflt.

Generates an instruction to branch if int comparison with zero < 0 succeeds.

public CodeBuilder
ifne(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifne.

Generates an instruction to branch if int comparison with zero != 0 succeeds.

public CodeBuilder
ifnonnull(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifnonnull.

Generates an instruction to branch if reference is not null.

public CodeBuilder
ifnull(Label target)

Overrides default java.lang.classfile.CodeBuilder.ifnull.

Generates an instruction to branch if reference is null.

public CodeBuilder
iinc(int slot, int val)

Overrides default java.lang.classfile.CodeBuilder.iinc.

Generates an instruction to increment an int local variable by a constant.

public CodeBuilder
iload(int slot)

Overrides default java.lang.classfile.CodeBuilder.iload.

Generates an instruction to load an int from a local variable.

public CodeBuilder
imul()

Overrides default java.lang.classfile.CodeBuilder.imul.

Generates an instruction to multiply ints.

public CodeBuilder
ineg()

Overrides default java.lang.classfile.CodeBuilder.ineg.

Generates an instruction to negate an int.

public CodeBuilder
instanceOf(ClassEntry target)

Overrides default java.lang.classfile.CodeBuilder.instanceOf.

Generates an instruction to determine if an object is of the given type, producing a boolean result on the operand stack.

public CodeBuilder
invoke(Opcode opcode, MemberRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invoke.

Generates an instruction to invoke a method.

public CodeBuilder
invokedynamic(InvokeDynamicEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokedynamic.

Generates an instruction to invoke a dynamically-computed call site.

public CodeBuilder
invokeinterface(InterfaceMethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokeinterface.

Generates an instruction to invoke an interface method.

public CodeBuilder
invokespecial(ClassDesc owner, String name, MethodTypeDesc type)

Overrides default java.lang.classfile.CodeBuilder.invokespecial.

Generates an instruction to invoke an instance method in a class; direct invocation of instance initialization methods and methods of the current class and its supertypes.

public CodeBuilder
invokespecial(InterfaceMethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokespecial.

Generates an instruction to invoke an instance method in an interface; direct invocation of methods of the current class and its supertypes.

public CodeBuilder
invokespecial(MethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokespecial.

Generates an instruction to invoke an instance method in a class; direct invocation of instance initialization methods and methods of the current class and its supertypes.

public CodeBuilder
invokestatic(ClassDesc owner, String name, MethodTypeDesc type)

Overrides default java.lang.classfile.CodeBuilder.invokestatic.

Generates an instruction to invoke a class (static) method of a class.

public CodeBuilder
invokestatic(InterfaceMethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokestatic.

Generates an instruction to invoke a class (static) method of an interface.

public CodeBuilder
invokestatic(MethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokestatic.

Generates an instruction to invoke a class (static) method of a class.

public CodeBuilder
invokevirtual(ClassDesc owner, String name, MethodTypeDesc type)

Overrides default java.lang.classfile.CodeBuilder.invokevirtual.

Generates an instruction to invoke an instance method; dispatch based on class.

public CodeBuilder
invokevirtual(MethodRefEntry ref)

Overrides default java.lang.classfile.CodeBuilder.invokevirtual.

Generates an instruction to invoke an instance method; dispatch based on class.

public CodeBuilder
ior()

Overrides default java.lang.classfile.CodeBuilder.ior.

Generates an instruction to calculate bitwise OR of ints, also used for boolean OR.

public CodeBuilder
irem()

Overrides default java.lang.classfile.CodeBuilder.irem.

Generates an instruction to calculate ints remainder.

public CodeBuilder
ireturn()

Overrides default java.lang.classfile.CodeBuilder.ireturn.

Generates an instruction to return an int from this method.

public CodeBuilder
ishl()

Overrides default java.lang.classfile.CodeBuilder.ishl.

Generates an instruction to shift an int left.

public CodeBuilder
ishr()

Overrides default java.lang.classfile.CodeBuilder.ishr.

Generates an instruction to shift an int right.

public CodeBuilder
istore(int slot)

Overrides default java.lang.classfile.CodeBuilder.istore.

Generates an instruction to store an int into a local variable.

public CodeBuilder
isub()

Overrides default java.lang.classfile.CodeBuilder.isub.

Generates an instruction to subtract ints.

public CodeBuilder
iushr()

Overrides default java.lang.classfile.CodeBuilder.iushr.

Generates an instruction to logical shift an int right.

public CodeBuilder
ixor()

Overrides default java.lang.classfile.CodeBuilder.ixor.

Generates an instruction to calculate bitwise XOR of ints.

public CodeBuilder
l2d()

Overrides default java.lang.classfile.CodeBuilder.l2d.

Generates an instruction to convert a long into a double.

public CodeBuilder
l2f()

Overrides default java.lang.classfile.CodeBuilder.l2f.

Generates an instruction to convert a long into a float.

public CodeBuilder
l2i()

Overrides default java.lang.classfile.CodeBuilder.l2i.

Generates an instruction to convert a long into an int.

public CodeBuilder
labelBinding(Label label)

Overrides default java.lang.classfile.CodeBuilder.labelBinding.

Binds a label to the current position.

public int
private int
public CodeBuilder
ladd()

Overrides default java.lang.classfile.CodeBuilder.ladd.

Generates an instruction to add two longs.

public CodeBuilder
land()

Overrides default java.lang.classfile.CodeBuilder.land.

Generates an instruction to calculate bitwise AND of longs.

public CodeBuilder
lcmp()

Overrides default java.lang.classfile.CodeBuilder.lcmp.

Generates an instruction to compare longs.

public CodeBuilder
lconst_0()

Overrides default java.lang.classfile.CodeBuilder.lconst_0.

Generates an instruction pushing long constant 0 onto the operand stack.

public CodeBuilder
lconst_1()

Overrides default java.lang.classfile.CodeBuilder.lconst_1.

Generates an instruction pushing long constant 1 onto the operand stack.

public CodeBuilder
ldc(LoadableConstantEntry entry)

Overrides default java.lang.classfile.CodeBuilder.ldc.

Generates an instruction pushing an item from the run-time constant pool onto the operand stack.

public CodeBuilder
ldiv()

Overrides default java.lang.classfile.CodeBuilder.ldiv.

Generates an instruction to divide longs.

public CodeBuilder
lload(int slot)

Overrides default java.lang.classfile.CodeBuilder.lload.

Generates an instruction to load a long from a local variable.

public CodeBuilder
lmul()

Overrides default java.lang.classfile.CodeBuilder.lmul.

Generates an instruction to multiply longs.

public CodeBuilder
lneg()

Overrides default java.lang.classfile.CodeBuilder.lneg.

Generates an instruction to negate a long.

public CodeBuilder
loadLocal(TypeKind tk, int slot)

Overrides default java.lang.classfile.CodeBuilder.loadLocal.

Generates an instruction to load a value from a local variable.

private void
localAccess(int bytecode, int slot)

public CodeBuilder
lookupswitch(Label defaultTarget, List<SwitchCase> cases)

Overrides default java.lang.classfile.CodeBuilder.lookupswitch.

Generates an instruction to access a jump table by key match and jump.

public CodeBuilder
lor()

Overrides default java.lang.classfile.CodeBuilder.lor.

Generates an instruction to calculate bitwise OR of longs.

public CodeBuilder
lrem()

Overrides default java.lang.classfile.CodeBuilder.lrem.

Generates an instruction to calculate longs remainder.

public CodeBuilder
lreturn()

Overrides default java.lang.classfile.CodeBuilder.lreturn.

Generates an instruction to return a long from this method.

public CodeBuilder
lshl()

Overrides default java.lang.classfile.CodeBuilder.lshl.

Generates an instruction to shift a long left.

public CodeBuilder
lshr()

Overrides default java.lang.classfile.CodeBuilder.lshr.

Generates an instruction to shift a long right.

public CodeBuilder
lstore(int slot)

Overrides default java.lang.classfile.CodeBuilder.lstore.

Generates an instruction to store a long into a local variable.

public CodeBuilder
lsub()

Overrides default java.lang.classfile.CodeBuilder.lsub.

Generates an instruction to subtract longs.

public CodeBuilder
lushr()

Overrides default java.lang.classfile.CodeBuilder.lushr.

Generates an instruction to logical shift a long right.

public CodeBuilder
lxor()

Overrides default java.lang.classfile.CodeBuilder.lxor.

Generates an instruction to calculate bitwise XOR of longs.

public MethodInfo
public CodeBuilder
monitorenter()

Overrides default java.lang.classfile.CodeBuilder.monitorenter.

Generates an instruction to enter monitor for an object.

public CodeBuilder
monitorexit()

Overrides default java.lang.classfile.CodeBuilder.monitorexit.

Generates an instruction to exit monitor for an object.

public CodeBuilder
multianewarray(ClassEntry array, int dims)

Overrides default java.lang.classfile.CodeBuilder.multianewarray.

Generates an instruction to create a new multidimensional array.

public CodeBuilder
new_(ClassEntry clazz)

Overrides default java.lang.classfile.CodeBuilder.new_.

Generates an instruction to create a new object.

public CodeBuilder
newarray(TypeKind typeKind)

Overrides default java.lang.classfile.CodeBuilder.newarray.

Generates an instruction to create a new array of a primitive type.

public Label
public CodeBuilder
nop()

Overrides default java.lang.classfile.CodeBuilder.nop.

Generates a do-nothing instruction.

public int
parameterSlot(int paramNo)

Implements java.lang.classfile.CodeBuilder.parameterSlot.

Returns the local variable slot associated with the specified parameter.

public CodeBuilder
pop()

Overrides default java.lang.classfile.CodeBuilder.pop.

Generates an instruction to pop the top operand stack value.

public CodeBuilder
pop2()

Overrides default java.lang.classfile.CodeBuilder.pop2.

Generates an instruction to pop the top one or two operand stack values.

private void
public int
receiverSlot()

Implements java.lang.classfile.CodeBuilder.receiverSlot.

Returns the local variable slot associated with the receiver.

public CodeBuilder
return_()

Overrides default java.lang.classfile.CodeBuilder.return_.

Generates an instruction to return void from this method.

public CodeBuilder
return_(TypeKind tk)

Overrides default java.lang.classfile.CodeBuilder.return_.

Generates a return instruction.

public void
public void
private void
setLabelTarget(LabelImpl lab, int bci)

public void
setLineNumber(int lineNo)

public CodeBuilder
sipush(int s)

Overrides default java.lang.classfile.CodeBuilder.sipush.

Generates an instruction pushing an int in the range of short, [-32768, 32767], onto the operand stack.

public Label
startLabel()

Implements java.lang.classfile.CodeBuilder.startLabel.

Returns the label associated with the beginning of the current block.

public CodeBuilder
storeLocal(TypeKind tk, int slot)

Overrides default java.lang.classfile.CodeBuilder.storeLocal.

Generates an instruction to store a value to a local variable.

public CodeBuilder
swap()

Overrides default java.lang.classfile.CodeBuilder.swap.

Generates an instruction to swap the top two operand stack values.

public CodeBuilder
tableswitch(int low, int high, Label defaultTarget, List<SwitchCase> cases)

Overrides default java.lang.classfile.CodeBuilder.tableswitch.

Generates an instruction to access a jump table by index and jump.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

public CodeBuilder
with(CodeElement element)

Implements java.lang.classfile.ClassFileBuilder.with.

Integrates the member element into the structure being built.

public static void
withMaxs(CodeBuilder cob, int stacks, int locals)

public void
public void
writeArgumentConstant(Opcode opcode, int value)

public void
writeBranch(Opcode op, Label target)

public void
public void
private void
private void
writeExceptionHandlers(BufWriterImpl buf, int pos, int handlersSize)

public void
public void
writeIncrement(boolean wide, int slot, int val)

public void
public void
public void
public void
writeLocalVar(Opcode opcode, int slot)

private void
writeLongJump(int bytecode, Label target)

private void
writeLongLabelOffset(int instructionPc, Label label)

public void
writeLookupSwitch(Label defaultTarget, List<SwitchCase> cases)

public void
public void
public void
writeNewPrimitiveArray(int newArrayCode)

public void
private void
writeParsedLongLabel(int jumpOrInstructionPc, Label nullOrTarget)

private void
writeParsedShortLabel(int jumpOrInstructionPc, Label nullOrTarget)

private void
writeShortJump(int bytecode, Label target)

public void
writeTableSwitch(int low, int high, Label defaultTarget, List<SwitchCase> cases)

public void
Inherited from jdk.internal.classfile.impl.AbstractDirectBuilder:
canWriteDirectconstantPoolsetOriginalwriteAttribute