Top Description Fields Constructors Methods
org.droidparts.dexmaker.dx.io.instructions

public sealed Enum InstructionCodec

extends Enum<InstructionCodec>
Class Inheritance
Imports
org.droidparts.dexmaker.dx.io.IndexType, .OpcodeInfo, .Opcodes, org.droidparts.dexmaker.dx.util.DexException, .Hex, java.io.EOFException

Representation of an instruction format, which knows how to decode into and encode from instances of DecodedInstruction.

Field Summary

Modifier and TypeField and Description
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec
public static final InstructionCodec

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static short
asUnsignedUnit(int value)

private static int
byte0(int value)

private static int
byte1(int value)

private static int
byte2(int value)

private static int
byte3(int value)

private static short
codeUnit(int lowByte, int highByte)

private static short
codeUnit(int nibble0, int nibble1, int nibble2, int nibble3)

public abstract DecodedInstruction
decode(int opcodeUnit, CodeInput in)

Decodes an instruction specified by the given opcode unit, reading any required additional code units from the given input source.

private static DecodedInstruction
decodeRegisterList(InstructionCodec format, int opcodeUnit, CodeInput in)

Helper method that decodes any of the register-list formats.

private static DecodedInstruction
decodeRegisterRange(InstructionCodec format, int opcodeUnit, CodeInput in)

Helper method that decodes any of the three-unit register-range formats.

public abstract void
encode(DecodedInstruction insn, CodeOutput out)

Encodes the given instruction.

private static void
encodeRegisterList(DecodedInstruction insn, CodeOutput out)

Helper method that encodes any of the register-list formats.

private static void
encodeRegisterRange(DecodedInstruction insn, CodeOutput out)

Helper method that encodes any of the three-unit register-range formats.

private static int
makeByte(int lowNibble, int highNibble)

private static int
nibble0(int value)

private static int
nibble1(int value)

private static int
nibble2(int value)

private static int
nibble3(int value)

private static short
unit0(int value)

private static short
unit0(long value)

private static short
unit1(int value)

private static short
unit1(long value)

private static short
unit2(long value)

private static short
unit3(long value)

