diff dyncallback/dyncall_callback_arm64_masm.asm @ 371:451299d50c1a

- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster! - minor cleanups
author Tassilo Philipp
date Fri, 25 Dec 2020 18:07:39 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dyncallback/dyncall_callback_arm64_masm.asm	Fri Dec 25 18:07:39 2020 +0100
@@ -0,0 +1,39 @@
+ AREA .text, CODE, ARM64
+ EXPORT dcCallbackThunkEntry
+dcCallbackThunkEntry PROC
+ mov x10, sp
+ stp x29, x30, [sp, #-208 ]!
+ mov x29, sp
+ add x11, x29 , #16
+ stp x0, x1, [x11, #0 ]
+ stp x2, x3, [x11, #16]
+ stp x4, x5, [x11, #32]
+        stp x6, x7, [x11, #48]
+ stp d0, d1, [x11, #64]
+ stp d2, d3, [x11, #80]
+      stp d4, d5, [x11, #96]
+        stp d6, d7, [x11, #112]
+ eor x12, x12, x12
+ stp x10,x12,[x11, #128]
+ str x12, [x11, #144]
+ mov x0 , x9
+ add x1 , x29 , #16
+ add x2 , x29 , #184
+ ldr x3 , [x9 , #40]
+ ldr x11, [x9 , #32]
+ blr x11
+ and w0, w0, #255
+ cmp w0, 'f'
+ b.eq dcCall_arm64_retf
+ cmp w0, 'd'
+ b.eq dcCall_arm64_retf
+dcCall_arm64_reti
+ ldr x0, [x29, #184]
+ b dcCall_arm64_ret
+dcCall_arm64_retf
+ ldr d0, [x29, #184]
+dcCall_arm64_ret
+ ldp x29, x30, [sp], #208
+ ret
+ ENDP
+ END