PR 19051: support of inferior call with gnu vector support on ARM
authorYao Qi <yao.qi@linaro.org>
Fri, 13 Nov 2015 15:11:58 +0000 (15:11 +0000)
committerYao Qi <yao.qi@linaro.org>
Fri, 13 Nov 2015 15:11:58 +0000 (15:11 +0000)
commitc4312b1985f4f3c567546f82e7f26f9b8e914b6f
tree56f033ac0fa8aabefcf9b6e77a8ed9eb9d4da78f
parentb13c8ab2b93de7fe1adb1ecd307d9078ce299c6e
PR 19051: support of inferior call with gnu vector support on ARM

This patch teaches GDB to support gnu vector in inferior calls.  As a
result, fails in gdb.base/gnu_vector.exp are fixed.  The calling
convention of gnu vector isn't documented in the AAPCS, because it
is the GCC extension.  I checked the gcc/config/arm/arm.c, understand
how GCC pass arguments and return values, and do the same in GDB side.

The patch is tested with both hard float and soft float on arm-linux.

gdb:

2015-11-13  Yao Qi  <yao.qi@linaro.org>

PR tdep/19051
* arm-tdep.c (arm_type_align): Return the right alignment
value for vector.
(arm_vfp_cprc_sub_candidate): Return true for 64-bit and
128-bit vector types.
(arm_return_in_memory): Handel vector type.
gdb/ChangeLog
gdb/arm-tdep.c