diff options
author | badumbatish <tanghocle456@gmail.com> | 2024-08-01 16:22:32 -0700 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-19 15:32:07 +0100 |
commit | 0bad7500da4f08d03e668cbba8935a9f0803664c (patch) | |
tree | 261acf12f9b58a3da0a9d85264c7320ef76594c8 /gcc/rust/backend/rust-compile-asm.cc | |
parent | 29c6aba1d8dc925a0f43b68928004344ea212987 (diff) | |
download | gcc-0bad7500da4f08d03e668cbba8935a9f0803664c.zip gcc-0bad7500da4f08d03e668cbba8935a9f0803664c.tar.gz gcc-0bad7500da4f08d03e668cbba8935a9f0803664c.tar.bz2 |
gccrs: Perform lowering hir output operand to tree
gcc/rust/ChangeLog:
* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
Add debug comment
(CompileAsm::asm_construct_outputs):
Perform lowering hir output operand to tree
Diffstat (limited to 'gcc/rust/backend/rust-compile-asm.cc')
-rw-r--r-- | gcc/rust/backend/rust-compile-asm.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/rust/backend/rust-compile-asm.cc b/gcc/rust/backend/rust-compile-asm.cc index 32ad84e..d179c35 100644 --- a/gcc/rust/backend/rust-compile-asm.cc +++ b/gcc/rust/backend/rust-compile-asm.cc @@ -26,6 +26,7 @@ CompileAsm::asm_build_expr (HIR::InlineAsm &expr) ASM_BASIC_P (asm_expr) = expr.is_simple_asm (); ASM_VOLATILE_P (asm_expr) = false; ASM_INLINE_P (asm_expr) = expr.is_inline_asm (); + /*Backend::debug (asm_expr);*/ return asm_expr; } @@ -91,8 +92,17 @@ CompileAsm::asm_construct_outputs (HIR::InlineAsm &expr) == AST::InlineAsmOperand::RegisterType::Out) { auto out = output.get_out (); + tree out_tree = CompileExpr::Compile (out.expr.get (), this->ctx); - Backend::debug (out_tree); + // expects a tree list + // TODO: This assumes that the output is a register + std::string expr_name = "=r"; + auto name = build_string (expr_name.size () + 1, expr_name.c_str ()); + head + = chainon (head, build_tree_list (build_tree_list (NULL_TREE, name), + out_tree)); + + /*Backend::debug (head);*/ /*head = chainon (head, out_tree);*/ } } |