This is first patch where I have just defined a struct libcall_arg_t which contains three member rtx, machine_mode and a boolean unsigned_p and will be used in passing args in emit_library_[call/value] functions.
Once this patch is approved then i will create second patch in which arg type libcall_arg_t will be propogated on all instances needed. Then final patch which will fix the actual problem reported in PR88877. ChangeLog Entry: 2020-06-13 Kamlesh Kumar <kamleshbha...@gmail.com> * rtl.h (libcall_arg_t): Defined. --- 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 { + rtx value; + machine_mode mode; + bool unsigned_p; + libcall_arg (rtx v, machine_mode m, bool u) { + value = v; + mode = m; + unsigned_p = u; + } +} 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. */ -- 2.7.4