Mohamed Shafi <shafi...@gmail.com> writes: > After analyzing the issue i find that this might be a bug. I just want > to confirm if that is the case or not. > In order to reproduce i think the target should have the following properties > a. Only 2 32bit registers available as argument registers. > b. Second 64bit value will be pushed in stack > c. ACCUMULATE_OUTGOING_ARGS is set > d. STRICT_ALIGNMENT is set > e. PARM_BOUNDARY is 32
What is BIGGEST_ALIGNMENT? Does a 64-bit value require a 64-bit alignment? If not, perhaps BIGGEST_ALIGNMENT should be 32. If BIGGEST_ALIGNMENT must be 64 for some reason, but in this specific case you have a DImode value which does not require 64-bit alignment, then I agree that there is a case missing from the compiler. Unfortunately it looks like it may be painful to fix, as the proper fix will entail using TYPE_ALIGN of the type, but the type is not currently available in emit_library_call_value Ian