summaryrefslogtreecommitdiff
path: root/src/pal/inc/unixasmmacrosarm.inc
diff options
context:
space:
mode:
authorManu <manu-silicon@users.noreply.github.com>2016-03-22 17:36:44 +0900
committerManu <manu-silicon@users.noreply.github.com>2016-03-23 08:42:09 +0900
commit7d69a10cff9272c84b3211fe366f7a280781f18b (patch)
treeeec1906051234db5a5795f5210c46f461fb33264 /src/pal/inc/unixasmmacrosarm.inc
parent21cbca6a3165ac9f3e2a3c1753ac6ee023aa9443 (diff)
downloadcoreclr-7d69a10cff9272c84b3211fe366f7a280781f18b.tar.gz
coreclr-7d69a10cff9272c84b3211fe366f7a280781f18b.tar.bz2
coreclr-7d69a10cff9272c84b3211fe366f7a280781f18b.zip
Implement GenericPInvokeCalliHelper on ARM
Add assemlby implementation for pinvoke stubs on ARM by porting the Windows ARM code to Linux ARM assembly.
Diffstat (limited to 'src/pal/inc/unixasmmacrosarm.inc')
-rw-r--r--src/pal/inc/unixasmmacrosarm.inc28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/pal/inc/unixasmmacrosarm.inc b/src/pal/inc/unixasmmacrosarm.inc
index aa515bc482..01b8f3aaba 100644
--- a/src/pal/inc/unixasmmacrosarm.inc
+++ b/src/pal/inc/unixasmmacrosarm.inc
@@ -2,6 +2,14 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+.macro LEAF_ENTRY Name, Section
+ .thumb_func
+ .global C_FUNC(\Name)
+ .type \Name, %function
+C_FUNC(\Name):
+ .fnstart
+.endm
+
.macro NESTED_ENTRY Name, Section, Handler
LEAF_ENTRY \Name, \Section
.ifnc \Handler, NoHandler
@@ -19,14 +27,6 @@
C_FUNC(\Name):
.endm
-.macro LEAF_ENTRY Name, Section
- .thumb_func
- .global C_FUNC(\Name)
- .type \Name, %function
-C_FUNC(\Name):
- .fnstart
-.endm
-
.macro LEAF_END_MARKED Name, Section
.thumb_func
.global C_FUNC(\Name\()_End)
@@ -204,10 +204,22 @@ C_FUNC(\Name\()_End):
mov \Register, sp
.endm
+.macro EPILOG_STACK_FREE Size
+ add sp, sp, \Size
+.endm
+
.macro EPILOG_STACK_RESTORE Register
mov sp, \Register
.endm
+.macro EPILOG_BRANCH Target
+ b \Target
+.endm
+
+.macro EPILOG_BRANCH_REG reg
+ bx \reg
+.endm
+
.macro EPILOG_POP RegList
pop_nonvol_reg "\RegList"
.endm