amd64: Integer parameters in function calls on Windows.
authorJoel Brobecker <brobecker@gnat.com>
Fri, 29 Jan 2010 05:19:23 +0000 (05:19 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Fri, 29 Jan 2010 05:19:23 +0000 (05:19 +0000)
commitba581dc13b5e3ca555a49df501d5ac74287f504d
tree8264995f3071246435079ed1ef4e6118335caeff
parenta1504221ad15cfb08f22fd5548835d33f3d041de
amd64: Integer parameters in function calls on Windows.

gdb/ChangeLog:

        * i386-tdep.h (enum amd64_reg_class): New, moved here from
        amd64-tdep.c.
        (struct gdbarch_tdep): Add fields call_dummy_num_integer_regs,
        call_dummy_integer_regs, and classify.
        * amd64-tdep.h (amd64_classify): Add declaration.
        * amd64-tdep.c (amd64_dummy_call_integer_regs): New static constant.
        (amd64_reg_class): Delete, moved to i386-tdep.h.
        (amd64_classify): Make non-static.  Move declaration to amd64-tdep.h.
        Replace call to amd64_classify by call to tdep->classify.
        (amd64_push_arguments): Get the list of registers to use for
        passing integer parameters from the gdbarch tdep structure,
        rather than using a hardcoded one.  Replace calls to amd64_classify
        by calls to tdep->classify.
        (amd64_push_dummy_call): Get the register number used for
        the "hidden" argument from tdep->call_dummy_integer_regs.
        (amd64_init_abi): Initialize tdep->call_dummy_num_integer_regs
        and tdep->call_dummy_integer_regs.  Set tdep->classify.
        * amd64-windows-tdep.c: Add include of gdbtypes.h.
        (amd64_windows_dummy_call_integer_regs): New static global.
        (amd64_windows_classify): New function.
        (amd64_windows_init_abi): Initialize tdep->call_dummy_num_integer_regs
        tdep->call_dummy_integer_regs and tdep->classify.

gdb/testsuite/ChangeLog:

        * gdb.ada/call_pn: New testcase.
gdb/ChangeLog
gdb/amd64-tdep.c
gdb/amd64-tdep.h
gdb/amd64-windows-tdep.c
gdb/i386-tdep.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/call_pn.exp [new file with mode: 0644]
gdb/testsuite/gdb.ada/call_pn/foo.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/call_pn/pck.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/call_pn/pck.ads [new file with mode: 0644]