public void monitorexit() { assertTypeOnStack(StackEntryType.OBJECT, "monitorexit requires object reference on stack"); writeByte(Opcode.MONITOREXIT); currentOffset++; advanceFrame(currentFrame.pop()); }
public void drem() { assertTypeOnStack(StackEntryType.DOUBLE, "drem requires double on stack"); assertTypeOnStack(2, StackEntryType.DOUBLE, "drem requires double in position 3 on stack"); writeByte(Opcode.DREM); currentOffset++; advanceFrame(currentFrame.pop2()); }
public void sipush(short value) { writeByte(Opcode.SIPUSH); writeShort(value); currentOffset += 3; advanceFrame(currentFrame.push("S")); }
public void bipush(byte value) { writeByte(Opcode.BIPUSH); writeByte(value); currentOffset += 2; advanceFrame(currentFrame.push("B")); }
public void monitorexit() { assertTypeOnStack(StackEntryType.OBJECT, "monitorexit requires object reference on stack"); writeByte(Opcode.MONITOREXIT); currentOffset++; advanceFrame(currentFrame.pop()); }
public void land() { assertTypeOnStack(StackEntryType.LONG, "land requires long on stack"); assertTypeOnStack(2, StackEntryType.LONG, "land requires long on stack"); writeByte(Opcode.LAND); currentOffset++; advanceFrame(currentFrame.pop2()); }
public void sipush(short value) { writeByte(Opcode.SIPUSH); writeShort(value); currentOffset += 3; advanceFrame(currentFrame.push("S")); }
public void bipush(byte value) { writeByte(Opcode.BIPUSH); writeByte(value); currentOffset += 2; advanceFrame(currentFrame.push("B")); }
public void fsub() { assertTypeOnStack(StackEntryType.FLOAT, "fsub requires float on stack"); assertTypeOnStack(1, StackEntryType.FLOAT, "fsub requires float in position 2 on stack"); writeByte(Opcode.FSUB); currentOffset++; advanceFrame(currentFrame.pop()); }
public void drem() { assertTypeOnStack(StackEntryType.DOUBLE, "drem requires double on stack"); assertTypeOnStack(2, StackEntryType.DOUBLE, "drem requires double in position 3 on stack"); writeByte(Opcode.DREM); currentOffset++; advanceFrame(currentFrame.pop2()); }
public void sipush(short value) { writeByte(Opcode.SIPUSH); writeShort(value); currentOffset += 3; advanceFrame(currentFrame.push("S")); }
public void bipush(byte value) { writeByte(Opcode.BIPUSH); writeByte(value); currentOffset += 2; advanceFrame(currentFrame.push("B")); }
public void ishr() { assertTypeOnStack(StackEntryType.INT, "ishr requires int on stack"); assertTypeOnStack(1, StackEntryType.INT, "ishr requires int on stack"); writeByte(Opcode.ISHR); currentOffset++; advanceFrame(currentFrame.pop()); }
public void ladd() { assertTypeOnStack(StackEntryType.LONG, "ladd requires long on stack"); assertTypeOnStack(2, StackEntryType.LONG, "ladd requires long on stack"); writeByte(Opcode.LADD); currentOffset++; advanceFrame(currentFrame.pop2()); }
public void sipush(short value) { writeByte(Opcode.SIPUSH); writeShort(value); currentOffset += 3; advanceFrame(currentFrame.push("S")); }
public void bipush(byte value) { writeByte(Opcode.BIPUSH); writeByte(value); currentOffset += 2; advanceFrame(currentFrame.push("B")); }
public void fmul() { assertTypeOnStack(StackEntryType.FLOAT, "fmul requires float on stack"); assertTypeOnStack(1, StackEntryType.FLOAT, "fmul requires float in position 2 on stack"); writeByte(Opcode.FMUL); currentOffset++; advanceFrame(currentFrame.pop()); }
public BranchEnd ifAcmpeq() { assertTypeOnStack(StackEntryType.OBJECT, "ifAcmpeq requires reference type on stack"); assertTypeOnStack(1, StackEntryType.OBJECT, "ifAcmpeq requires reference type int position 2 on stack"); writeByte(Opcode.IF_ACMPEQ); writeShort(0); currentOffset += 3; advanceFrame(currentFrame.pop2()); return new BranchEnd(currentOffset - 2, currentFrame, currentOffset - 3); }
public void sipush(short value) { writeByte(Opcode.SIPUSH); writeShort(value); currentOffset += 3; advanceFrame(currentFrame.push("S")); }
public void bipush(byte value) { writeByte(Opcode.BIPUSH); writeByte(value); currentOffset += 2; advanceFrame(currentFrame.push("B")); }