aboutsummaryrefslogtreecommitdiff
path: root/editors/libreoffice/files/patch-bridges_source_cpp__uno_gcc3__linux__aarch64_cpp2uno.cxx
blob: e51fe9edf04cc6eab17acaeb6b520383c4e7ad9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--- bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx.orig	2020-03-11 17:18:35 UTC
+++ bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx
@@ -321,9 +321,16 @@ extern "C" void vtableSlotCall(
     double fpr2, double fpr3, double fpr4, double fpr5, double fpr6,
     double fpr7, ...)
 {
-    register void * volatile indirectRet asm ("x8");
-    register sal_Int32 volatile functionIndex asm ("x9");
-    register sal_Int32 volatile vtableOffset asm ("x10");
+    void * volatile indirectRet;
+    sal_Int32 volatile functionIndex, vtableOffset;
+
+    asm volatile(
+        "mov %0, x8\n\t"
+        "mov %0, x9\n\t"
+        "mov %0, x10\n\t"
+        : "=r" (indirectRet), "=r" (functionIndex), "=r" (vtableOffset)
+        ::);
+
     va_list ap;
     va_start(ap, fpr7);
     assert(sizeof (va_list) == sizeof (aarch64_va_list));