JaCIL Framework API

IInstructionContext Interface

Translation context for a single instruction within a type.

For a list of all members of this type, see IInstructionContext Members.

public interface IInstructionContext : IContext

Types that implement IInstructionContext

Type Description
BaseInstructionContext Straightforward implementation of a member context which implementations may leverage.
FieldValueTypeInitInstructionContext Synthetic context for initializing value type fields.
HandlerCatchJumpInstructionContext Synthetic context the catch-all handler for routine based handlers that require exception handling.
HandlerRefStoreInstructionContext Synthetic context for inserting the exception store for rethrow, or subroutine address for a handler.
IndirectionArgumentInstructionContext Synthetic context for creating New/Dup for object init. This context also deals with popping arguments and re-pushing them after the new/dup is emitted. This is to be used in cases that data flow analysis cannot elegantly insert a new/dup early in the instruction stream.
IndirectionInstructionContext Synthetic context for creating New/Dup for object init. This context also deals with popping arguments and re-pushing them after the new/dup is emitted. This is to be used in cases that data flow analysis cannot elegantly insert a new/dup early in the instruction stream.
InstructionContext Standard implementation of an instruction context.
LocalBoxInitInstructionContext Synthetic context for initializing local boxes.
LocalValueTypeInitInstructionContext Synthetic context for initializing local value type variables.
NewDupArgumentInstructionContext Synthetic context for creating New/Dup for object init. This context also deals with popping arguments and re-pushing them after the new/dup is emitted. This is to be used in cases that data flow analysis cannot elegantly insert a new/dup early in the instruction stream.
NewDupInstructionContext Synthetic context for creating New/Dup for object init.

Remarks

The instruction context may or may not actually represent a 1-to-1 translation between a CIL opcode and the Java equivalent. This context could be synthetic opcodes that have no CIL equivalent but is needed to support the Java translation.

In fact, it may be the case that the context has no Java translation but serves as a semantic place holder for things like exception table offsets.

Requirements

Namespace: JaCIL.Compiler.Context

Assembly: JaCIL.Compiler (in JaCIL.Compiler.dll)

See Also

IInstructionContext Members | JaCIL.Compiler.Context Namespace