1*b5da552cSAndrew Rist /**************************************************************
2*b5da552cSAndrew Rist  *
3*b5da552cSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*b5da552cSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*b5da552cSAndrew Rist  * distributed with this work for additional information
6*b5da552cSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*b5da552cSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*b5da552cSAndrew Rist  * "License"); you may not use this file except in compliance
9*b5da552cSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*b5da552cSAndrew Rist  *
11*b5da552cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*b5da552cSAndrew Rist  *
13*b5da552cSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*b5da552cSAndrew Rist  * software distributed under the License is distributed on an
15*b5da552cSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b5da552cSAndrew Rist  * KIND, either express or implied.  See the License for the
17*b5da552cSAndrew Rist  * specific language governing permissions and limitations
18*b5da552cSAndrew Rist  * under the License.
19*b5da552cSAndrew Rist  *
20*b5da552cSAndrew Rist  *************************************************************/
21*b5da552cSAndrew Rist 
22cdf0e10cSrcweir /* ia64 support code for OpenOffice C++/UNO bridging
23cdf0e10cSrcweir  *
24cdf0e10cSrcweir  * Caolan McNamara <caolanm@redhat.com>
25cdf0e10cSrcweir  */
26cdf0e10cSrcweir 	.text
27cdf0e10cSrcweir 	.align 16
28cdf0e10cSrcweir 	.global privateSnippetExecutor#
29cdf0e10cSrcweir 	.proc privateSnippetExecutor#
30cdf0e10cSrcweir privateSnippetExecutor:
31cdf0e10cSrcweir 	adds r15 = 8, gp	/* r15 now points to real gp value*/
32cdf0e10cSrcweir 	;;
33cdf0e10cSrcweir 	ld8 r14 = [gp]		/* load nOffsetAndIndex into a handy register */
34cdf0e10cSrcweir 	ld8 gp = [r15]		/* load real gp value into gp */
35cdf0e10cSrcweir 	;;
36cdf0e10cSrcweir 	/* store the address where large structs are "returned" into a handy register */
37cdf0e10cSrcweir 	mov r15 = r8
38cdf0e10cSrcweir 	;;
39cdf0e10cSrcweir 	br cpp_vtable_call#	/* call cpp_vtable_call which'll suck out r14 */
40cdf0e10cSrcweir 	;;
41cdf0e10cSrcweir 	.endp privateSnippetExecutor#
42