org.eclipse.jdt.internal.compiler.codegen
Class CodeStream

java.lang.Object
  extended by org.eclipse.jdt.internal.compiler.codegen.CodeStream
Direct Known Subclasses:
StackMapFrameCodeStream

public class CodeStream
extends java.lang.Object


Field Summary
 int allLocalsCounter
           
 byte[] bCodeStream
           
 ClassFile classFile
           
 int classFileOffset
           
 ConstantPool constantPool
           
 int countLabels
           
static boolean DEBUG
           
 ExceptionLabel[] exceptionLabels
           
 int exceptionLabelsCounter
           
 int generateAttributes
           
static FieldBinding[] ImplicitThis
           
 BranchLabel[] labels
           
static int LABELS_INCREMENT
           
 int lastAbruptCompletion
           
 int lastEntryPC
           
 int lineNumberEnd
           
 int lineNumberStart
           
 int[] lineSeparatorPositions
           
 LocalVariableBinding[] locals
           
static int LOCALS_INCREMENT
           
 int maxFieldCount
           
 int maxLocals
           
 AbstractMethodDeclaration methodDeclaration
           
 int[] pcToSourceMap
           
 int pcToSourceMapSize
           
 int position
           
 boolean preserveUnusedLocals
           
static CompilationResult RESTART_IN_WIDE_MODE
           
 int stackDepth
           
 int stackMax
           
 int startingClassFileOffset
           
 LocalVariableBinding[] visibleLocals
           
 boolean wideMode
           
 
