Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto-Sync reproducability + ARM update #2532

Open
wants to merge 14 commits into
base: next
Choose a base branch
from

Conversation

Rot127
Copy link
Collaborator

@Rot127 Rot127 commented Oct 31, 2024

Your checklist for this pull request

  • I've documented or updated the documentation of every API function and struct this PR changes.
  • I've added tests that prove my fix is effective or that my feature works (if possible)

Detailed description

Changes:

Differ

  • Enables the Differ to write to the newly translated or the old file.
  • Adds a patching test.
  • Allows to pre-define user input.
  • Some simplifications.

ARM

This also updates the ARM module because the Differ had to be updated for it step by step anyways.

  • No new instructions
  • ARM module is generated with newest Auto-Sync. This changes some file structures, generated tables, makes most print and decoder functions static inline and adds a new supplementary field.
  • The new supplementary field saves the TableGen property mayLoad/mayStore. This is needed because ARM definitions are not super precise and mix up some input and output operands. With the addition in the ARMMapping.c it will set this property always according to mayLoad/mayStore if it differs (and hence indicates an incorrect definition). The proper way to fix it is to fix the td files. But they are pretty complex and it takes substantially more time.

Test plan

All green and added for the Differ.

Closing issues

...

- Enables the Differ to write to the newly translated or the old file.
- Adds a patching test.
- Allows to predefine user input.
- Some simplifications.
This also updates most code to the latest Auto-Sync structure.
- Enums are upper case.
- Decoders (NULL) are passed to decode_instruction.
Table is sorted in reverse for LLVM 18
For now overlapping patches overwrite each other.
It requires a proper conflict handling in the future.
@Rot127 Rot127 changed the title Auto-Sync reproducability. Auto-Sync reproducability + ARM update Nov 9, 2024
@Rot127 Rot127 marked this pull request as ready for review November 9, 2024 14:41
@Rot127 Rot127 mentioned this pull request Nov 9, 2024
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant