thanks Richard,
addressed your concern.
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0872cc4..7206c8a 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2238,6 +2238,16 @@ struct address_info {
enum rtx_code base_outer_code;
};
+/* This is used for passing args in emit_library_* functions */
+struct libcall_arg {
+ rtx value;
+ machine_mode mode;
+ bool unsigned_p;
+ constexpr
+ libcall_arg (rtx v, machine_mode m, bool u) : value(v), mode(m),
+ unsigned_p(u) {}
+};
+
/* This is used to bundle an rtx and a mode together so that the pair
can be used with the wi:: routines. If we ever put modes into rtx
integer constants, this should go away and then just pass an rtx
in. */
On 16/06/20 2:34 pm, Richard Sandiford wrote:
Thanks for doing this.
Kamlesh Kumar via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0872cc4..c023ff0 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2238,6 +2238,18 @@ struct address_info {
enum rtx_code base_outer_code;
};
+/* This is used for passing args in emit_library_* functions */
+typedef struct libcall_arg {
There's not really any need for a typedef here. We should just
use “libcall_arg” directly.
+ rtx value;
+ machine_mode mode;
+ bool unsigned_p;
+ libcall_arg (rtx v, machine_mode m, bool u) {
+ value = v;
+ mode = m;
+ unsigned_p = u;
+ }
Please use member initialisation for the fields instead.
Now that we're C++11, the constructor might as well be constexpr.
Thanks,
Richard
+} libcall_arg_t;
+
/* This is used to bundle an rtx and a mode together so that the pair
can be used with the wi:: routines. If we ever put modes into rtx
integer constants, this should go away and then just pass an rtx in. */