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