diff options
author | badumbatish <tanghocle456@gmail.com> | 2024-07-18 07:34:43 -0700 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-19 15:32:06 +0100 |
commit | d3e1f59ba8333b3b7e5e01a604c3f842a9ce535f (patch) | |
tree | baaf5aa4e3f77c20942854312e000f3d32a42e6c /gcc | |
parent | a438e47eeddb5e56dbcb3387417f334a582b5764 (diff) | |
download | gcc-d3e1f59ba8333b3b7e5e01a604c3f842a9ce535f.zip gcc-d3e1f59ba8333b3b7e5e01a604c3f842a9ce535f.tar.gz gcc-d3e1f59ba8333b3b7e5e01a604c3f842a9ce535f.tar.bz2 |
gccrs: Minor fix to asm codegen pr
gcc/rust/ChangeLog:
* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
Use expr's is_simple_asm and is_inline_asm
(CompileAsm::asm_is_simple): removed
(CompileAsm::asm_is_inline): removed
* backend/rust-compile-asm.h: Add docs to ASM_TREE_ARRAY_LENGTH
* hir/tree/rust-hir-expr.h: Add is_simple_asm, is_inline_asm
and remove #include tree
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/backend/rust-compile-asm.cc | 17 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-asm.h | 10 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-expr.h | 12 |
3 files changed, 21 insertions, 18 deletions
diff --git a/gcc/rust/backend/rust-compile-asm.cc b/gcc/rust/backend/rust-compile-asm.cc index 8fd62dd..0dd4f67 100644 --- a/gcc/rust/backend/rust-compile-asm.cc +++ b/gcc/rust/backend/rust-compile-asm.cc @@ -36,9 +36,9 @@ CompileAsm::asm_build_expr (HIR::InlineAsm &expr) asm_construct_clobber_tree (expr), asm_construct_label_tree (expr)}); - ASM_BASIC_P (asm_expr) = CompileAsm::asm_is_simple (expr); + ASM_BASIC_P (asm_expr) = expr.is_simple_asm (); ASM_VOLATILE_P (asm_expr) = false; - ASM_INLINE_P (asm_expr) = CompileAsm::asm_is_inline (expr); + ASM_INLINE_P (asm_expr) = expr.is_inline_asm (); return asm_expr; } @@ -120,18 +120,5 @@ CompileAsm::asm_construct_label_tree (HIR::InlineAsm &expr) return NULL_TREE; } -bool -CompileAsm::asm_is_simple (HIR::InlineAsm &expr) -{ - // TODO: Check back later to determine how an InlineAsm is simple. - return true; -} - -bool -CompileAsm::asm_is_inline (HIR::InlineAsm &expr) -{ - // TODO: Check back later to determine how an InlineAsm is inline. - return true; -} } // namespace Compile } // namespace Rust diff --git a/gcc/rust/backend/rust-compile-asm.h b/gcc/rust/backend/rust-compile-asm.h index 15ffc70..8307d89 100644 --- a/gcc/rust/backend/rust-compile-asm.h +++ b/gcc/rust/backend/rust-compile-asm.h @@ -40,6 +40,14 @@ public: // static tree Compile (HIR::Expr *expr, Context *ctx); // RELEVANT MEMBER FUNCTIONS + + // The limit is 5 because it stands for the 5 things that the C version of + // build_asm_expr accepts: string, output, input, clobber and label. + // The function signature is + // + // tree + // build_asm_expr (location_t loc, tree string, tree outputs, tree inputs, + // tree clobbers, tree labels, bool simple, bool is_inline) static const int ASM_TREE_ARRAY_LENGTH = 5; static tree asm_build_expr (HIR::InlineAsm &); static tree asm_build_stmt (location_t, @@ -50,8 +58,6 @@ public: static tree asm_construct_inputs (HIR::InlineAsm &); static tree asm_construct_clobber_tree (HIR::InlineAsm &); static tree asm_construct_label_tree (HIR::InlineAsm &); - static bool asm_is_simple (HIR::InlineAsm &); - static bool asm_is_inline (HIR::InlineAsm &); CompileAsm (Context *ctx); diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h index 2b86d59..8a42c8b 100644 --- a/gcc/rust/hir/tree/rust-hir-expr.h +++ b/gcc/rust/hir/tree/rust-hir-expr.h @@ -25,7 +25,6 @@ #include "rust-hir-path.h" #include "rust-operators.h" #include "rust-expr.h" -#include "tree.h" namespace Rust { namespace HIR { @@ -4147,6 +4146,17 @@ public: std::set<AST::InlineAsmOption> get_options () { return options; } + bool is_simple_asm () + { + // TODO: Check back later to determine how an InlineAsm is simple. + return true; + } + + bool is_inline_asm () + { + // TODO: Check back later to determine how an InlineAsm is inline. + return true; + } InlineAsm (location_t locus, bool is_global_asm, std::vector<AST::InlineAsmTemplatePiece> template_, std::vector<AST::TupleTemplateStr> template_strs, |