Refactor Span<T> to ease implementation of JIT intrinsics (dotnet/coreclr#8497)
authorJan Kotas <jkotas@microsoft.com>
Wed, 7 Dec 2016 23:16:57 +0000 (15:16 -0800)
committerGitHub <noreply@github.com>
Wed, 7 Dec 2016 23:16:57 +0000 (15:16 -0800)
commit4025e6fd7577210412fb2ec36299523e98061486
tree290b67b9d6c66e36804e5cfcfa66c7a1e18cddac
parent09a349afcfddca63232234b4959f85647585fa1d
Refactor Span<T> to ease implementation of JIT intrinsics (dotnet/coreclr#8497)

- Introduce internal ByReference<T> type for byref fields and change Span to use it
- Generalize handling of byref-like types in the type loader
- Make DangerousGetPinnableReference public while I was on it

Commit migrated from https://github.com/dotnet/coreclr/commit/64c2ad17351ac5bc0bb042216bfcbf1c5136d7cf
15 files changed:
src/coreclr/src/inc/dacvars.h
src/coreclr/src/mscorlib/model.xml
src/coreclr/src/mscorlib/mscorlib.shared.sources.props
src/coreclr/src/mscorlib/src/System/ByReference.cs [new file with mode: 0644]
src/coreclr/src/mscorlib/src/System/ReadOnlySpan.cs
src/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/Unsafe.cs
src/coreclr/src/mscorlib/src/System/Span.cs
src/coreclr/src/vm/appdomain.cpp
src/coreclr/src/vm/classnames.h
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/methodtablebuilder.cpp
src/coreclr/src/vm/methodtablebuilder.h
src/coreclr/src/vm/mscorlib.h
src/coreclr/src/vm/vars.cpp
src/coreclr/src/vm/vars.hpp