nss: upgrade to release 3.73
[LibreOffice.git] / bridges / source / cpp_uno / msvc_win32_arm64 / vtableslotcall.S
blobcda427c5c207fa55dfb3d8cced17a856387feca2
1 /* -*- tab-width: 4; indent-tabs-mode: nil; fill-column: 100 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
20     OPT 2   // disable listing
21 // macros to add unwind information
22 #include "ksarm64.h"
23     OPT 1   // re-enable listing
25     EXPORT  vtableSlotCall
26     IMPORT  vtableCall
28     TEXTAREA, ALIGN=2
30     NESTED_ENTRY vtableSlotCall
32         PROLOG_SAVE_REG_PAIR   fp, lr, #-192!
33         PROLOG_SAVE_REG_PAIR   x19, x20, #16
35         add   x11, sp, 192
36         add   x20, sp, 128
37         add   x19, sp, 64
39         stp x11, x11, [sp, 32]
40         str x11, [sp, 48]
41         stp wzr, wzr, [sp, 56]
42         stp x0, x1, [sp, 64]
43         mov w0, w9
44         mov w1, w10
45         stp x2, x3, [sp, 80]
46         mov x3, x20
47         mov x2, x19
48         stp x4, x5, [sp, 96]
49         mov x5, x8
50         mov x4, x11
51         stp x6, x7, [sp, 112]
52         stp d0, d1, [sp, 128]
53         stp d2, d3, [sp, 144]
54         stp d4, d5, [sp, 160]
55         stp d6, d7, [sp, 176]
57         bl vtableCall
59         ldp x0, x1, [x19]
60         ldp d0, d1, [x20]
61         ldp d2, d3, [x20, #16]
63         EPILOG_STACK_RESTORE
64         EPILOG_RESTORE_REG_PAIR   x19, x20, #16
65         EPILOG_RESTORE_REG_PAIR   fp, lr, #192!
66         EPILOG_RETURN
68         NESTED_END vtableSlotCall
70     END
72 /* vim:set shiftwidth=4 softtabstop=4 expandtab */