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

Document/Automate regeneration of TableGen code #1020

Closed
rth7680 opened this issue Oct 2, 2017 · 7 comments · Fixed by #1949
Closed

Document/Automate regeneration of TableGen code #1020

rth7680 opened this issue Oct 2, 2017 · 7 comments · Fixed by #1949

Comments

@rth7680
Copy link
Contributor

rth7680 commented Oct 2, 2017

Expanding on #967, there are more instructions to be added for ARMv8.3 and ARM SVE. Support for ARMv8.1 through v8.3 is upstream in LLVM.

It is not clear if there is a modified TableGen that you're using, or what.
Surely you cannot be modifying these files by hand.

@aquynh
Copy link
Collaborator

aquynh commented Oct 4, 2017

that process is kind of adhoc, i have to do that manually here & there, and it takes quite a lot of time.

@vlad-ivanov-name
Copy link

It would still help to share some of your process/notes. I was looking to add xtensa support, TD LLVM files can be found but it's hard to guess how exactly .inc files were generated.

@stsquad
Copy link

stsquad commented Aug 7, 2018

@aquynh I was following up on @rth7680 's desire to have SVE disassembly but discovered LLVM has moved ahead with definitions and enums so you can't just take one inc file and paste in the changes. I guess the real solution is some sort of automated tooling to do the imports but until the steps are documented I suspect this will be a pinch point to implementing new instructions based on the LLVM framework.

@aquynh
Copy link
Collaborator

aquynh commented Aug 7, 2018

Reason is that i created those files with many manual works, there was no 100% auto tools to do that.

Figuring out how to do that better, so syncing with Llvm is easier.

@stsquad
Copy link

stsquad commented Aug 7, 2018

@aquynh surely if the llvm created files are not in the form you want or need the correct approach is to tweak LLVM's tablegen or write your own tool to ingest and generate code from the source .td files?

Is this just due to friction between LLVM's internals requirements of the MC framework and what is needed to embed it in a library?

@XVilka
Copy link
Contributor

XVilka commented May 13, 2019

Are there any updates on this process by any chance?

@aquynh
Copy link
Collaborator

aquynh commented May 13, 2019

see the sync tools under https://github.com/aquynh/capstone/tree/next/suite/synctools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants