Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-10-01 17:31:20 +0300
committerJan Kotas <jkotas@microsoft.com>2016-10-01 17:31:20 +0300
commitb2f9dd370a321d5c38018b53401c81746fdd5133 (patch)
treead8c77aae94d2f989bd3fb62b0ad528e6177fd7f /src/Native/Runtime/amd64
parentde4dd52e9664a608d17fd86732e73d6ecc3ef962 (diff)
Reduce amount of assembly code for CastableObjectSupport
Rewrote some of it in C++ or C# [tfs-changeset: 1630452]
Diffstat (limited to 'src/Native/Runtime/amd64')
-rw-r--r--src/Native/Runtime/amd64/StubDispatch.S24
-rw-r--r--src/Native/Runtime/amd64/StubDispatch.asm30
2 files changed, 2 insertions, 52 deletions
diff --git a/src/Native/Runtime/amd64/StubDispatch.S b/src/Native/Runtime/amd64/StubDispatch.S
index 4bc5a22d2..2df605a35 100644
--- a/src/Native/Runtime/amd64/StubDispatch.S
+++ b/src/Native/Runtime/amd64/StubDispatch.S
@@ -6,21 +6,11 @@
#include <unixasmmacros.inc>
#include <AsmOffsets.inc> // generated by the build from AsmOffsets.cpp
-LEAF_ENTRY RhpGetTailCallTLSDispatchCell, _TEXT
- lea rax, RhpTailCallTLSDispatchCell
- ret
-LEAF_END RhpGetTailCallTLSDispatchCell, _TEXT
-
LEAF_ENTRY RhpTailCallTLSDispatchCell, _TEXT
// UNIXTODO: Implement this function
int 3
LEAF_END RhpTailCallTLSDispatchCell, _TEXT
-LEAF_ENTRY RhpGetCastableObjectDispatchHelper_TailCalled, _TEXT
- lea rax, RhpCastableObjectDispatchHelper_TailCalled
- ret
-LEAF_END RhpGetCastableObjectDispatchHelper_TailCalled, _TEXT
-
LEAF_ENTRY RhpCastableObjectDispatchHelper_TailCalled, _TEXT
// UNIXTODO: Implement this function
int 3
@@ -31,20 +21,6 @@ LEAF_ENTRY RhpCastableObjectDispatchHelper, _TEXT
int 3
LEAF_END RhpCastableObjectDispatchHelper, _TEXT
-LEAF_ENTRY RhpGetCastableObjectDispatchHelper, _TEXT
- lea rax, RhpCastableObjectDispatchHelper
- ret
-LEAF_END RhpGetCastableObjectDispatchHelper, _TEXT
-
-LEAF_ENTRY RhpGetCacheForCastableObject, _TEXT
- mov rax, [rdi+8]
- ret
-LEAF_END RhpGetCacheForCastableObject, _TEXT
-
-LEAF_ENTRY RhpSetCacheForCastableObject, _TEXT
- lea rdi, [rdi+8]
- jmp RhpCheckedAssignRefESI // Is this the correct form for tailcall?
-LEAF_END RhpSetCacheForCastableObject, _TEXT
// Macro that generates a stub consuming a cache with the given number of entries.
.macro DEFINE_INTERFACE_DISPATCH_STUB entries
diff --git a/src/Native/Runtime/amd64/StubDispatch.asm b/src/Native/Runtime/amd64/StubDispatch.asm
index ad6c29096..c718c6b20 100644
--- a/src/Native/Runtime/amd64/StubDispatch.asm
+++ b/src/Native/Runtime/amd64/StubDispatch.asm
@@ -11,19 +11,13 @@ ifdef FEATURE_CACHED_INTERFACE_DISPATCH
EXTERN RhpCidResolve : PROC
EXTERN RhpUniversalTransition_DebugStepTailCall : PROC
EXTERN RhpCastableObjectResolve : PROC
-EXTERN RhpCheckedAssignRefEDX : PROC
EXTERN t_TLS_DispatchCell:QWORD
EXTERN _tls_index:DWORD
-LEAF_ENTRY RhpGetTailCallTLSDispatchCell, _TEXT
- lea rax, RhpTailCallTLSDispatchCell
- ret
-LEAF_END RhpGetTailCallTLSDispatchCell, _TEXT
-
LEAF_ENTRY RhpTailCallTLSDispatchCell, _TEXT
;; Load the dispatch cell out of the TLS variable
- mov rax, gs:[88]
+ mov rax, gs:[_tls_array]
mov r10d, _tls_index
mov r10, [rax + r10 * 8]
mov eax, SECTIONREL t_TLS_DispatchCell
@@ -35,15 +29,9 @@ LEAF_ENTRY RhpTailCallTLSDispatchCell, _TEXT
TAILJMP_RAX
LEAF_END RhpTailCallTLSDispatchCell, _TEXT
-
-LEAF_ENTRY RhpGetCastableObjectDispatchHelper_TailCalled, _TEXT
- lea rax, RhpCastableObjectDispatchHelper_TailCalled
- ret
-LEAF_END RhpGetCastableObjectDispatchHelper_TailCalled, _TEXT
-
LEAF_ENTRY RhpCastableObjectDispatchHelper_TailCalled, _TEXT
;; Load the dispatch cell out of the TLS variable
- mov rax, gs:[88]
+ mov rax, gs:[_tls_array]
mov r10d, _tls_index
mov r10, [rax + r10 * 8]
mov eax, SECTIONREL t_TLS_DispatchCell
@@ -65,20 +53,6 @@ LEAF_ENTRY RhpCastableObjectDispatchHelper, _TEXT
jmp RhpUniversalTransition_DebugStepTailCall
LEAF_END RhpCastableObjectDispatchHelper, _TEXT
-LEAF_ENTRY RhpGetCastableObjectDispatchHelper, _TEXT
- lea rax, RhpCastableObjectDispatchHelper
- ret
-LEAF_END RhpGetCastableObjectDispatchHelper, _TEXT
-
-LEAF_ENTRY RhpGetCacheForCastableObject, _TEXT
- mov rax, [rcx+8]
- ret
-LEAF_END RhpGetCacheForCastableObject, _TEXT
-
-LEAF_ENTRY RhpSetCacheForCastableObject, _TEXT
- lea rcx, [rcx+8]
- jmp RhpCheckedAssignRefEDX ;; Is this the correct form for tailcall?
-LEAF_END RhpSetCacheForCastableObject, _TEXT
;; Macro that generates code to check a single cache entry.
CHECK_CACHE_ENTRY macro entry