Variadic arguments and x64

后端 未结 1 1701
盖世英雄少女心
盖世英雄少女心 2020-12-11 20:49

How do the va_arg \\ va_start \\ va_list \\ va_end macros work under the hood in x64?

The calling convention in i3

相关标签:
1条回答
  • 2020-12-11 21:10

    This is defined by the ABI for the architecture. On the SysV ABI for amd64 (so pretty much everything other than Windows), the ABI document says (page 56 and forward):

    The prologue of a function taking a variable argument list and known to call the macro va_start is expected to save the argument registers to the register save area.

    Then va_list is a struct with a pointer to the register save area and the place on the stack where some additional arguments could have been passed (not all function arguments fit in registers).

    0 讨论(0)
提交回复
热议问题