1*b146d3b3SDamjan Jovanovic /**************************************************************
2*b146d3b3SDamjan Jovanovic  *
3*b146d3b3SDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*b146d3b3SDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*b146d3b3SDamjan Jovanovic  * distributed with this work for additional information
6*b146d3b3SDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*b146d3b3SDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*b146d3b3SDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*b146d3b3SDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*b146d3b3SDamjan Jovanovic  *
11*b146d3b3SDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*b146d3b3SDamjan Jovanovic  *
13*b146d3b3SDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*b146d3b3SDamjan Jovanovic  * software distributed under the License is distributed on an
15*b146d3b3SDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b146d3b3SDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*b146d3b3SDamjan Jovanovic  * specific language governing permissions and limitations
18*b146d3b3SDamjan Jovanovic  * under the License.
19*b146d3b3SDamjan Jovanovic  *
20*b146d3b3SDamjan Jovanovic  *************************************************************/
21*b146d3b3SDamjan Jovanovic 
22*b146d3b3SDamjan Jovanovic 
23*b146d3b3SDamjan Jovanovic 
24*b146d3b3SDamjan Jovanovic #ifndef _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
25*b146d3b3SDamjan Jovanovic #define _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
26*b146d3b3SDamjan Jovanovic 
27*b146d3b3SDamjan Jovanovic // This is an implementation of the Win64 (x64) ABI.
28*b146d3b3SDamjan Jovanovic 
29*b146d3b3SDamjan Jovanovic #include <typelib/typedescription.hxx>
30*b146d3b3SDamjan Jovanovic 
31*b146d3b3SDamjan Jovanovic namespace x86_64
32*b146d3b3SDamjan Jovanovic {
33*b146d3b3SDamjan Jovanovic 
34*b146d3b3SDamjan Jovanovic const sal_uInt32 MAX_REGS = 4;
35*b146d3b3SDamjan Jovanovic 
36*b146d3b3SDamjan Jovanovic /** Does function that returns this type use a hidden parameter, or registers?
37*b146d3b3SDamjan Jovanovic 
38*b146d3b3SDamjan Jovanovic  The value can be returned either in a hidden 1st parameter (which is a
39*b146d3b3SDamjan Jovanovic  pointer to a structure allocated by the caller), or in registers (rax, rdx
40*b146d3b3SDamjan Jovanovic  for the integers, xmm0, xmm1 for the floating point numbers).
41*b146d3b3SDamjan Jovanovic */
42*b146d3b3SDamjan Jovanovic bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef );
43*b146d3b3SDamjan Jovanovic 
44*b146d3b3SDamjan Jovanovic } // namespace x86_64
45*b146d3b3SDamjan Jovanovic 
46*b146d3b3SDamjan Jovanovic #endif // _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
47