diff options
author | Jan Kotas <jkotas@microsoft.com> | 2016-10-01 17:31:20 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2016-10-01 17:31:20 +0300 |
commit | b2f9dd370a321d5c38018b53401c81746fdd5133 (patch) | |
tree | ad8c77aae94d2f989bd3fb62b0ad528e6177fd7f /src/Native/Runtime/amd64 | |
parent | de4dd52e9664a608d17fd86732e73d6ecc3ef962 (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.S | 24 | ||||
-rw-r--r-- | src/Native/Runtime/amd64/StubDispatch.asm | 30 |
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 |