Sfoglia il codice sorgente

* implement RawThunk for Aarch64

git-svn-id: trunk@42991 -
svenbarth 5 anni fa
parent
commit
492f1ac4be
1 ha cambiato i file con 20 aggiunte e 0 eliminazioni
  1. 20 0
      packages/rtl-objpas/src/inc/rtti.pp

+ 20 - 0
packages/rtl-objpas/src/inc/rtti.pp

@@ -929,6 +929,26 @@ asm
   .long RawThunkPlaceholderContext
 RawThunkEnd:
 end;
+{$elseif defined(cpuaarch64)}
+const
+  RawThunkPlaceholderProc = $8765876587658765;
+  RawThunkPlaceholderContext = $4321432143214321;
+
+type
+  TRawThunkProc = PtrUInt;
+  TRawThunkContext = PtrUInt;
+
+procedure RawThunk; assembler; nostackframe;
+asm
+  ldr x16, .LProc
+  ldr x0, .LContext
+  br x16
+.LProc:
+  .quad RawThunkPlaceholderProc
+.LContext:
+  .quad RawThunkPlaceholderContext
+RawThunkEnd:
+end;
 {$elseif defined(cpum68k)}
 const
   RawThunkPlaceholderProc = $87658765;