x64 ABI: Be explicit about Gen:: namespace

This commit is contained in:
MerryMage 2016-04-02 09:52:39 +01:00
parent ec7c34ec92
commit 5e8d1e0289

View File

@ -29,28 +29,28 @@
#ifdef _WIN32 // 64-bit Windows - the really exotic calling convention
#define ABI_PARAM1 RCX
#define ABI_PARAM2 RDX
#define ABI_PARAM3 R8
#define ABI_PARAM4 R9
#define ABI_PARAM1 ::Gen::RCX
#define ABI_PARAM2 ::Gen::RDX
#define ABI_PARAM3 ::Gen::R8
#define ABI_PARAM4 ::Gen::R9
// xmm0-xmm15 use the upper 16 bits in the functions that push/pop registers.
#define ABI_ALL_CALLER_SAVED \
(BitSet32 { RAX, RCX, RDX, R8, R9, R10, R11, \
XMM0+16, XMM1+16, XMM2+16, XMM3+16, XMM4+16, XMM5+16 })
(BitSet32 { ::Gen::RAX, ::Gen::RCX, ::Gen::RDX, ::Gen::R8, ::Gen::R9, ::Gen::R10, ::Gen::R11, \
::Gen::XMM0+16, ::Gen::XMM1+16, ::Gen::XMM2+16, ::Gen::XMM3+16, ::Gen::XMM4+16, ::Gen::XMM5+16 })
#else //64-bit Unix / OS X
#define ABI_PARAM1 RDI
#define ABI_PARAM2 RSI
#define ABI_PARAM3 RDX
#define ABI_PARAM4 RCX
#define ABI_PARAM5 R8
#define ABI_PARAM6 R9
#define ABI_PARAM1 ::Gen::RDI
#define ABI_PARAM2 ::Gen::RSI
#define ABI_PARAM3 ::Gen::RDX
#define ABI_PARAM4 ::Gen::RCX
#define ABI_PARAM5 ::Gen::R8
#define ABI_PARAM6 ::Gen::R9
// TODO: Avoid pushing all 16 XMM registers when possible. Most functions we call probably
// don't actually clobber them.
#define ABI_ALL_CALLER_SAVED \
(BitSet32 { RAX, RCX, RDX, RDI, RSI, R8, R9, R10, R11 } | \
(BitSet32 { ::Gen::RAX, ::Gen::RCX, ::Gen::RDX, ::Gen::RDI, ::Gen::RSI, ::Gen::R8, ::Gen::R9, ::Gen::R10, ::Gen::R11 } | \
ABI_ALL_FPRS)
#endif // WIN32