Constructor Summary
CodeStream(ClassFile givenClassFile)
           
 
Method Summary
 void aaload()
           
 void aastore()
           
 void aconst_null()
           
 void addDefinitelyAssignedVariables(Scope scope, int initStateIndex)
           
 void addLabel(BranchLabel aLabel)
           
 void addVariable(LocalVariableBinding localBinding)
           
 void addVisibleLocalVariable(LocalVariableBinding localBinding)
           
 void aload_0()
           
 void aload_1()
           
 void aload_2()
           
 void aload_3()
           
 void aload(int iArg)
           
 void anewarray(TypeBinding typeBinding)
           
 void areturn()
           
 void arrayAt(int typeBindingID)
           
 void arrayAtPut(int elementTypeID, boolean valueRequired)
           
 void arraylength()
           
 void astore_0()
           
 void astore_1()
           
 void astore_2()
           
 void astore_3()
           
 void astore(int iArg)
           
 void athrow()
           
 void baload()
           
 void bastore()
           
 void bipush(byte b)
           
 void caload()
           
 void castore()
           
 void checkcast(int baseId)
           
 void checkcast(TypeBinding typeBinding)
           
 void d2f()
           
 void d2i()
           
 void d2l()
           
 void dadd()
           
 void daload()
           
 void dastore()
           
 void dcmpg()
           
 void dcmpl()
           
 void dconst_0()
           
 void dconst_1()
           
 void ddiv()
           
 void decrStackSize(int offset)
           
 void dload_0()
           
 void dload_1()
           
 void dload_2()
           
 void dload_3()
           
 void dload(int iArg)
           
 void dmul()
           
 void dneg()
           
 void drem()
           
 void dreturn()
           
 void dstore_0()
           
 void dstore_1()
           
 void dstore_2()
           
 void dstore_3()
           
 void dstore(int iArg)
           
 void dsub()
           
 void dup_x1()
           
 void dup_x2()
           
 void dup()
           
 void dup2_x1()
           
 void dup2_x2()
           
 void dup2()
           
 void exitUserScope(BlockScope currentScope)
           
 void exitUserScope(BlockScope currentScope, LocalVariableBinding binding)
           
 void f2d()
           
 void f2i()
           
 void f2l()
           
 void fadd()
           
 void faload()
           
 void fastore()
           
 void fcmpg()
           
 void fcmpl()
           
 void fconst_0()
           
 void fconst_1()
           
 void fconst_2()
           
 void fdiv()
           
 void fload_0()
           
 void fload_1()
           
 void fload_2()
           
 void fload_3()
           
 void fload(int iArg)
           
 void fmul()
           
 void fneg()
           
 void frem()
           
 void freturn()
           
 void fstore_0()
           
 void fstore_1()
           
 void fstore_2()
           
 void fstore_3()
           
 void fstore(int iArg)
           
 void fsub()
           
 void generateBoxingConversion(int unboxedTypeID)
           
 void generateClassLiteralAccessForType(TypeBinding accessedType, FieldBinding syntheticFieldBinding)
          Macro for building a class descriptor object
 void generateCodeAttributeForProblemMethod(java.lang.String problemMessage)
          This method generates the code attribute bytecode
 void generateConstant(Constant constant, int implicitConversionCode)
           
 void generateEmulatedReadAccessForField(FieldBinding fieldBinding)
           
 void generateEmulatedWriteAccessForField(FieldBinding fieldBinding)
           
 void generateEmulationForConstructor(Scope scope, MethodBinding methodBinding)
           
 void generateEmulationForField(FieldBinding fieldBinding)
           
 void generateEmulationForMethod(Scope scope, MethodBinding methodBinding)
           
 void generateImplicitConversion(int implicitConversionCode)
          Generates the sequence of instructions which will perform the conversion of the expression on the stack into a different type (e.g.
 void generateInlinedValue(boolean inlinedValue)
           
 void generateInlinedValue(byte inlinedValue)
           
 void generateInlinedValue(char inlinedValue)
           
 void generateInlinedValue(double inlinedValue)
           
 void generateInlinedValue(float inlinedValue)
           
 void generateInlinedValue(int inlinedValue)
           
 void generateInlinedValue(long inlinedValue)
           
 void generateInlinedValue(short inlinedValue)
           
 void generateOuterAccess(java.lang.Object[] mappingSequence, ASTNode invocationSite, Binding target, Scope scope)
           
 void generateReturnBytecode(Expression expression)
           
 void generateStringConcatenationAppend(BlockScope blockScope, Expression oper1, Expression oper2)
          The equivalent code performs a string conversion:
 void generateSyntheticBodyForConstructorAccess(SyntheticMethodBinding accessBinding)
           
 void generateSyntheticBodyForEnumValueOf(SyntheticMethodBinding methodBinding)
           
 void generateSyntheticBodyForEnumValues(SyntheticMethodBinding methodBinding)
           
 void generateSyntheticBodyForFieldReadAccess(SyntheticMethodBinding accessBinding)
           
 void generateSyntheticBodyForFieldWriteAccess(SyntheticMethodBinding accessBinding)
           
 void generateSyntheticBodyForMethodAccess(SyntheticMethodBinding accessMethod)
           
 void generateSyntheticBodyForSwitchTable(SyntheticMethodBinding methodBinding)
           
 void generateSyntheticEnclosingInstanceValues(BlockScope currentScope, ReferenceBinding targetType, Expression enclosingInstance, ASTNode invocationSite)
          Code responsible to generate the suitable code to supply values for the synthetic enclosing instance arguments of a constructor invocation of a nested type.
 void generateSyntheticOuterArgumentValues(BlockScope currentScope, ReferenceBinding targetType, ASTNode invocationSite)
          Code responsible to generate the suitable code to supply values for the synthetic outer local variable arguments of a constructor invocation of a nested type.
 void generateUnboxingConversion(int unboxedTypeID)
           
 void generateWideRevertedConditionalBranch(byte revertedOpcode, BranchLabel wideTarget)
           
 void getBaseTypeValue(int baseTypeID)
           
 byte[] getContents()
           
 void getfield(FieldBinding fieldBinding)
           
 void getstatic(FieldBinding fieldBinding)
           
 void getSystemDotOut()
           
 void getTYPE(int baseTypeID)
           
 void goto_(BranchLabel label)
          We didn't call it goto, because there is a conflit with the goto keyword
 void goto_w(BranchLabel label)
           
 void i2b()
           
 void i2c()
           
 void i2d()
           
 void i2f()
           
 void i2l()
           
 void i2s()
           
 void iadd()
           
 void iaload()
           
 void iand()
           
 void iastore()
           
 void iconst_0()
           
 void iconst_1()
           
 void iconst_2()
           
 void iconst_3()
           
 void iconst_4()
           
 void iconst_5()
           
 void iconst_m1()
           
 void idiv()
           
 void if_acmpeq(BranchLabel lbl)
           
 void if_acmpne(BranchLabel lbl)
           
 void if_icmpeq(BranchLabel lbl)
           
 void if_icmpge(BranchLabel lbl)
           
 void if_icmpgt(BranchLabel lbl)
           
 void if_icmple(BranchLabel lbl)
           
 void if_icmplt(BranchLabel lbl)
           
 void if_icmpne(BranchLabel lbl)
           
 void ifeq(BranchLabel lbl)
           
 void ifge(BranchLabel lbl)
           
 void ifgt(BranchLabel lbl)
           
 void ifle(BranchLabel lbl)
           
 void iflt(BranchLabel lbl)
           
 void ifne(BranchLabel lbl)
           
 void ifnonnull(BranchLabel lbl)
           
 void ifnull(BranchLabel lbl)
           
 void iinc(int index, int value)
           
 void iload_0()
           
 void iload_1()
           
 void iload_2()
           
 void iload_3()
           
 void iload(int iArg)
           
 void imul()
           
 int indexOfSameLineEntrySincePC(int pc, int line)
           
 void ineg()
           
 void init(ClassFile targetClassFile)
           
 void initializeMaxLocals(MethodBinding methodBinding)
           
 boolean inlineForwardReferencesFromLabelsTargeting(BranchLabel targetLabel, int gotoLocation)
           
static int insertionIndex(int[] pcToSourceMap, int length, int pc)
          This methods searches for an existing entry inside the pcToSourceMap table with a pc equals to @pc.
 void instance_of(TypeBinding typeBinding)
          We didn't call it instanceof because there is a conflit with the instanceof keyword
 void invokeClassForName()
           
 void invokeEnumOrdinal(char[] enumTypeConstantPoolName)
           
 void invokeinterface(MethodBinding methodBinding)
           
 void invokeJavaLangAssertionErrorConstructor(int typeBindingID)
           
 void invokeJavaLangAssertionErrorDefaultConstructor()
           
 void invokeJavaLangClassDesiredAssertionStatus()
           
 void invokeJavaLangEnumvalueOf(ReferenceBinding binding)
           
 void invokeJavaLangEnumValues(TypeBinding enumBinding, ArrayBinding arrayBinding)
           
 void invokeJavaLangErrorConstructor()
           
 void invokeJavaLangReflectConstructorNewInstance()
           
 void invokeJavaLangReflectMethodInvoke()
           
 void invokeJavaUtilIteratorHasNext()
           
 void invokeJavaUtilIteratorNext()
           
 void invokeNoClassDefFoundErrorStringConstructor()
           
 void invokeObjectGetClass()
           
 void invokespecial(MethodBinding methodBinding)
           
 void invokestatic(MethodBinding methodBinding)
           
 void invokeStringBufferAppend(char[] signature)
           
 void invokeStringBufferAppendString()
           
 void invokeStringConcatenationAppendForType(int typeID)
          The equivalent code performs a string conversion of the TOS
 void invokeStringConcatenationDefaultConstructor()
           
 void invokeStringConcatenationStringConstructor()
           
 void invokeStringConcatenationToString()
           
 void invokeStringIntern()
           
 void invokeStringValueOf(int typeID)
           
 void invokeSystemArraycopy()
           
 void invokeSystemOutPrintln()
           
 void invokeThrowableGetMessage()
           
 void invokevirtual(MethodBinding methodBinding)
           
 void ior()
           
 void irem()
           
 void ireturn()
           
 boolean isDefinitelyAssigned(Scope scope, int initStateIndex, LocalVariableBinding local)
           
 void ishl()
           
 void ishr()
           
 void istore_0()
           
 void istore_1()
           
 void istore_2()
           
 void istore_3()
           
 void istore(int iArg)
           
 void isub()
           
 void iushr()
           
 void ixor()
           
 void jsr_w(BranchLabel lbl)
           
 void jsr(BranchLabel lbl)
           
 void l2d()
           
 void l2f()
           
 void l2i()
           
 void ladd()
           
 void laload()
           
 void land()
           
 void lastore()
           
 void lcmp()
           
 void lconst_0()
           
 void lconst_1()
           
 void ldc(float constant)
           
 void ldc(int constant)
           
 void ldc(java.lang.String constant)
           
 void ldc(TypeBinding typeBinding)
           
 void ldc2_w(double constant)
           
 void ldc2_w(long constant)
           
 void ldcForIndex(int index, char[] constant)
           
 void ldiv()
           
 void lload_0()
           
 void lload_1()
           
 void lload_2()
           
 void lload_3()
           
 void lload(int iArg)
           
 void lmul()
           
 void lneg()
           
 void load(LocalVariableBinding localBinding)
           
 void load(TypeBinding typeBinding, int resolvedPosition)
           
 void lookupswitch(CaseLabel defaultLabel, int[] keys, int[] sortedIndexes, CaseLabel[] casesLabel)
           
 void lor()
           
 void lrem()
           
 void lreturn()
           
 void lshl()
           
 void lshr()
           
 void lstore_0()
           
 void lstore_1()
           
 void lstore_2()
           
 void lstore_3()
           
 void lstore(int iArg)
           
 void lsub()
           
 void lushr()
           
 void lxor()
           
 void monitorenter()
           
 void monitorexit()
           
 void multianewarray(TypeBinding typeBinding, int dimensions)
           
 void new_(TypeBinding typeBinding)
           
 void newArray(ArrayBinding arrayBinding)
           
 void newarray(int array_Type)
           
 void newClassFromName(char[] className)
           
 void newClassFromName(char[] className, java.lang.String msg)
           
 void newJavaLangAssertionError()
           
 void newJavaLangError()
           
 void newNoClassDefFoundError()
           
 void newStringContatenation()
           
 void newWrapperFor(int typeID)
           
 void nop()
           
 void optimizeBranch(int oldPosition, BranchLabel lbl)
           
 void pop()
           
 void pop2()
           
 void pushExceptionOnStack(TypeBinding binding)
           
 void pushOnStack(TypeBinding binding)
           
 void putfield(FieldBinding fieldBinding)
           
 void putstatic(FieldBinding fieldBinding)
           
 void record(LocalVariableBinding local)
           
 void recordExpressionType(TypeBinding typeBinding)
           
 void recordPositionsFrom(int startPC, int sourcePos)
           
 void recordPositionsFrom(int startPC, int sourcePos, boolean widen)
           
 void registerExceptionHandler(ExceptionLabel anExceptionLabel)
           
 void removeNotDefinitelyAssignedVariables(Scope scope, int initStateIndex)
           
 void removeUnusedPcToSourceMapEntries()
          Remove all entries in pcToSourceMap table that are beyond this.position
 void removeVariable(LocalVariableBinding localBinding)
           
 void reset(AbstractMethodDeclaration referenceMethod, ClassFile targetClassFile)
           
 void reset(ClassFile givenClassFile)
           
 void resetForProblemClinit(ClassFile targetClassFile)
           
 void ret(int index)
           
 void return_()
           
 void saload()
           
 void sastore()
           
 void sendOperator(int operatorConstant, int type_ID)
           
 void sipush(int s)
           
static void sort(int[] tab, int lo0, int hi0, int[] result)
           
 void store(LocalVariableBinding localBinding, boolean valueRequired)
           
 void swap()
           
 void tableswitch(CaseLabel defaultLabel, int low, int high, int[] keys, int[] sortedIndexes, CaseLabel[] casesLabel)
           
 void throwAnyException(LocalVariableBinding anyExceptionVariable)
           
 java.lang.String toString()
           
 void updateLastRecordedEndPC(Scope scope, int pos)
          Note: it will walk the locals table and extend the end range for all matching ones, no matter if visible or not.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values

ImplicitThis

public static FieldBinding[] ImplicitThis

LABELS_INCREMENT

public static final int LABELS_INCREMENT
See Also:
Constant Field Values

LOCALS_INCREMENT

public static final int LOCALS_INCREMENT
See Also:
Constant Field Values

RESTART_IN_WIDE_MODE

public static final CompilationResult RESTART_IN_WIDE_MODE

allLocalsCounter

public int allLocalsCounter

bCodeStream

public byte[] bCodeStream

classFile

public ClassFile classFile

classFileOffset

public int classFileOffset

constantPool

public ConstantPool constantPool

countLabels

public int countLabels

exceptionLabels

public ExceptionLabel[] exceptionLabels

exceptionLabelsCounter

public int exceptionLabelsCounter

generateAttributes

public int generateAttributes

labels

public BranchLabel[] labels

lastEntryPC

public int lastEntryPC

lastAbruptCompletion

public int lastAbruptCompletion

lineSeparatorPositions

public int[] lineSeparatorPositions

lineNumberStart

public int lineNumberStart

lineNumberEnd

public int lineNumberEnd

locals

public LocalVariableBinding[] locals

maxFieldCount

public int maxFieldCount

maxLocals

public int maxLocals

methodDeclaration

public AbstractMethodDeclaration methodDeclaration

pcToSourceMap

public int[] pcToSourceMap

pcToSourceMapSize

public int pcToSourceMapSize

position

public int position

preserveUnusedLocals

public boolean preserveUnusedLocals

stackDepth

public int stackDepth

stackMax

public int stackMax

startingClassFileOffset

public int startingClassFileOffset

visibleLocals

public LocalVariableBinding[] visibleLocals

wideMode

public boolean wideMode
Constructor Detail

CodeStream

public CodeStream(ClassFile givenClassFile)
Method Detail

insertionIndex

public static int insertionIndex(int[] pcToSourceMap,
                                 int length,
                                 int pc)
This methods searches for an existing entry inside the pcToSourceMap table with a pc equals to @pc. If there is an existing entry it returns -1 (no insertion required). Otherwise it returns the index where the entry for the pc has to be inserted. This is based on the fact that the pcToSourceMap table is sorted according to the pc.

Parameters:
pcToSourceMap - the given pcToSourceMap array
length - the given length
pc - the given pc
Returns:
int

sort

public static final void sort(int[] tab,
                              int lo0,
                              int hi0,
                              int[] result)

aaload

public void aaload()

aastore

public void aastore()

aconst_null

public void aconst_null()

addDefinitelyAssignedVariables

public void addDefinitelyAssignedVariables(Scope scope,
                                           int initStateIndex)

addLabel

public void addLabel(BranchLabel aLabel)

addVisibleLocalVariable

public void addVisibleLocalVariable(LocalVariableBinding localBinding)

addVariable

public void addVariable(LocalVariableBinding localBinding)

aload

public void aload(int iArg)

aload_0

public void aload_0()

aload_1

public void aload_1()

aload_2

public void aload_2()

aload_3

public void aload_3()

anewarray

public void anewarray(TypeBinding typeBinding)

areturn

public void areturn()

arrayAt

public void arrayAt(int typeBindingID)

arrayAtPut

public void arrayAtPut(int elementTypeID,
                       boolean valueRequired)

arraylength

public void arraylength()

astore

public void astore(int iArg)

astore_0

public void astore_0()

astore_1

public void astore_1()

astore_2

public void astore_2()

astore_3

public void astore_3()

athrow

public void athrow()

baload

public void baload()

bastore

public void bastore()

bipush

public void bipush(byte b)

caload

public void caload()

castore

public void castore()

checkcast

public void checkcast(int baseId)

checkcast

public void checkcast(TypeBinding typeBinding)

d2f

public void d2f()

d2i

public void d2i()

d2l

public void d2l()

dadd

public void dadd()

daload

public void daload()

dastore

public void dastore()

dcmpg

public void dcmpg()

dcmpl

public void dcmpl()

dconst_0

public void dconst_0()

dconst_1

public void dconst_1()

ddiv

public void ddiv()

decrStackSize

public void decrStackSize(int offset)

dload

public void dload(int iArg)

dload_0

public void dload_0()

dload_1

public void dload_1()

dload_2

public void dload_2()

dload_3

public void dload_3()

dmul

public void dmul()

dneg

public void dneg()

drem

public void drem()

dreturn

public void dreturn()

dstore

public void dstore(int iArg)

dstore_0

public void dstore_0()

dstore_1

public void dstore_1()

dstore_2

public void dstore_2()

dstore_3

public void dstore_3()

dsub

public void dsub()

dup

public void dup()

dup_x1

public void dup_x1()

dup_x2

public void dup_x2()

dup2

public void dup2()

dup2_x1

public void dup2_x1()

dup2_x2

public void dup2_x2()

exitUserScope

public void exitUserScope(BlockScope currentScope)

exitUserScope

public void exitUserScope(BlockScope currentScope,
                          LocalVariableBinding binding)

f2d

public void f2d()

f2i

public void f2i()

f2l

public void f2l()

fadd

public void fadd()

faload

public void faload()

fastore

public void fastore()

fcmpg

public void fcmpg()

fcmpl

public void fcmpl()

fconst_0

public void fconst_0()

fconst_1

public void fconst_1()

fconst_2

public void fconst_2()

fdiv

public void fdiv()

fload

public void fload(int iArg)

fload_0

public void fload_0()

fload_1

public void fload_1()

fload_2

public void fload_2()

fload_3

public void fload_3()

fmul

public void fmul()

fneg

public void fneg()

frem

public void frem()

freturn

public void freturn()

fstore

public void fstore(int iArg)

fstore_0

public void fstore_0()

fstore_1

public void fstore_1()

fstore_2

public void fstore_2()

fstore_3

public void fstore_3()

fsub

public void fsub()

generateBoxingConversion

public void generateBoxingConversion(int unboxedTypeID)

generateClassLiteralAccessForType

public void generateClassLiteralAccessForType(TypeBinding accessedType,
                                              FieldBinding syntheticFieldBinding)
Macro for building a class descriptor object


generateCodeAttributeForProblemMethod

public final void generateCodeAttributeForProblemMethod(java.lang.String problemMessage)
This method generates the code attribute bytecode


generateConstant

public void generateConstant(Constant constant,
                             int implicitConversionCode)

generateEmulatedReadAccessForField

public void generateEmulatedReadAccessForField(FieldBinding fieldBinding)

generateEmulatedWriteAccessForField

public void generateEmulatedWriteAccessForField(FieldBinding fieldBinding)

generateEmulationForConstructor

public void generateEmulationForConstructor(Scope scope,
                                            MethodBinding methodBinding)

generateEmulationForField

public void generateEmulationForField(FieldBinding fieldBinding)

generateEmulationForMethod

public void generateEmulationForMethod(Scope scope,
                                       MethodBinding methodBinding)

generateImplicitConversion

public void generateImplicitConversion(int implicitConversionCode)
Generates the sequence of instructions which will perform the conversion of the expression on the stack into a different type (e.g. long l = someInt; --> i2l must be inserted).

Parameters:
implicitConversionCode - int

generateInlinedValue

public void generateInlinedValue(boolean inlinedValue)

generateInlinedValue

public void generateInlinedValue(byte inlinedValue)

generateInlinedValue

public void generateInlinedValue(char inlinedValue)

generateInlinedValue

public void generateInlinedValue(double inlinedValue)

generateInlinedValue

public void generateInlinedValue(float inlinedValue)

generateInlinedValue

public void generateInlinedValue(int inlinedValue)

generateInlinedValue

public void generateInlinedValue(long inlinedValue)

generateInlinedValue

public void generateInlinedValue(short inlinedValue)

generateOuterAccess

public void generateOuterAccess(java.lang.Object[] mappingSequence,
                                ASTNode invocationSite,
                                Binding target,
                                Scope scope)

generateReturnBytecode

public void generateReturnBytecode(Expression expression)

generateStringConcatenationAppend

public void generateStringConcatenationAppend(BlockScope blockScope,
                                              Expression oper1,
                                              Expression oper2)
The equivalent code performs a string conversion:

Parameters:
blockScope - the given blockScope
oper1 - the first expression
oper2 - the second expression

generateSyntheticBodyForConstructorAccess

public void generateSyntheticBodyForConstructorAccess(SyntheticMethodBinding accessBinding)
Parameters:
accessBinding - the access method binding to generate

generateSyntheticBodyForEnumValueOf

public void generateSyntheticBodyForEnumValueOf(SyntheticMethodBinding methodBinding)

generateSyntheticBodyForEnumValues

public void generateSyntheticBodyForEnumValues(SyntheticMethodBinding methodBinding)

generateSyntheticBodyForFieldReadAccess

public void generateSyntheticBodyForFieldReadAccess(SyntheticMethodBinding accessBinding)

generateSyntheticBodyForFieldWriteAccess

public void generateSyntheticBodyForFieldWriteAccess(SyntheticMethodBinding accessBinding)

generateSyntheticBodyForMethodAccess

public void generateSyntheticBodyForMethodAccess(SyntheticMethodBinding accessMethod)

generateSyntheticBodyForSwitchTable

public void generateSyntheticBodyForSwitchTable(SyntheticMethodBinding methodBinding)

generateSyntheticEnclosingInstanceValues

public void generateSyntheticEnclosingInstanceValues(BlockScope currentScope,
                                                     ReferenceBinding targetType,
                                                     Expression enclosingInstance,
                                                     ASTNode invocationSite)
Code responsible to generate the suitable code to supply values for the synthetic enclosing instance arguments of a constructor invocation of a nested type.


generateSyntheticOuterArgumentValues

public void generateSyntheticOuterArgumentValues(BlockScope currentScope,
                                                 ReferenceBinding targetType,
                                                 ASTNode invocationSite)
Code responsible to generate the suitable code to supply values for the synthetic outer local variable arguments of a constructor invocation of a nested type. (bug 26122) - synthetic values for outer locals must be passed after user arguments, e.g. new X(i = 1){}


generateUnboxingConversion

public void generateUnboxingConversion(int unboxedTypeID)

generateWideRevertedConditionalBranch

public void generateWideRevertedConditionalBranch(byte revertedOpcode,
                                                  BranchLabel wideTarget)

getBaseTypeValue

public void getBaseTypeValue(int baseTypeID)

getContents

public final byte[] getContents()

getfield

public void getfield(FieldBinding fieldBinding)

getstatic

public void getstatic(FieldBinding fieldBinding)

getTYPE

public void getTYPE(int baseTypeID)

goto_

public void goto_(BranchLabel label)
We didn't call it goto, because there is a conflit with the goto keyword


goto_w

public void goto_w(BranchLabel label)

i2b

public void i2b()

i2c

public void i2c()

i2d

public void i2d()

i2f

public void i2f()

i2l

public void i2l()

i2s

public void i2s()

iadd

public void iadd()

iaload

public void iaload()

iand

public void iand()

iastore

public void iastore()

iconst_0

public void iconst_0()

iconst_1

public void iconst_1()

iconst_2

public void iconst_2()

iconst_3

public void iconst_3()

iconst_4

public void iconst_4()

iconst_5

public void iconst_5()

iconst_m1

public void iconst_m1()

idiv

public void idiv()

if_acmpeq

public void if_acmpeq(BranchLabel lbl)

if_acmpne

public void if_acmpne(BranchLabel lbl)

if_icmpeq

public void if_icmpeq(BranchLabel lbl)

if_icmpge

public void if_icmpge(BranchLabel lbl)

if_icmpgt

public void if_icmpgt(BranchLabel lbl)

if_icmple

public void if_icmple(BranchLabel lbl)

if_icmplt

public void if_icmplt(BranchLabel lbl)

if_icmpne

public void if_icmpne(BranchLabel lbl)

ifeq

public void ifeq(BranchLabel lbl)

ifge

public void ifge(BranchLabel lbl)

ifgt

public void ifgt(BranchLabel lbl)

ifle

public void ifle(BranchLabel lbl)

iflt

public void iflt(BranchLabel lbl)

ifne

public void ifne(BranchLabel lbl)

ifnonnull

public void ifnonnull(BranchLabel lbl)

ifnull

public void ifnull(BranchLabel lbl)

iinc

public final void iinc(int index,
                       int value)

iload

public void iload(int iArg)

iload_0

public void iload_0()

iload_1

public void iload_1()

iload_2

public void iload_2()

iload_3

public void iload_3()

imul

public void imul()

indexOfSameLineEntrySincePC

public int indexOfSameLineEntrySincePC(int pc,
                                       int line)

ineg

public void ineg()

inlineForwardReferencesFromLabelsTargeting

public boolean inlineForwardReferencesFromLabelsTargeting(BranchLabel targetLabel,
                                                          int gotoLocation)

init

public void init(ClassFile targetClassFile)

initializeMaxLocals

public void initializeMaxLocals(MethodBinding methodBinding)
Parameters:
methodBinding - the given method binding to initialize the max locals

instance_of

public void instance_of(TypeBinding typeBinding)
We didn't call it instanceof because there is a conflit with the instanceof keyword


invokeClassForName

public void invokeClassForName()

invokeEnumOrdinal

public void invokeEnumOrdinal(char[] enumTypeConstantPoolName)

invokeinterface

public void invokeinterface(MethodBinding methodBinding)

invokeJavaLangAssertionErrorConstructor

public void invokeJavaLangAssertionErrorConstructor(int typeBindingID)

invokeJavaLangAssertionErrorDefaultConstructor

public void invokeJavaLangAssertionErrorDefaultConstructor()

invokeJavaLangClassDesiredAssertionStatus

public void invokeJavaLangClassDesiredAssertionStatus()

invokeJavaLangEnumvalueOf

public void invokeJavaLangEnumvalueOf(ReferenceBinding binding)

invokeJavaLangEnumValues

public void invokeJavaLangEnumValues(TypeBinding enumBinding,
                                     ArrayBinding arrayBinding)

invokeJavaLangErrorConstructor

public void invokeJavaLangErrorConstructor()

invokeJavaLangReflectConstructorNewInstance

public void invokeJavaLangReflectConstructorNewInstance()

invokeJavaLangReflectMethodInvoke

public void invokeJavaLangReflectMethodInvoke()

invokeJavaUtilIteratorHasNext

public void invokeJavaUtilIteratorHasNext()

invokeJavaUtilIteratorNext

public void invokeJavaUtilIteratorNext()

invokeNoClassDefFoundErrorStringConstructor

public void invokeNoClassDefFoundErrorStringConstructor()

invokeObjectGetClass

public void invokeObjectGetClass()

invokespecial

public void invokespecial(MethodBinding methodBinding)

invokestatic

public void invokestatic(MethodBinding methodBinding)

invokeStringConcatenationAppendForType

public void invokeStringConcatenationAppendForType(int typeID)
The equivalent code performs a string conversion of the TOS

Parameters:
typeID - int

invokeStringConcatenationDefaultConstructor

public void invokeStringConcatenationDefaultConstructor()

invokeStringConcatenationStringConstructor

public void invokeStringConcatenationStringConstructor()

invokeStringConcatenationToString

public void invokeStringConcatenationToString()

invokeStringIntern

public void invokeStringIntern()

invokeStringValueOf

public void invokeStringValueOf(int typeID)

invokeSystemArraycopy

public void invokeSystemArraycopy()

invokeThrowableGetMessage

public void invokeThrowableGetMessage()

invokevirtual

public void invokevirtual(MethodBinding methodBinding)

ior

public void ior()

irem

public void irem()

ireturn

public void ireturn()

isDefinitelyAssigned

public boolean isDefinitelyAssigned(Scope scope,
                                    int initStateIndex,
                                    LocalVariableBinding local)

ishl

public void ishl()

ishr

public void ishr()

istore

public void istore(int iArg)

istore_0

public void istore_0()

istore_1

public void istore_1()

istore_2

public void istore_2()

istore_3

public void istore_3()

isub

public void isub()

iushr

public void iushr()

ixor

public void ixor()

jsr

public final void jsr(BranchLabel lbl)

jsr_w

public final void jsr_w(BranchLabel lbl)

l2d

public void l2d()

l2f

public void l2f()

l2i

public void l2i()

ladd

public void ladd()

laload

public void laload()

land

public void land()

lastore

public void lastore()

lcmp

public void lcmp()

lconst_0

public void lconst_0()

lconst_1

public void lconst_1()

ldc

public void ldc(float constant)

ldc

public void ldc(int constant)

ldc

public void ldc(java.lang.String constant)

ldc

public void ldc(TypeBinding typeBinding)

ldc2_w

public void ldc2_w(double constant)

ldc2_w

public void ldc2_w(long constant)

ldcForIndex

public void ldcForIndex(int index,
                        char[] constant)

ldiv

public void ldiv()

lload

public void lload(int iArg)

lload_0

public void lload_0()

lload_1

public void lload_1()

lload_2

public void lload_2()

lload_3

public void lload_3()

lmul

public void lmul()

lneg

public void lneg()

load

public final void load(LocalVariableBinding localBinding)

load

public final void load(TypeBinding typeBinding,
                       int resolvedPosition)

lookupswitch

public void lookupswitch(CaseLabel defaultLabel,
                         int[] keys,
                         int[] sortedIndexes,
                         CaseLabel[] casesLabel)

lor

public void lor()

lrem

public void lrem()

lreturn

public void lreturn()

lshl

public void lshl()

lshr

public void lshr()

lstore

public void lstore(int iArg)

lstore_0

public void lstore_0()

lstore_1

public void lstore_1()

lstore_2

public void lstore_2()

lstore_3

public void lstore_3()

lsub

public void lsub()

lushr

public void lushr()

lxor

public void lxor()

monitorenter

public void monitorenter()

monitorexit

public void monitorexit()

multianewarray

public void multianewarray(TypeBinding typeBinding,
                           int dimensions)

new_

public void new_(TypeBinding typeBinding)

newarray

public void newarray(int array_Type)

newArray

public void newArray(ArrayBinding arrayBinding)

newJavaLangAssertionError

public void newJavaLangAssertionError()

newJavaLangError

public void newJavaLangError()

newNoClassDefFoundError

public void newNoClassDefFoundError()

newStringContatenation

public void newStringContatenation()

newWrapperFor

public void newWrapperFor(int typeID)

nop

public void nop()

optimizeBranch

public void optimizeBranch(int oldPosition,
                           BranchLabel lbl)

pop

public void pop()

pop2

public void pop2()

pushOnStack

public void pushOnStack(TypeBinding binding)

pushExceptionOnStack

public void pushExceptionOnStack(TypeBinding binding)

putfield

public void putfield(FieldBinding fieldBinding)

putstatic

public void putstatic(FieldBinding fieldBinding)

record

public void record(LocalVariableBinding local)

recordExpressionType

public void recordExpressionType(TypeBinding typeBinding)

recordPositionsFrom

public void recordPositionsFrom(int startPC,
                                int sourcePos)

recordPositionsFrom

public void recordPositionsFrom(int startPC,
                                int sourcePos,
                                boolean widen)

registerExceptionHandler

public void registerExceptionHandler(ExceptionLabel anExceptionLabel)
Parameters:
anExceptionLabel - org.eclipse.jdt.internal.compiler.codegen.ExceptionLabel

removeNotDefinitelyAssignedVariables

public void removeNotDefinitelyAssignedVariables(Scope scope,
                                                 int initStateIndex)

removeUnusedPcToSourceMapEntries

public void removeUnusedPcToSourceMapEntries()
Remove all entries in pcToSourceMap table that are beyond this.position


removeVariable

public void removeVariable(LocalVariableBinding localBinding)

reset

public void reset(AbstractMethodDeclaration referenceMethod,
                  ClassFile targetClassFile)
Parameters:
referenceMethod - org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration
targetClassFile - org.eclipse.jdt.internal.compiler.codegen.ClassFile

reset

public void reset(ClassFile givenClassFile)

resetForProblemClinit

public void resetForProblemClinit(ClassFile targetClassFile)
Parameters:
targetClassFile - The given classfile to reset the code stream

ret

public final void ret(int index)

return_

public void return_()

saload

public void saload()

sastore

public void sastore()

sendOperator

public void sendOperator(int operatorConstant,
                         int type_ID)
Parameters:
operatorConstant - int
type_ID - int

sipush

public void sipush(int s)

store

public void store(LocalVariableBinding localBinding,
                  boolean valueRequired)

swap

public void swap()

tableswitch

public void tableswitch(CaseLabel defaultLabel,
                        int low,
                        int high,
                        int[] keys,
                        int[] sortedIndexes,
                        CaseLabel[] casesLabel)

throwAnyException

public void throwAnyException(LocalVariableBinding anyExceptionVariable)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

updateLastRecordedEndPC

public void updateLastRecordedEndPC(Scope scope,
                                    int pos)
Note: it will walk the locals table and extend the end range for all matching ones, no matter if visible or not. { int i = 0; { int j = 1; } } <== would process both 'i' and 'j' Processing non-visible ones is mandated in some cases (include goto instruction after if-then block)


newClassFromName

public void newClassFromName(char[] className)

newClassFromName

public void newClassFromName(char[] className,
                             java.lang.String msg)

getSystemDotOut

public void getSystemDotOut()

invokeSystemOutPrintln

public void invokeSystemOutPrintln()

invokeStringBufferAppend

public void invokeStringBufferAppend(char[] signature)

invokeStringBufferAppendString

public void invokeStringBufferAppendString()