Package ghidra.program.model.lang

# Class GhidraLanguagePropertyKeys

java.lang.Object
ghidra.program.model.lang.GhidraLanguagePropertyKeys

public final class GhidraLanguagePropertyKeys extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ADDRESSES_DO_NOT_APPEAR_DIRECTLY_IN_CODE`
  ADDRESSES_DO_NOT_APPEAR_DIRECTLY_IN_CODE is a boolean property that indicates if addresses don't appear directly in code.
  `static final String`
  `ALLOW_OFFCUT_REFERENCES_TO_FUNCTION_STARTS`
  ALLOW_OFFCUT_REFERENCES_TO_FUNCTION_STARTS is a boolean property used to indicate if function bodies can actually start offcut.
  `static final String`
  `CUSTOM_DISASSEMBLER_CLASS`
  CUSTOM_DISASSEMBLER_CLASS is a full class name for a language-specific disassembler implementation.
  `static final String`
  `EMULATE_INSTRUCTION_STATE_MODIFIER_CLASS`
  EMULATE_INSTRUCTION_STATE_MODIFIER_CLASS is a string property that indicates the classname of a EmulateInstructionStateModifier implementation which should be used during emulation to assist with the adjusting the emulator state before and/or after each instruction is executed.
  `static final String`
  `ENABLE_ASSUME_CONTIGUOUS_FUNCTIONS_ONLY`
  Shared return analysis, option to assume contiguous functions where a function jumps to another function across the address space of another function.
  `static final String`
  `ENABLE_NO_RETURN_ANALYSIS`
  Non returning function analysis, where a function such as exit() is known to the compiler not to return.
  `static final String`
  `ENABLE_SHARED_RETURN_ANALYSIS`
  Shared return analysis, where at the end of one function, the code will jump to another, and use the jumped to subroutines return.
  `static final String`
  `IS_TMS320_FAMILY`
  IS_TMS320_FAMILY is a boolean property that indicates this language is part of the general TMS320 family.
  `static final String`
  `MINIMUM_DATA_IMAGE_BASE`
  Property to indicate the minimum recommended base address within the default data space for placing relocatable data sections.
  `static final String`
  `PARALLEL_INSTRUCTION_HELPER_CLASS`
  PARALLEL_INSTRUCTION_HELPER_CLASS is a full class name for an implementation of the ParallelInstructionLanguageHelper.
  `static final String`
  `PCODE_INJECT_LIBRARY_CLASS`
  PCODE_INJECT_LIBRARY_CLASS indicates the classname of a PcodeInjectLibrary implementation that is used to generate p-code injection payloads which can replace either CALLs or CALLOTHERs during any form of p-code analysis.
  `static final String`
  `RESET_CONTEXT_ON_UPGRADE`
  Property to indicate that all stored instruction context should be cleared during a language upgrade operation which requires redisassembly.
  `static final String`
  `USE_NEW_FUNCTION_STACK_ANALYSIS`
  USE_NEW_FUNCTION_STACK_ANALYSIS is a boolean property that indicates if the StackVariableAnalyzer should use a NewFunctionStackAnalysisCmd instead of the older FunctionStackAnalysisCmd.
  `static final String`
  `USE_OPERAND_REFERENCE_ANALYZER_SWITCH_TABLES`
  USE_OPERAND_REFERENCE_ANALYZER_SWITCH_TABLES is a boolean property that indicates if a language should use the switch table analysis in the OperandReferenceAnalyzer.

- ## Method Summary

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### CUSTOM_DISASSEMBLER_CLASS

    public static final String CUSTOM_DISASSEMBLER_CLASS
    CUSTOM_DISASSEMBLER_CLASS is a full class name for a language-specific disassembler implementation. The specified class must extend the generic disassembler `Disassembler` implementation and must implement the same set of constructors.
    See Also:
      - Constant Field Values

  - ### ALLOW_OFFCUT_REFERENCES_TO_FUNCTION_STARTS

    public static final String ALLOW_OFFCUT_REFERENCES_TO_FUNCTION_STARTS
    ALLOW_OFFCUT_REFERENCES_TO_FUNCTION_STARTS is a boolean property used to indicate if function bodies can actually start offcut. This is useful, for instance, with the ARM processor in THUMB mode since the least significant bit of the address is 0x1 for a THUMB mode function, even though outside references to this function will be at one byte less than the actual function start. Default is false.
    See Also:
      - Constant Field Values

  - ### USE_OPERAND_REFERENCE_ANALYZER_SWITCH_TABLES

    public static final String USE_OPERAND_REFERENCE_ANALYZER_SWITCH_TABLES
    USE_OPERAND_REFERENCE_ANALYZER_SWITCH_TABLES is a boolean property that indicates if a language should use the switch table analysis in the OperandReferenceAnalyzer. Default is false.
    See Also:
      - Constant Field Values

  - ### IS_TMS320_FAMILY

    public static final String IS_TMS320_FAMILY
    IS_TMS320_FAMILY is a boolean property that indicates this language is part of the general TMS320 family. Default is false. Used for general TMS320 analysis.
    See Also:
      - Constant Field Values

  - ### PARALLEL_INSTRUCTION_HELPER_CLASS

    public static final String PARALLEL_INSTRUCTION_HELPER_CLASS
    PARALLEL_INSTRUCTION_HELPER_CLASS is a full class name for an implementation of the ParallelInstructionLanguageHelper. Those languages which support parallel instruction execution may implement this helper class to facilitate display of a || indicator within a listing view.
    See Also:
      - Constant Field Values

  - ### ADDRESSES_DO_NOT_APPEAR_DIRECTLY_IN_CODE

    public static final String ADDRESSES_DO_NOT_APPEAR_DIRECTLY_IN_CODE
    ADDRESSES_DO_NOT_APPEAR_DIRECTLY_IN_CODE is a boolean property that indicates if addresses don't appear directly in code. Supposedly applies to all RISC processors, according to ScalarOperandAnalyzer. Default is false.
    See Also:
      - Constant Field Values

  - ### USE_NEW_FUNCTION_STACK_ANALYSIS

    public static final String USE_NEW_FUNCTION_STACK_ANALYSIS
    USE_NEW_FUNCTION_STACK_ANALYSIS is a boolean property that indicates if the StackVariableAnalyzer should use a NewFunctionStackAnalysisCmd instead of the older FunctionStackAnalysisCmd. Default is false.
    See Also:
      - Constant Field Values

  - ### EMULATE_INSTRUCTION_STATE_MODIFIER_CLASS

    public static final String EMULATE_INSTRUCTION_STATE_MODIFIER_CLASS
    EMULATE_INSTRUCTION_STATE_MODIFIER_CLASS is a string property that indicates the classname of a EmulateInstructionStateModifier implementation which should be used during emulation to assist with the adjusting the emulator state before and/or after each instruction is executed. This class may also provide language defined behaviors for custom pcodeop's. Default is null.
    See Also:
      - Constant Field Values

  - ### PCODE_INJECT_LIBRARY_CLASS

    public static final String PCODE_INJECT_LIBRARY_CLASS
    PCODE_INJECT_LIBRARY_CLASS indicates the classname of a PcodeInjectLibrary implementation that is used to generate p-code injection payloads which can replace either CALLs or CALLOTHERs during any form of p-code analysis. The injections are primarily provided by `<callfixup>` and `<callotherfixup>` tags in the compiler spec, but this provides a hook point for providing other means of injection.
    See Also:
      - Constant Field Values

  - ### ENABLE_SHARED_RETURN_ANALYSIS

    public static final String ENABLE_SHARED_RETURN_ANALYSIS
    Shared return analysis, where at the end of one function, the code will jump to another, and use the jumped to subroutines return. Shared Return analysis is enabled by default for all processors. If calls are used as long-jumps this can cause problems, so it is disabled for older arm processors.
    See Also:
      - Constant Field Values

  - ### ENABLE_ASSUME_CONTIGUOUS_FUNCTIONS_ONLY

    public static final String ENABLE_ASSUME_CONTIGUOUS_FUNCTIONS_ONLY
    Shared return analysis, option to assume contiguous functions where a function jumps to another function across the address space of another function. This could cause issues on programs with bad control flow, or bad disassembly
    See Also:
      - Constant Field Values

  - ### ENABLE_NO_RETURN_ANALYSIS

    public static final String ENABLE_NO_RETURN_ANALYSIS
    Non returning function analysis, where a function such as exit() is known to the compiler not to return. The compiler will generate data or code for another function immediately following the call. Non-returning functions can be detected in many cases.
    See Also:
      - Constant Field Values

  - ### RESET_CONTEXT_ON_UPGRADE

    public static final String RESET_CONTEXT_ON_UPGRADE
    Property to indicate that all stored instruction context should be cleared during a language upgrade operation which requires redisassembly. NOTE: This is an experimental concept which may be removed in the future
    See Also:
      - Constant Field Values

  - ### MINIMUM_DATA_IMAGE_BASE

    public static final String MINIMUM_DATA_IMAGE_BASE
    Property to indicate the minimum recommended base address within the default data space for placing relocatable data sections. This is intended to avoid loading into low memory regions where registers may be defined. The default value for ELF will be just beyond the last memory register defined within the default data space. This option is only utilized by the ELF Loader for Harvard Architecures when loading a relocatable ELF binary (i.e., object module) and corresponds to the ELF Loader option: `Data Image Base`.
    See Also:
      - Constant Field Values