You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
More subtle differences between GCC and LLVM inline assembly might be
an issue in the future, but this should handle or safely reject most
usages.
gcc/rust/ChangeLog:
* ast/rust-expr.h (LlvmInlineAsm::LlvmInlineAsm): Initialize
more member variables.
(LlvmInlineAsm::get_dialect): Make function const qualified.
(LlvmInlineAsm::is_stack_aligned): Likewise.
(LlvmInlineAsm::is_volatile): Likewise.
* backend/rust-compile-asm.cc
(CompileLlvmAsm::construct_operands): Handle llvm-specific "=*m"
constraint.
(CompileLlvmAsm::tree_codegen_asm): Handle change from multiple
template strings to a single template string.
* hir/rust-ast-lower-expr.cc (convert_template_str): New
function.
(check_llvm_asm_support): Remove unnecessary parameters and
expand the set of allowed llvm_asm usages.
(ASTLoweringExpr::visit (LlvmInlineAsm)): Adjust lowering.
* hir/tree/rust-hir-expr.h (LlvmInlineAsm::templates): Remove
member variable and replace with...
(LlvmInlineAsm::template_str): ...new member variable.
(LlvmInlineAsm::LlvmInlineAsm): Handle member variable changes.
(LlvmInlineAsm::get_templates): Remove member function and
replace with...
(LlvmInlineAsm::get_template): ...new member function.
* hir/tree/rust-hir-visitor.cc
(DefaultHIRVisitor::walk (LlvmInlineAsm)): Visit outer
attributes.
* typecheck/rust-hir-type-check-expr.cc
(TypeCheckExpr::visit (LlvmInlineAsm)): Adjust comments.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
0 commit comments