Conversation
adds an option (on by default) to do table deserialization at compile time (for environments with limited stack space), removes exception throwing, gets rid of stl features that require rtti this should allow for a more smooth transition in using this in kernel-mode/baremetal environments, as long as CRT implementation is subsidized, and the std:: exception related functions are overriden if /NODEFAULTLIB, also improves compatibility with llvm-msvc, adds some missing things into generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds C++ backend for the decoder, encoder and formatters.
Decoder (decoder.cpp, handlers.cpp)
Encoder (encoder.cpp, encoder_methods.cpp, encoder_handlers.cpp)
Instruction API (generated via CppInstructionGenerator.cs)
Formatters
Catch2 tests for decoder/encoder/formatter
Might be a bit too strict since it requires C++23 for std::format, could theoretically scale it down to C++17/C++20 by using fmt instead. I think the generator implementation should be mostly consistent. Naming is also mostly consistent. The high-level assembler library is missing support for some instructions but that's not critical and I might add it later on.