public static InstructionCodec
public static InstructionCodec[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

FORMAT_00Xback to summary
public static final InstructionCodec FORMAT_00X
FORMAT_10Tback to summary
public static final InstructionCodec FORMAT_10T
FORMAT_10Xback to summary
public static final InstructionCodec FORMAT_10X
FORMAT_11Nback to summary
public static final InstructionCodec FORMAT_11N
FORMAT_11Xback to summary
public static final InstructionCodec FORMAT_11X
FORMAT_12Xback to summary
public static final InstructionCodec FORMAT_12X
FORMAT_20BCback to summary
public static final InstructionCodec FORMAT_20BC
FORMAT_20Tback to summary
public static final InstructionCodec FORMAT_20T
FORMAT_21Cback to summary
public static final InstructionCodec FORMAT_21C
FORMAT_21Hback to summary
public static final InstructionCodec FORMAT_21H
FORMAT_21Sback to summary
public static final InstructionCodec FORMAT_21S
FORMAT_21Tback to summary
public static final InstructionCodec FORMAT_21T
FORMAT_22Bback to summary
public static final InstructionCodec FORMAT_22B
FORMAT_22Cback to summary
public static final InstructionCodec FORMAT_22C
FORMAT_22CSback to summary
public static final InstructionCodec FORMAT_22CS
FORMAT_22Sback to summary
public static final InstructionCodec FORMAT_22S
FORMAT_22Tback to summary
public static final InstructionCodec FORMAT_22T
FORMAT_22Xback to summary
public static final InstructionCodec FORMAT_22X
FORMAT_23Xback to summary
public static final InstructionCodec FORMAT_23X
FORMAT_30Tback to summary
public static final InstructionCodec FORMAT_30T
FORMAT_31Cback to summary
public static final InstructionCodec FORMAT_31C
FORMAT_31Iback to summary
public static final InstructionCodec FORMAT_31I
FORMAT_31Tback to summary
public static final InstructionCodec FORMAT_31T
FORMAT_32Sback to summary
public static final InstructionCodec FORMAT_32S
FORMAT_32Xback to summary
public static final InstructionCodec FORMAT_32X
FORMAT_33Xback to summary
public static final InstructionCodec FORMAT_33X
FORMAT_35Cback to summary
public static final InstructionCodec FORMAT_35C
FORMAT_35MIback to summary
public static final InstructionCodec FORMAT_35MI
FORMAT_35MSback to summary
public static final InstructionCodec FORMAT_35MS
FORMAT_3RCback to summary
public static final InstructionCodec FORMAT_3RC
FORMAT_3RMIback to summary
public static final InstructionCodec FORMAT_3RMI
FORMAT_3RMSback to summary
public static final InstructionCodec FORMAT_3RMS
FORMAT_40SCback to summary
public static final InstructionCodec FORMAT_40SC
FORMAT_41Cback to summary
public static final InstructionCodec FORMAT_41C
FORMAT_51Lback to summary
public static final InstructionCodec FORMAT_51L
FORMAT_52Cback to summary
public static final InstructionCodec FORMAT_52C
FORMAT_5RCback to summary
public static final InstructionCodec FORMAT_5RC
FORMAT_FILL_ARRAY_DATA_PAYLOADback to summary
public static final InstructionCodec FORMAT_FILL_ARRAY_DATA_PAYLOAD
FORMAT_PACKED_SWITCH_PAYLOADback to summary
public static final InstructionCodec FORMAT_PACKED_SWITCH_PAYLOAD
FORMAT_SPARSE_SWITCH_PAYLOADback to summary
public static final InstructionCodec FORMAT_SPARSE_SWITCH_PAYLOAD

Constructor Detail

InstructionCodecback to summary
private InstructionCodec()

Method Detail

asUnsignedUnitback to summary
private static short asUnsignedUnit(int value)
byte0back to summary
private static int byte0(int value)
byte1back to summary
private static int byte1(int value)
byte2back to summary
private static int byte2(int value)
byte3back to summary
private static int byte3(int value)
codeUnitback to summary
private static short codeUnit(int lowByte, int highByte)
codeUnitback to summary
private static short codeUnit(int nibble0, int nibble1, int nibble2, int nibble3)
decodeback to summary
public abstract DecodedInstruction decode(int opcodeUnit, CodeInput in) throws EOFException

Decodes an instruction specified by the given opcode unit, reading any required additional code units from the given input source.

decodeRegisterListback to summary
private static DecodedInstruction decodeRegisterList(InstructionCodec format, int opcodeUnit, CodeInput in) throws EOFException

Helper method that decodes any of the register-list formats.

decodeRegisterRangeback to summary
private static DecodedInstruction decodeRegisterRange(InstructionCodec format, int opcodeUnit, CodeInput in) throws EOFException

Helper method that decodes any of the three-unit register-range formats.

encodeback to summary
public abstract void encode(DecodedInstruction insn, CodeOutput out)

Encodes the given instruction.

encodeRegisterListback to summary
private static void encodeRegisterList(DecodedInstruction insn, CodeOutput out)

Helper method that encodes any of the register-list formats.

encodeRegisterRangeback to summary
private static void encodeRegisterRange(DecodedInstruction insn, CodeOutput out)

Helper method that encodes any of the three-unit register-range formats.

makeByteback to summary
private static int makeByte(int lowNibble, int highNibble)
nibble0back to summary
private static int nibble0(int value)
nibble1back to summary
private static int nibble1(int value)
nibble2back to summary
private static int nibble2(int value)
nibble3back to summary
private static int nibble3(int value)
unit0back to summary
private static short unit0(int value)
unit0back to summary
private static short unit0(long value)
unit1back to summary
private static short unit1(int value)
unit1back to summary
private static short unit1(long value)
unit2back to summary
private static short unit2(long value)
unit3back to summary
private static short unit3(long value)
valueOfback to summary
public static InstructionCodec valueOf(String name)
valuesback to summary
public static InstructionCodec[] values()