java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.processor.arch.AbstractRegisterBank
com.pnfsoftware.jeb.core.units.code.asm.processor.arch.RegisterBankArm
All Implemented Interfaces:
IRegisterBank

public class RegisterBankArm extends AbstractRegisterBank
Register bank for an ARM 32-bit processor.
  • Field Details

    • regGrp_GP

      public static final int regGrp_GP
      General-purpose register group.
      See Also:
    • regGrp_BANKED

      public static final int regGrp_BANKED
      Banked register group.
      See Also:
    • regGrp_COPROC

      public static final int regGrp_COPROC
      Coprocessor register group.
      See Also:
    • regGrp_SIMD

      public static final int regGrp_SIMD
      SIMD register group.
      See Also:
    • regGrp_FP_SYSTEM

      public static final int regGrp_FP_SYSTEM
      Floating-point system register group.
      See Also:
    • regGrp_Flags

      public static final int regGrp_Flags
      Flags register group.
      See Also:
    • UNPREDICTABLE

      public static final String UNPREDICTABLE
      Text used for unpredictable banked-register encodings.
      See Also:
    • SYS_BITSTART_MASK_THRESHOLD

      public static final int SYS_BITSTART_MASK_THRESHOLD
      Threshold used to distinguish system-register bit-start masks.
      See Also:
    • CPSR_Aliases

      public static final String[] CPSR_Aliases
      CPSR/APSR aliases indexed by mask.
    • APSR_MASK

      public static final int APSR_MASK
      APSR alias mask.
      See Also:
    • APSR_nzcv_MASK

      public static final int APSR_nzcv_MASK
      APSR_nzcv alias mask.
      See Also:
    • SPSR_Aliases

      public static final String[] SPSR_Aliases
      SPSR aliases indexed by mask.
    • LEGACY_APSR_nzcv

      public static final int LEGACY_APSR_nzcv
      Legacy APSR_nzcv alias index.
    • LEGACY_APSR

      public static final int LEGACY_APSR
      Legacy APSR alias index.
    • CPSR

      public static final int CPSR
      CPSR register alias index.

      There are actually 2 Flag registers:

      • CPSR/APSR (named differently regarding bits used or instruction)
      • SPSR (when not in User Mode)
      We use bitstart for alias.
      See Also:
    • SPSR

      public static final int SPSR
      SPSR register alias index.
    • BankedRegisters

      public static String[] BankedRegisters
      Banked ARM register names indexed by encoded selector.
  • Method Details

    • getInstance

      public static RegisterBankArm getInstance()
      Retrieve the singleton ARM register bank.
      Returns:
      register bank
    • getDescriptionEntryMap

      public Map<Integer,RegisterDescriptionEntry> getDescriptionEntryMap()
      Description copied from class: AbstractRegisterBank
      Get the full-register description entries by register index.
      Specified by:
      getDescriptionEntryMap in class AbstractRegisterBank
      Returns:
      a map of full registers: key=index, value=full register entry
    • getSpId

      public static long getSpId()
      Retrieve the standard ARM stack-pointer id.
      Returns:
      stack-pointer register id