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 Vorlicek <janvorli@microsoft.com>2016-06-22 21:00:20 +0300
committerJan Kotas <jkotas@microsoft.com>2016-06-22 21:00:20 +0300
commitd8ba6a0def20c2ef44dbfa8a0f53eb0513043001 (patch)
treec9f66e680b0311765c4ff71db91511079d05416c /src/Native/Runtime/amd64
parent0603b782dc0ab509b4f8c7fa3da1e8923fc24958 (diff)
Implement Linux hardware and software exception handling (#1417)
This change implements code manager for Linux, context manipulation and compiler changes necessary to enable exception handling. All calls to libunwind are disabled for now on non-OSX though, since our build system doesn't support specifying additional dynamic libraries, which prevents us from using the libunwind. Those pieces of code are under CAN_LINK_SHARED_LIBUNWIND ifdef so that the ifdef can easily be located and removed after we add the necessary support to the build system. On OSX, the unwind functionality is part of the compiler support libraries, so it works. I have verified that everything works with the libunwind though by manually invoking clang to link everything together and adding the necessary libraries to its command line. The exception handling test was passing with that.
Diffstat (limited to 'src/Native/Runtime/amd64')
-rw-r--r--src/Native/Runtime/amd64/ExceptionHandling.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/Native/Runtime/amd64/ExceptionHandling.S b/src/Native/Runtime/amd64/ExceptionHandling.S
index 41833f0f2..3e6a689b1 100644
--- a/src/Native/Runtime/amd64/ExceptionHandling.S
+++ b/src/Native/Runtime/amd64/ExceptionHandling.S
@@ -369,7 +369,7 @@ ALTERNATE_ENTRY RhpCallCatchFunclet2
LOCAL_LABEL(ExInfoLoop):
mov rdi, [rdi + OFFSETOF__ExInfo__m_pPrevExInfo] // rdi <- next ExInfo
- cmp rdi, rsi
+ cmp rdi, rcx
je LOCAL_LABEL(ExInfoLoopDone) // we're done if it's null
cmp rdi, rdx
jl LOCAL_LABEL(ExInfoLoop) // keep looping if it's lower than the new SP