diff options
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx index 915d45b2fc54..3ef80543ac76 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_X86_64_ABI_HXX -#define INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_X86_64_ABI_HXX +#pragma once // This is an implementation of the x86-64 ABI as described in 'System V // Application Binary Interface, AMD64 Architecture Processor Supplement' @@ -42,7 +41,7 @@ const sal_uInt32 MAX_SSE_REGS = 8; Return false iff parameter should be passed in memory. */ -bool examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE ) throw (); +bool examine_argument( typelib_TypeDescriptionReference *pTypeRef, int &nUsedGPR, int &nUsedSSE ) noexcept; /** Does function that returns this type use a hidden parameter, or registers? @@ -50,12 +49,19 @@ bool examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInRetur pointer to a structure allocated by the caller), or in registers (rax, rdx for the integers, xmm0, xmm1 for the floating point numbers). */ -bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef ) throw (); +bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef ) noexcept; -void fill_struct( typelib_TypeDescriptionReference *pTypeRef, const sal_uInt64* pGPR, const double* pSSE, void *pStruct ) throw (); +enum class ReturnKind { + Memory, + RegistersGeneral, + RegistersFpInt, + RegistersIntFp +}; -} // namespace x86_64 +ReturnKind getReturnKind(typelib_TypeDescriptionReference * type) noexcept; + +void fill_struct( typelib_TypeDescriptionReference *pTypeRef, const sal_uInt64* pGPR, const double* pSSE, void *pStruct ) noexcept; -#endif // INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_X86_64_ABI_HXX +} // namespace x86_64 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |