Third time's a charm! After the two previous closed PRs for this issue, I think this functionality is finally ready to enter mainline. :)
This code is at it's core the same as the previous PR. The main C++ hsdis implementation is still the one @luhenry wrote, with some changes. As in the previous PR, I extracted the LLVM-specific part into a separate file. In addition to the last PR, I have also fixed a warning, and added a patch inspired by @nick-arm for getting past instructions unknown to LLVM. Thanks to the prototype written by @JornVernee (and his graciously providing me with a working version of LLVM build for Windows), this PR now has full support for LLVM on Windows (as well as Linux and macOS). Finally, I have cleaned up the integration in autoconf and Hsdis.gmk, and written a thorough guide in the README on how to build witth LLVM, on Windows and on saner platforms. :) I'm pretty sure this means that all comments and criticism in the previous PR has been addressed. Huge thanks to everyone who has helped me with getting this PR in place. I have a hard time remember a feature that has been so tricky to get in place, for something to seemingly simple... ------------- Commit messages: - Update description on runtime requirements for LLVM - Fix warning on Windows (as opposed to hiding it) - Add LLVM backend to hsdis. Portions of this patch contributed by luhenry, jvernee and ngasson. Changes: https://git.openjdk.java.net/jdk/pull/7531/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7531&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8253757 Stats: 495 lines in 4 files changed: 490 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jdk/pull/7531.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7531/head:pull/7531 PR: https://git.openjdk.java.net/jdk/pull/7531