Skip to content

Latest commit

 

History

History
56 lines (30 loc) · 2.94 KB

File metadata and controls

56 lines (30 loc) · 2.94 KB
graph LR
    Encoder_Definition_Processor["Encoder Definition Processor"]
    Encoder_Function_Generator["Encoder Function Generator"]
    Nonterminal_Function_Generator["Nonterminal Function Generator"]
    Argument_Validation_Generator["Argument Validation Generator"]
    Encoder_Definition_Processor -- "delegates tasks to" --> Encoder_Function_Generator
    Encoder_Definition_Processor -- "delegates tasks to" --> Nonterminal_Function_Generator
    Argument_Validation_Generator -- "produces code for" --> Encoder_Function_Generator
Loading

CodeBoardingDemoContact

Details

The Encoder Logic Generation subsystem is responsible for transforming high-level instruction definitions into low-level C/C++ code for the XED instruction encoder. It focuses on generating encoding functions, implementing argument validation, and creating reusable nonterminal patterns.

Encoder Definition Processor

Parses high-level encoder/decoder definition files, manages encoding rules, and orchestrates the overall code generation process. It acts as the primary data input and control flow component for the subsystem.

Related Classes/Methods:

Encoder Function Generator

Generates the specific C/C++ code for individual instruction encoding functions. This includes handling operand types, prefixes, opcode emission, and integrating validation logic.

Related Classes/Methods:

Nonterminal Function Generator

Creates C/C++ functions that represent reusable nonterminal patterns or decision points within the overall encoding logic. These functions encapsulate common encoding sequences or logic branches, promoting code reuse.

Related Classes/Methods:

Argument Validation Generator

Generates C/C++ functions specifically for validating arguments during the instruction encoding process. This ensures that input operands conform to expected types and constraints, enhancing the robustness of the generated encoder.

Related Classes/Methods: