Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Merge requests
  • !5149

i#5144: AArch64 v8 decoder: Fix enum values for each instruction

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge i5144-aarch64-enum-ordering into master Oct 07, 2021
  • Overview 14
  • Commits 3
  • Pipelines 0
  • Changes 3

Created by: joshua-warburton

Previously, the enum value for each instruction was assigned at compile time in order after sorting alphabetically. This meant that every time a new instruction was added it would shuffle the existing enum values, leading to incompatibility between compiles.

This patch adds an enum field in codec.txt which allows us to preserve enum values regardless of instructions being added or removed. The existing codecsort.py manages the values of these enums and ensures that each of the instructions has a unique enum.

Gaps in the enum sequence are allowed when an instruction is moved or deleted. These gaps will resolve to OP_INVALID. Removing or moving opcodes to different enum values should only be done with the approval of active maintainers and with a good reason as it can break backward compatibility.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i5144-aarch64-enum-ordering