RISC-V: Fix unnamed arg alignment in registers.
authorJim Wilson <jimw@sifive.com>
Wed, 14 Nov 2018 22:54:10 +0000 (14:54 -0800)
committerJim Wilson <jimw@sifive.com>
Wed, 14 Nov 2018 22:54:10 +0000 (14:54 -0800)
commit8b2d40cbba8fbf98d6e031c7d8c7e2ac1baae2d9
treec97b2724e9c8d2867f49acd694dfe31cfc0f05c2
parentef2de9e7eb19cf6f56c8378df82cab30ff741fe0
RISC-V: Fix unnamed arg alignment in registers.

For riscv64-linux target, second half of fix for
FAIL: gdb.base/gnu_vector.exp: call add_various_floatvecs

Unnamed arguments with 2*XLEN alignment are passed in aligned register pairs.

gdb/
* riscv-tdep.c (struct riscv_arg_info): New field is_unnamed.
(riscv_call_arg_scalar_int): If unnamed arg with twice xlen alignment,
then increment next_regnum if odd.
(riscv_arg_location): New arg is_unnamed.  Set ainfo->is_unnamed.
(riscv_push_dummy_call): New local ftype.  Call check_typedef to set
function type.  Pass new arg to riscv_arg_location based on function
type.
(riscv_return_value): Pass new arg to riscv_arg_location.
gdb/ChangeLog
gdb/riscv-tdep.c