Reimplement function calls on amd64-windows
authorJoel Brobecker <brobecker@gnat.com>
Tue, 24 Sep 2013 16:13:40 +0000 (16:13 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 24 Sep 2013 16:13:40 +0000 (16:13 +0000)
commit20c2e3e0a3f61aa9f1ee50618a969e0b51225be3
tree415bb4ad5fe00667c7b887fc4c4567dd4cd7521f
parentcd5f70ffce1ad9edaafb24f25cd0bb80e81935ae
Reimplement function calls on amd64-windows

This patch provides a standalone implementation of function calls
on amd64-windows, instead of providing some bits and pieces hooking
into the function call implementation meant for sysV (in amd64-tdep).
It makes better sense to do it this way, because the two ABIs are
actually very different; for instance, the concept of argument
classification, which is so central in the sysV ABI and drove the
the implementation in amd64-tdep, makes no sense for Windows. It
is therefore better for the Windows implementation to be completely
separate, rather than rely on adaptations of the sysV implementation.

gdb/ChangeLog:

        * amd64-tdep.c: #include "value.h"
        (amd64_windows_classify): Delete.
        (amd64_windows_passed_by_integer_register)
        (amd64_windows_passed_by_xmm_register)
        (amd64_windows_passed_by_pointer)
        (amd64_windows_adjust_args_passed_by_pointer)
        (amd64_windows_store_arg_in_reg, amd64_windows_push_arguments)
        (amd64_windows_push_dummy_call): New functions.
        (amd64_windows_init_abi): Remove setting of
        tdep->call_dummy_num_integer_regs, tdep->call_dummy_integer_regs,
        tdep->classify, tdep->memory_args_by_pointer and
        tdep->integer_param_regs_saved_in_caller_frame.
        Add call to set_gdbarch_push_dummy_call.
gdb/ChangeLog
gdb/amd64-windows-tdep.c