Fix argument passing for call
authorDenis Chertykov <chertykov@gmail.com>
Sat, 5 Mar 2016 12:17:15 +0000 (15:17 +0300)
committerDenis Chertykov <chertykov@gmail.com>
Sat, 5 Mar 2016 12:17:15 +0000 (15:17 +0300)
commitcb86f3880e61c79e59b9225e79c3544a1fcd8005
treef4919e65da77ec69c2c63be966291ba49002355f
parent57f9b1448fb0de3313d1525707278131bfd8eec4
Fix argument passing for call

When calling function with argument of size more than 8 bytes fails with
an error "That operation is not available on integers of more than 8 bytes.".
avr-gdb considers only 8 bytes (sizeof(long long)) in case of passing the
argument in registers. When the argument is of size more than 8 byte
then the utility function to extract bytes failed with the above error.

    gdb/
* avr-tdep.c (AVR_LAST_ARG_REGNUM): Define.
        (avr_push_dummy_call): Correct last needed argument register.
        Write MSB of argument into register and subsequent bytes into
        other registers in decreasing order.
gdb/ChangeLog
gdb/avr-tdep.c