S390: Restructure s390_push_dummy_call
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Mon, 27 Apr 2015 09:38:46 +0000 (11:38 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 27 Apr 2015 09:38:46 +0000 (11:38 +0200)
commit80f75320167acb66486124c6b03e715596e9c789
tree4a3094f25b9d52ee64446ef5f9579cebe455581d
parent6dbc9c045741c27435b9b23246c2113221b26c2f
S390: Restructure s390_push_dummy_call

Simplify the structure of s390_push_dummy_call and its various helper
functions.  This reduces the code and makes it easier to extend.  The
new code should be functionally equivalent to the old one, except that
copies created by the caller are now always aligned on an 8-byte
boundary.

gdb/ChangeLog:

* s390-linux-tdep.c
(is_float_singleton): Remove function.  Move the "singleton" part
of the logic...
(s390_effective_inner_type): ...here.  New function.
(is_float_like): Remove function.  Inline its logic...
(s390_function_arg_float): ...here.
(is_pointer_like, is_integer_like, is_struct_like): Remove
functions.  Inline their logic...
(s390_function_arg_integer): ...here.
(s390_function_arg_pass_by_reference): Remove function.
(extend_simple_arg): Remove function.
(alignment_of): Remove function.
(struct s390_arg_state): New structure.
(s390_handle_arg): New function.
(s390_push_dummy_call): Move parameter placement logic to the new
function s390_handle_arg.  Call it for calculating the stack area
sizes first, and again for actually writing the parameters.
gdb/ChangeLog
gdb/s390-linux-tdep.c