platform/upstream/dotnet/runtime.git
6 years agoUpdate PgoData to master-20180621-0050 (dotnet/coreclr#18587)
dotnet-maestro-bot [Thu, 21 Jun 2018 12:34:29 +0000 (05:34 -0700)]
Update PgoData to master-20180621-0050 (dotnet/coreclr#18587)

Commit migrated from https://github.com/dotnet/coreclr/commit/572416a6e1faa1d76c9cdddec13f1e5b6741f5ed

6 years agoUndo accidental 2.0 -> 2.1 renames (dotnet/corertdotnet/coreclr#5981)
Jan Kotas [Thu, 21 Jun 2018 03:38:07 +0000 (20:38 -0700)]
Undo accidental 2.0 -> 2.1 renames (dotnet/corertdotnet/coreclr#5981)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/3e87306d8e8b909aaa26582fa11cb30e52e9431e

6 years agoRev netcoreapp2.0 to netcoreapp2.1 (dotnet/corertdotnet/coreclr#5974)
Adeel Mujahid [Thu, 21 Jun 2018 00:06:28 +0000 (03:06 +0300)]
Rev netcoreapp2.0 to netcoreapp2.1 (dotnet/corertdotnet/coreclr#5974)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/addb9956f1786bb8b6bcb0daf509a5d9c9b98347

6 years agoUpdate CoreClr, CoreFx to preview1-26621-01, preview1-26621-01, respectively (dotnet...
dotnet-maestro-bot [Thu, 21 Jun 2018 03:38:51 +0000 (20:38 -0700)]
Update CoreClr, CoreFx to preview1-26621-01, preview1-26621-01, respectively (dotnet/coreclr#18584)

Commit migrated from https://github.com/dotnet/coreclr/commit/88cd3828a5eee6f7a02935c7afcf240634dfa29a

6 years agoMerge pull request dotnet/coreclr#18552 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Wed, 20 Jun 2018 23:59:20 +0000 (16:59 -0700)]
Merge pull request dotnet/coreclr#18552 from dotnet-maestro-bot/master-UpdateDependencies

Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02920-01, preview1-26620-04, preview1-26620-03, master-20180620-0039, respectively (master)

Commit migrated from https://github.com/dotnet/coreclr/commit/c58c7cf72fce548f74d73f1f0f53be7b81c53119

6 years agoFixed method name in comment (dotnet/coreclr#18571)
Alfred Myers [Wed, 20 Jun 2018 23:31:00 +0000 (20:31 -0300)]
Fixed method name in comment (dotnet/coreclr#18571)

Commit migrated from https://github.com/dotnet/coreclr/commit/da40cb1ca8779566ca53ed6bd2fa67a926b29b38

6 years agoMerge pull request dotnet/coreclr#18573 from CarolEidt/ExplicitLayoutTest
Carol Eidt [Wed, 20 Jun 2018 23:26:58 +0000 (16:26 -0700)]
Merge pull request dotnet/coreclr#18573 from CarolEidt/ExplicitLayoutTest

Add another test for dotnet/coreclr#17971

Commit migrated from https://github.com/dotnet/coreclr/commit/77bed31fc1a14fe7ef32a771cf53a3c5c496286b

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02920-01, preview1-26620...
dotnet-maestro-bot [Wed, 20 Jun 2018 22:03:51 +0000 (15:03 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02920-01, preview1-26620-04, preview1-26620-03, master-20180620-0039, respectively

Commit migrated from https://github.com/dotnet/coreclr/commit/7fc59ab9fcfd4e9c8693ed3c42cb0b87c29ace9a

6 years agoAn UnusedValue still requires a target reg (dotnet/coreclr#18561)
Carol Eidt [Wed, 20 Jun 2018 21:55:12 +0000 (14:55 -0700)]
An UnusedValue still requires a target reg (dotnet/coreclr#18561)

* An UnusedValue still requires a target reg

The BuildSimple method wasn't creating a def for an unused value. Although (in this case) the code is dead, the code generator must still be able to generate code for it.

* Add test case for dotnet/coreclr#18295 to arm/arm64 tests.lst

Commit migrated from https://github.com/dotnet/coreclr/commit/0c95349ef5ee360dc92a51632e7a4210cb4053da

6 years agoadded concurrent access detection to Remove() (dotnet/coreclr#18524)
Marco Rossignoli [Wed, 20 Jun 2018 19:19:06 +0000 (21:19 +0200)]
added concurrent access detection to Remove() (dotnet/coreclr#18524)

Commit migrated from https://github.com/dotnet/coreclr/commit/1c0c5ac3af04bc198784a82e5985dd510a4f02b5

6 years agoAdd another test for dotnet/coreclr#17971
Carol Eidt [Wed, 20 Jun 2018 18:02:27 +0000 (11:02 -0700)]
Add another test for dotnet/coreclr#17971

Commit migrated from https://github.com/dotnet/coreclr/commit/7f3c57cf30e80a694376e5c112cbb24b9a68886f

6 years agoRemove MaskLoad tests from arm and arm64 lst files (dotnet/coreclr#18569)
Jarret Shook [Wed, 20 Jun 2018 17:39:04 +0000 (10:39 -0700)]
Remove MaskLoad tests from arm and arm64 lst files (dotnet/coreclr#18569)

This will disable the test from being run with smart in our windows arm
testing. This corresponds to the tests being deleted in dotnet/coreclr#17637.

Commit migrated from https://github.com/dotnet/coreclr/commit/b55d2b85d6829974dddf3b69e7c03bcddac95ae4

6 years agoAvoid extra allocation in IDNA (dotnet/coreclr#18551)
Tarek Mahmoud Sayed [Wed, 20 Jun 2018 01:50:38 +0000 (18:50 -0700)]
Avoid extra allocation in IDNA (dotnet/coreclr#18551)

* Avoid extra allocation in IDNA

* cache the indexd value in StringBuilder

Commit migrated from https://github.com/dotnet/coreclr/commit/5d34cc6642c3f8d406f0c4bdf74b7be26b1aa0df

6 years agoFix instruction groups offset on the border between cold/hot code. (dotnet/coreclr...
Sergey Andreenko [Wed, 20 Jun 2018 01:02:11 +0000 (18:02 -0700)]
Fix instruction groups offset on the border between cold/hot code. (dotnet/coreclr#17775)

* add an additional debug printing.

* add additional checks

* Clean-up checks a bit.

* fill unused allocated chunks

* clean up checks

* fix EMITTER_STATS

* optimize padding filling

call to emitCurCodeOffs(cp) is not free.

Commit migrated from https://github.com/dotnet/coreclr/commit/d10950e4bb40643f72e97e8c0a03390694b2d2a2

6 years agoFix Complus_JitMinOpts for the first method (dotnet/coreclr#18555)
Sergey Andreenko [Wed, 20 Jun 2018 01:01:36 +0000 (18:01 -0700)]
Fix Complus_JitMinOpts for the first method (dotnet/coreclr#18555)

Commit migrated from https://github.com/dotnet/coreclr/commit/1731c34ffbffbe3157ebd1368ab5420483efe1fc

6 years agoRemove StringBuilderCache usage from System.Text.RegularExpressions (dotnet/coreclr...
Viktor Hofer [Tue, 19 Jun 2018 21:34:37 +0000 (23:34 +0200)]
Remove StringBuilderCache usage from System.Text.RegularExpressions (dotnet/coreclr#30474)

* Remove StringBuilderCache usage

* fixed buffer size, manual reverse copying & local textinfo

* Fast path for not to encode string

* avoid one span slice

* code formatting & bounds check opt

* Avoid string allocation in char class

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/d429e0291cefdba83248b3d158926df05a76528e

6 years agoMerge pull request dotnet/coreclr#18357 from acmyu/sections
Amy [Tue, 19 Jun 2018 23:34:29 +0000 (16:34 -0700)]
Merge pull request dotnet/coreclr#18357 from acmyu/sections

R2RDump - Dump CompilerIdentifier and ImportSection contents

Commit migrated from https://github.com/dotnet/coreclr/commit/65f88a816b818e132dc4d5a3a0d786a961a18583

6 years agoParse entries of import section
Amy Yu [Tue, 19 Jun 2018 21:42:05 +0000 (14:42 -0700)]
Parse entries of import section

Commit migrated from https://github.com/dotnet/coreclr/commit/1c98c6e234989f20f21782670d53046ff4550b7c

6 years agoAvoid two unnecessary string.Substring calls in PunycodeDecode (dotnet/coreclr#18546)
Stephen Toub [Tue, 19 Jun 2018 21:28:32 +0000 (17:28 -0400)]
Avoid two unnecessary string.Substring calls in PunycodeDecode (dotnet/coreclr#18546)

Commit migrated from https://github.com/dotnet/coreclr/commit/90850134cb27a499a2bf8e6a545f58ae057ded41

6 years agofixes for sos on FreeBSD (dotnet/coreclr#18479)
Tomas Weinfurt [Tue, 19 Jun 2018 20:54:41 +0000 (13:54 -0700)]
fixes for  sos on FreeBSD (dotnet/coreclr#18479)

* fixes for  sos on FreeBSD

* refactore unwind detection to common block for BSD and Linux

* missing newline

* do not do libunwind detection for OSX

Commit migrated from https://github.com/dotnet/coreclr/commit/4c51b2dbbdd9bdf23552a9d26ad08a78ce1523cc

6 years agoFix struct promotion check for SIMD field (dotnet/coreclr#18548)
Carol Eidt [Tue, 19 Jun 2018 20:35:02 +0000 (13:35 -0700)]
Fix struct promotion check for SIMD field (dotnet/coreclr#18548)

A struct can have `lvIsRegArg` true but have multiple SIMD fields if it is passed by reference.

Commit migrated from https://github.com/dotnet/coreclr/commit/d3905518d08ca174ae631aebfe16314b885aa61a

6 years agoTypo (dotnet/coreclr#18550)
John Doe [Tue, 19 Jun 2018 20:26:30 +0000 (13:26 -0700)]
Typo (dotnet/coreclr#18550)

* accesible -> accessible

* acheive -> achieve

* addtional -> additional

* affars -> affairs

* approch -> approach

* archtecture -> architecture

* aritmetic -> arithmetic

* arquired -> acquired

* assigments -> assignments

* assmblies -> assemblies

Commit migrated from https://github.com/dotnet/coreclr/commit/d92a3cf483b06a7103a80e4ed8c8ee8a519a688e

6 years agoDump bytes with offset instead of rva
Amy Yu [Fri, 8 Jun 2018 23:16:23 +0000 (16:16 -0700)]
Dump bytes with offset instead of rva

Commit migrated from https://github.com/dotnet/coreclr/commit/b85874d6ac7c82e03434aee01ef9b32da64a3096

6 years agoParse and dump compiler identifier and import sections, move dump section contents...
Amy Yu [Thu, 7 Jun 2018 22:01:23 +0000 (15:01 -0700)]
Parse and dump compiler identifier and import sections, move dump section contents to own function

Commit migrated from https://github.com/dotnet/coreclr/commit/dc8c0b9c388225e19e95aaa74fcef1026331d586

6 years agoDump contents of NativeArray and NativeHashtable
Amy Yu [Thu, 7 Jun 2018 20:40:37 +0000 (13:40 -0700)]
Dump contents of NativeArray and NativeHashtable

Commit migrated from https://github.com/dotnet/coreclr/commit/10cfcbabc62b95a67d3ace771600ee20889333bd

6 years agoUse GetEntryPointIdFromOffset to get EntryPointId of generic methods
Amy Yu [Thu, 7 Jun 2018 18:53:18 +0000 (11:53 -0700)]
Use GetEntryPointIdFromOffset to get EntryPointId of generic methods

Commit migrated from https://github.com/dotnet/coreclr/commit/2cf151572ab9df6b40faad4fdcecd30d7b8d6f7c

6 years agoOutput formatting changes for unwindInfo and section contents
Amy Yu [Thu, 7 Jun 2018 01:00:58 +0000 (18:00 -0700)]
Output formatting changes for unwindInfo and section contents

Commit migrated from https://github.com/dotnet/coreclr/commit/957c4db6eb24cdbe87fcd02a658ab99b50f8d304

6 years agoMerge pull request dotnet/coreclr#18500 from acmyu/liveness
Amy [Tue, 19 Jun 2018 20:23:18 +0000 (13:23 -0700)]
Merge pull request dotnet/coreclr#18500 from acmyu/liveness

R2RDump - Output GcSlot liveness interweaved with disasm instructions

Commit migrated from https://github.com/dotnet/coreclr/commit/3643c064f7b41558e08ef16337d8c0379d238138

6 years agoSave name of dll in constant, use tab instead of spaces
Amy Yu [Tue, 19 Jun 2018 18:22:03 +0000 (11:22 -0700)]
Save name of dll in constant, use tab instead of spaces

Commit migrated from https://github.com/dotnet/coreclr/commit/a5c843564c4dd8301b0c424f6041fada2921b1ab

6 years agoUpdate CoreClr to preview1-26619-04 (dotnet/coreclr#18540)
dotnet-maestro-bot [Tue, 19 Jun 2018 15:39:01 +0000 (08:39 -0700)]
Update CoreClr to preview1-26619-04 (dotnet/coreclr#18540)

Commit migrated from https://github.com/dotnet/coreclr/commit/473d9b09c7e000480f41021c94fbffeae27cb179

6 years agoPInvoke calli support for CoreRT (dotnet/coreclr#18534)
Jan Kotas [Tue, 19 Jun 2018 12:58:44 +0000 (05:58 -0700)]
PInvoke calli support for CoreRT (dotnet/coreclr#18534)

* Ifdef out NGen-specific PInvoke calli inlining limitation for CoreCLR

This limitation seems to be a left-over from effort to eliminate JITing with fragile NGen.

* Delete dead partial-trust related code

* Allow PInvoke stub inlining

* Add convertCalliToCall JIT/EE interface method

* Update superpmi

Commit migrated from https://github.com/dotnet/coreclr/commit/10111af6ba5e18f4a9b9c6eb80d49ed545604cfa

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02918-02, preview1-26619...
dotnet-maestro-bot [Tue, 19 Jun 2018 11:31:55 +0000 (04:31 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02918-02, preview1-26619-01, preview1-26617-01, master-20180619-0054, respectively (dotnet/coreclr#18518)

Commit migrated from https://github.com/dotnet/coreclr/commit/57375e5cd91b3554e0e9690bba56d7fc341f8ce7

6 years agoRemoved dead strings from corerror.xml
Henry Sharber [Tue, 19 Jun 2018 01:41:02 +0000 (21:41 -0400)]
Removed dead strings from corerror.xml

Commit migrated from https://github.com/dotnet/coreclr/commit/cc5dcbe6d1f5a799deab8064081b4e760e0df38e

6 years agoRemove dead strings mscorrc.rc
Henry Sharber [Mon, 18 Jun 2018 02:31:46 +0000 (22:31 -0400)]
Remove dead strings mscorrc.rc

Commit migrated from https://github.com/dotnet/coreclr/commit/ccf2c3eba2d833743a127be7ad3d2143bfe04091

6 years agogenPutArgStk needs to check for FIELD_LIST first (dotnet/coreclr#18499)
Carol Eidt [Tue, 19 Jun 2018 00:11:56 +0000 (17:11 -0700)]
genPutArgStk needs to check for FIELD_LIST first (dotnet/coreclr#18499)

When a struct is passed on the stack using `FIELD_LIST`, the type of the `FIELD_LIST` is the type of its first field. If that type was a struct type (i.e. a SIMD type), `genPutArgStk` would assume that it was the non-`FIELD_LIST` case.

Fix dotnet/coreclr#18497

Commit migrated from https://github.com/dotnet/coreclr/commit/e9946c0de3bcab0d09ce5f10a039b37d6497d4cb

6 years agoDelete PinnableBufferCache (dotnet/corertdotnet/coreclr#5950)
Jan Kotas [Mon, 18 Jun 2018 19:00:33 +0000 (12:00 -0700)]
Delete PinnableBufferCache (dotnet/corertdotnet/coreclr#5950)

Port https://github.com/dotnet/coreclr/pull/18360 to CoreRT

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/108ead41ca9243d4c6e1c6f3866fe986c44e31a1

6 years agoCorrectly return early if the test fails (dotnet/coreclr#18529)
Jarret Shook [Mon, 18 Jun 2018 21:07:39 +0000 (14:07 -0700)]
Correctly return early if the test fails (dotnet/coreclr#18529)

Commit migrated from https://github.com/dotnet/coreclr/commit/a74bbaf2d0cc1f9a9bb9104d204c45dd0c0eb2dc

6 years agoAdd public implementation WindowsRuntime ExceptionSupport (dotnet/coreclr#18494)
Luqun Lou [Mon, 18 Jun 2018 20:24:48 +0000 (13:24 -0700)]
Add public implementation WindowsRuntime ExceptionSupport (dotnet/coreclr#18494)

Commit migrated from https://github.com/dotnet/coreclr/commit/d4bbfb39572a2e1cb0708c7c94d0c05aee69d813

6 years agoImprove Intel hardware intrinsic APIs (dotnet/coreclr#17637)
Fei Peng [Mon, 18 Jun 2018 20:17:41 +0000 (13:17 -0700)]
Improve Intel hardware intrinsic APIs (dotnet/coreclr#17637)

* Improve Intel hardware intrinsic APIs

* Simplify Avx.Extract non-const fallback

Commit migrated from https://github.com/dotnet/coreclr/commit/ea58e86b476c7a596b43b12f31b5bccfdbbeca67

6 years agotemporarily disable pthread based named mutexes on FreeBSD (dotnet/coreclr#18480)
Tomas Weinfurt [Mon, 18 Jun 2018 19:54:23 +0000 (12:54 -0700)]
temporarily disable pthread based named mutexes on FreeBSD (dotnet/coreclr#18480)

Commit migrated from https://github.com/dotnet/coreclr/commit/ddca735a59327dedc681900e7d484491b769b7d6

6 years agoDocument span lifetime issue in CreateSpan (dotnet/corefxdotnet/coreclr#30490) (dotne...
dotnet bot [Mon, 18 Jun 2018 17:45:42 +0000 (10:45 -0700)]
Document span lifetime issue in CreateSpan (dotnet/corefxdotnet/coreclr#30490) (dotnet/coreclr#18528)

The language rules around span safety that C# and F# adhere to assume
there is no way to create a `Span<T>` wrapper over a `ref` local /
parameter. This means `ref` inputs into a method are not considered when
calculating the allowed lifetime of a returned `Span<T>`. Hence both
CreateSpan and CreateReadOnlySpan will be assumed to have heap lifetime
even when provided stack based inputs. Example:

``` c#
Span<int> Example() {
  int i = 42;
  Span<int> span = MemoryMarshal.CreateSpan(ref i, length: 1);
  return span; // C# and F# will allow this
}
```

In this case the actual lifetime of `span` is that of `i`. Yet the
compiler doesn't consider the `ref i` input and hence believes this must
be heap based and hence safe to return out of the method.

This is okay as these methods are unsafe. But want to explicitly
document that fact.

More information on the safety rules can be found in the [span safety
proposal](https://github.com/dotnet/csharplang/blob/master/proposals/csharp-7.2/span-safety.md)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/ac637552982717e72e473df03d0994e65c2dccd8

6 years agoTypo (dotnet/coreclr#18520)
John Doe [Mon, 18 Jun 2018 17:45:13 +0000 (10:45 -0700)]
Typo (dotnet/coreclr#18520)

* Acutal -> Actual

* addtional -> additional

* agressive -> aggressive

* agument -> argument

* Alignement -> Alignment

* alredy -> already

* MAnaged -> Managed

* analagous -> analogous

* aquire -> acquire

* arbitary -> arbitrary

Commit migrated from https://github.com/dotnet/coreclr/commit/22bfefbc787629d9d5637cd37fc92701b95dcea0

6 years agoRe-Enable StructABI test for xplat (dotnet/coreclr#18496)
Jarret Shook [Mon, 18 Jun 2018 17:32:53 +0000 (10:32 -0700)]
Re-Enable StructABI test for xplat (dotnet/coreclr#18496)

Commit migrated from https://github.com/dotnet/coreclr/commit/6a35855005898b243191c17496fa137d09926201

6 years agomach_absolute_time as the primary clock source on macOS (corefxdotnet/coreclr#30391...
Andrey Akinshin [Mon, 18 Jun 2018 17:11:32 +0000 (13:11 -0400)]
mach_absolute_time as the primary clock source on macOS (corefxdotnet/coreclr#30391) (dotnet/coreclr#18505)

macOS 10.12+ supports clock_gettime (HAVE_CLOCK_MONOTONIC is defined)
However, mach_absolute_time has better resolution and should be used
as the primary clock source.

Commit migrated from https://github.com/dotnet/coreclr/commit/a88923778b841a51d9656f714f171115baf7ca80

6 years agoUpdate CoreClr, CoreFx to preview1-26616-03, preview1-26616-02, respectively (dotnet...
dotnet-maestro-bot [Sat, 16 Jun 2018 18:54:59 +0000 (11:54 -0700)]
Update CoreClr, CoreFx to preview1-26616-03, preview1-26616-02, respectively (dotnet/coreclr#18503)

Commit migrated from https://github.com/dotnet/coreclr/commit/71f4199f7dd043c4901a187b9bd88ab40e2b87e2

6 years agoUpdate BuildTools, CoreClr to preview1-02915-01, preview1-26616-01, respectively...
dotnet-maestro-bot [Sat, 16 Jun 2018 05:36:31 +0000 (22:36 -0700)]
Update BuildTools, CoreClr to preview1-02915-01, preview1-26616-01, respectively (dotnet/coreclr#18495)

Commit migrated from https://github.com/dotnet/coreclr/commit/45da72ca0f1493f793e30f39a7da0e59acb8bdbc

6 years agoAdd missing registers enum
Amy Yu [Sat, 16 Jun 2018 00:37:10 +0000 (17:37 -0700)]
Add missing registers enum

Commit migrated from https://github.com/dotnet/coreclr/commit/377718dffb619796c4abb2751b934c03e4ab7db8

6 years agoInterweave gcslot liveness with disasm
Amy Yu [Sat, 16 Jun 2018 00:07:41 +0000 (17:07 -0700)]
Interweave gcslot liveness with disasm

Commit migrated from https://github.com/dotnet/coreclr/commit/c77c97e4d08ad8cafdae00128496b214dc2a2098

6 years agoUse DumpInstruction instead of code block
Amy Yu [Fri, 15 Jun 2018 18:46:49 +0000 (11:46 -0700)]
Use DumpInstruction instead of code block

Commit migrated from https://github.com/dotnet/coreclr/commit/1df3d7978e69166fa366c5788d114acf1c743d70

6 years agoMerge pull request dotnet/coreclr#18474 from acmyu/gc
Amy [Fri, 15 Jun 2018 23:36:40 +0000 (16:36 -0700)]
Merge pull request dotnet/coreclr#18474 from acmyu/gc

R2RDump - Get GC slot liveness code offset

Commit migrated from https://github.com/dotnet/coreclr/commit/30a7daa5d0fd4102ef053d1291775140be610495

6 years agoMerge pull request dotnet/coreclr#18379 from acmyu/disasm
Amy [Fri, 15 Jun 2018 23:36:18 +0000 (16:36 -0700)]
Merge pull request dotnet/coreclr#18379 from acmyu/disasm

R2RDump - Print disassembly to text buffer

Commit migrated from https://github.com/dotnet/coreclr/commit/d77fd94014bd4fc67df03a731498f9b8fd1e0e42

6 years agoDelete bitrotten appdomain agility checks (dotnet/coreclr#18489)
Jan Kotas [Fri, 15 Jun 2018 22:44:36 +0000 (15:44 -0700)]
Delete bitrotten appdomain agility checks (dotnet/coreclr#18489)

Fixes dotnet/coreclr#18484

Commit migrated from https://github.com/dotnet/coreclr/commit/6bb3f84d42b9756c5fa18158db8f724d57796296

6 years agoUse correct field offset in genPutArgStkFieldList (dotnet/coreclr#18483)
Carol Eidt [Fri, 15 Jun 2018 21:46:19 +0000 (14:46 -0700)]
Use correct field offset in genPutArgStkFieldList (dotnet/coreclr#18483)

* Use correct field offset in genPutArgStkFieldList

Fix dotnet/coreclr#18482

* formatting

* Add the new test to the arm and arm64 test lists

Commit migrated from https://github.com/dotnet/coreclr/commit/13954f2b3072866be61c273d17f7b4fd2d1e6099

6 years agoAvoid some virtual dispatch in Encodings (dotnet/coreclr#18487)
Stephen Toub [Fri, 15 Jun 2018 21:45:44 +0000 (17:45 -0400)]
Avoid some virtual dispatch in Encodings (dotnet/coreclr#18487)

- Seal some internal overrides
- In the more common encodings, add overrides of GetBytes/GetByteCount/GetChars/GetCharCount to avoid another layer of virtuals from the base class (they can call to an internal non-virtual).

Commit migrated from https://github.com/dotnet/coreclr/commit/acd35fd3ce18ebaf7b0edbd933ed2d4f17b8db78

6 years agoUse IntPtr instead of long for pointers
Amy Yu [Fri, 15 Jun 2018 21:17:06 +0000 (14:17 -0700)]
Use IntPtr instead of long for pointers

Commit migrated from https://github.com/dotnet/coreclr/commit/5a0278defa155de8c0d1f2b6f1d51841006f97cd

6 years agoFix bugs from trying to get transitions for untracked slots when it's not supposed to
Amy Yu [Fri, 15 Jun 2018 20:00:15 +0000 (13:00 -0700)]
Fix bugs from trying to get transitions for untracked slots when it's not supposed to

Commit migrated from https://github.com/dotnet/coreclr/commit/40f0203513823cb52daa352ae0f444cbc2b6daea

6 years agoAdjust method comment
Amy Yu [Fri, 15 Jun 2018 18:40:54 +0000 (11:40 -0700)]
Adjust method comment

Commit migrated from https://github.com/dotnet/coreclr/commit/31f6bf336774044f3e5891078f3777a3801cca87

6 years agoEnsure AdjustmentRule.DaylightDelta is within [-12,12] (dotnet/coreclr#18477)
Krzysztof Wicher [Fri, 15 Jun 2018 18:08:29 +0000 (11:08 -0700)]
Ensure AdjustmentRule.DaylightDelta is within [-12,12] (dotnet/coreclr#18477)

* Modulo AdjustmentRule.DaylightDelta

* fix typo

Commit migrated from https://github.com/dotnet/coreclr/commit/66ff5d7ed68c050ba53968c2ecf88a6c9a2a3224

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02914-01, preview1-26615...
dotnet-maestro-bot [Fri, 15 Jun 2018 16:19:33 +0000 (09:19 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02914-01, preview1-26615-04, preview1-26615-01, master-20180615-0040, respectively (dotnet/coreclr#18472)

Commit migrated from https://github.com/dotnet/coreclr/commit/28909eb39a7246625afe3a32fe0ab37b40d7b15a

6 years agoFix handling of generating relative path to parent (dotnet/coreclr#18460)
Jeremy Kuhne [Fri, 15 Jun 2018 03:12:28 +0000 (20:12 -0700)]
Fix handling of generating relative path to parent (dotnet/coreclr#18460)

Fixes dotnet/coreclr#30263

Commit migrated from https://github.com/dotnet/coreclr/commit/5bb221911996edeef0373ecf5c5fbfc235533ac8

6 years agoclean up list of disabled warnings. (dotnet/coreclr#18318)
Sergey Andreenko [Fri, 15 Jun 2018 01:32:41 +0000 (18:32 -0700)]
clean up list of disabled warnings. (dotnet/coreclr#18318)

* delete warnings that do not longer exist

For example C4171 was deleted after VS 6.0 (https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa233011(v=vs.60))

* delete C4206 fromm the list

because its default value is 4, so this line is useless.

* reenable warning as error.

* enable warning C4430

and fix places that trigger it.

* fix C4334

* format the list

* fix ssize_t

Commit migrated from https://github.com/dotnet/coreclr/commit/1c8c96ec2bb52368124928648d7557ac85ff9c40

6 years agoMake gcInfoTypes global instead of passed as param
Amy Yu [Fri, 15 Jun 2018 01:20:57 +0000 (18:20 -0700)]
Make gcInfoTypes global instead of passed as param

Commit migrated from https://github.com/dotnet/coreclr/commit/03bfe8501ffa45f713156dfe9b1e2c024d09803d

6 years agofix the desktop build break (dotnet/coreclr#18475)
Sergey Andreenko [Fri, 15 Jun 2018 00:44:55 +0000 (17:44 -0700)]
fix the desktop build break (dotnet/coreclr#18475)

* fix desktop build break

after dotnet/coreclr#18346

* add dstCount

Commit migrated from https://github.com/dotnet/coreclr/commit/793daddd90caa014dc2dacebd6b73035ae57bae5

6 years agoFixed some bugs with gc transitions
Amy Yu [Fri, 15 Jun 2018 00:34:47 +0000 (17:34 -0700)]
Fixed some bugs with gc transitions

Commit migrated from https://github.com/dotnet/coreclr/commit/a1c04b25428b2c800f281ad2a4b7241199612bac

6 years agoGet gc slot liveness code offset
Amy Yu [Thu, 14 Jun 2018 22:37:35 +0000 (15:37 -0700)]
Get gc slot liveness code offset

Commit migrated from https://github.com/dotnet/coreclr/commit/80809ca2890fb3d952521db69573da2b9a0d1231

6 years ago[Windows|Arm64|Vararg] Add FEATURE_ARG_SPLIT (dotnet/coreclr#18346)
Jarret Shook [Thu, 14 Jun 2018 20:16:45 +0000 (13:16 -0700)]
[Windows|Arm64|Vararg] Add FEATURE_ARG_SPLIT (dotnet/coreclr#18346)

* [ARM64|Windows|Vararg] Add FEATURE_ARG_SPLIT

Enable splitting >8 byte <= 16 byte structs for arm64 varargs
between x7 and virtual stack slot 0.

* Force notHfa for vararg methods

* Correctly pass isVararg

* Correct var name

Commit migrated from https://github.com/dotnet/coreclr/commit/35c84dfc414a8817ef74df2c2cd0486740fc11f4

6 years agoARM: increase small reg set for jitStressRegs=3 (dotnet/coreclr#18462)
Carol Eidt [Thu, 14 Jun 2018 19:24:16 +0000 (12:24 -0700)]
ARM: increase small reg set for jitStressRegs=3 (dotnet/coreclr#18462)

We may need two registers (base + offset) to set up the target register for a virtual call.

Fix dotnet/coreclr#18228

Commit migrated from https://github.com/dotnet/coreclr/commit/38fc21129e23f6d5ff37755452f4b95f07de6c56

6 years agoadd overloads (dotnet/coreclr#18458)
Marco Rossignoli [Thu, 14 Jun 2018 17:30:56 +0000 (19:30 +0200)]
add overloads (dotnet/coreclr#18458)

Commit migrated from https://github.com/dotnet/coreclr/commit/5b230860900aab1c4023e729c33006b1b09107f8

6 years agoWrite and WriteAsync overloads for StringBuilder. (dotnet/coreclr#18281)
Vance Morrison [Thu, 14 Jun 2018 16:06:08 +0000 (09:06 -0700)]
Write and WriteAsync overloads for StringBuilder. (dotnet/coreclr#18281)

* Write and WriteAsync overloads for StringBuilder.

Addresses issue https://github.com/dotnet/corefx/issues/30048

Note that tests will come as a separate checking as part of the coreFX repo.

* Review feedback

* Review feedback

* Added WriteLine(StringBuilder overloads (review feedback)

* review feedback

* Fix configureAwait

* bug fix

* Bug fix

* review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/fb8d7b863365457a11da270d6950c16c082635df

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26614-04, preview1-26614-04, master-20180...
dotnet-maestro-bot [Thu, 14 Jun 2018 15:57:44 +0000 (08:57 -0700)]
Update CoreClr, CoreFx, PgoData to preview1-26614-04, preview1-26614-04, master-20180614-0041, respectively (dotnet/coreclr#18461)

Commit migrated from https://github.com/dotnet/coreclr/commit/8cc3d97077b1abcda0ea970466e55e01b8967d73

6 years agoAdds original error info to NotSupportedException during FileStream initialization...
Alfred Myers [Thu, 14 Jun 2018 15:09:20 +0000 (12:09 -0300)]
Adds original error info to NotSupportedException during FileStream initialization (dotnet/coreclr#18455)

Commit migrated from https://github.com/dotnet/coreclr/commit/74c5abd7409b207f95d7e726cf0b888412f25eac

6 years agoSkip version (dotnet/corefxdotnet/coreclr#28835)
Anirudh Agnihotry [Wed, 13 Jun 2018 00:16:31 +0000 (17:16 -0700)]
Skip version (dotnet/corefxdotnet/coreclr#28835)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/46c08c4c6e3af1562b6a4dff1c8d6ccda21aec38

6 years agoAdded ISOWeek to System.Globalization (dotnet/coreclr#18456)
Kristian Hellang [Wed, 13 Jun 2018 23:28:02 +0000 (01:28 +0200)]
Added ISOWeek to System.Globalization (dotnet/coreclr#18456)

* Added ISOWeek to System.Globalization

* Revert DateTime changes. Use constants from GregorianCalendar instead.

* Add more comments

* Also allow 7 as value for day of week

* Add note about ISO week-numbering year parameters

* Add note about allowing 7 for day of week

Commit migrated from https://github.com/dotnet/coreclr/commit/79b8f94cc52b6b79945074b748508a0b3cbb8be6

6 years ago[Windows|Arm64|VarArgs] Correctly pass HFA arguments (dotnet/coreclr#18364)
Jarret Shook [Wed, 13 Jun 2018 22:44:37 +0000 (15:44 -0700)]
[Windows|Arm64|VarArgs] Correctly pass HFA arguments (dotnet/coreclr#18364)

* Fix passing HFA of two floats to vararg methods

Previously, the type would be reported as HFA and enregistered; however,
this is not correct, as arm64 varargs abi requires passing using
int registers.

* Address linux build issue

* Apply final format patch

* Add _TARGET_WINDOWS_

Commit migrated from https://github.com/dotnet/coreclr/commit/c485d3fc4f8645fbfc381396c436711cb2344473

6 years agoMerge pull request dotnet/coreclr#18438 from BruceForstall/FixKeepAlive
Bruce Forstall [Wed, 13 Jun 2018 22:04:23 +0000 (15:04 -0700)]
Merge pull request dotnet/coreclr#18438 from BruceForstall/FixKeepAlive

Fix GC KeepAlive test

Commit migrated from https://github.com/dotnet/coreclr/commit/f762f8b0e4a2870162badb58e77b9edceef58d97

6 years agoFix enregistered lclFld bug (dotnet/coreclr#18418)
Carol Eidt [Wed, 13 Jun 2018 21:43:07 +0000 (14:43 -0700)]
Fix enregistered lclFld bug (dotnet/coreclr#18418)

* Fix enregistered lclFld bug

In `impFixupStructReturnType()`, don't transform to `GT_LCL_FLD` if we have a scalar lclVar.
Also, to avoid future bad codegen, add verification and recovery code to Lowering.

Fix dotnet/coreclr#18408

* Extract the full conditions for whether a lclVar is a reg candidate, so it can be called from the assert in Lowering.

* Review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/82134a002fed96739694b6f085baaeea6c7c41f5

6 years agoMerge pull request dotnet/coreclr#18442 from BruceForstall/DisableB65423
Bruce Forstall [Wed, 13 Jun 2018 21:14:06 +0000 (14:14 -0700)]
Merge pull request dotnet/coreclr#18442 from BruceForstall/DisableB65423

Disable test b65423, tracked by dotnet/coreclr#18441

Commit migrated from https://github.com/dotnet/coreclr/commit/1d83f170fdf7ed6ade3e49799724e0ac17769a09

6 years agomoving ARM HW Intrinsics files to shared partition (dotnet/coreclr#18451)
Maryam Ariyan [Wed, 13 Jun 2018 20:10:06 +0000 (13:10 -0700)]
moving ARM HW Intrinsics files to shared partition (dotnet/coreclr#18451)

Commit migrated from https://github.com/dotnet/coreclr/commit/07f77364f39cf64bfaf59592fc01de5ce7da9c15

6 years agoFix allocation methods at few places in PAL (dotnet/coreclr#18457)
Jan Vorlicek [Wed, 13 Jun 2018 17:48:24 +0000 (19:48 +0200)]
Fix allocation methods at few places in PAL (dotnet/coreclr#18457)

In the utf8.cpp and process.cpp, PAL was incorectly using the
global new operator. This results in calling this operator's
definition in coreclr runtime, which is wrong. In the case
of the utf8 stuff, a customer has reported a crash happening
due to that when the path from which the PAL was initialized
contained chinese characters.

THe fix is to use InternalNew / InternalDelete functions instead.

Commit migrated from https://github.com/dotnet/coreclr/commit/e6ebea25bea93eb4ec07cbd5003545c4805886a8

6 years agoAdded CallerArgumentExpressionAttribute (corefx issue 21809) (dotnet/coreclr#18404)
jswolf19 [Wed, 13 Jun 2018 16:33:44 +0000 (01:33 +0900)]
Added CallerArgumentExpressionAttribute (corefx issue 21809) (dotnet/coreclr#18404)

* Added CallerArgumentExpressionAttribute

* Modified CallerAtgumentExpressionAttribute

Removed ArgumentNull check from constructor and reordered members to
be more consistent with other attribute classes.

Commit migrated from https://github.com/dotnet/coreclr/commit/b90d7e8e749c4c936712c0b8a8d915eb8732928f

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02912-01, preview1-26613...
dotnet-maestro-bot [Wed, 13 Jun 2018 16:32:53 +0000 (09:32 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02912-01, preview1-26613-04, preview1-26613-07, master-20180613-0058, respectively (dotnet/coreclr#18189)

Commit migrated from https://github.com/dotnet/coreclr/commit/a5964d71c3c503fa007ce86fdacc643a7ed99c5d

6 years agoUpdate unshared Reflection.Emit files
Michal Strehovský [Tue, 12 Jun 2018 15:52:16 +0000 (17:52 +0200)]
Update unshared Reflection.Emit files

Commit migrated from https://github.com/dotnet/coreclr/commit/f437343d0fc5965280b458d0fc88079499d20151

6 years agoMerge pull request dotnet/corertdotnet/coreclr#5933 from dotnet/nmirror
Michal Strehovský [Tue, 12 Jun 2018 14:01:50 +0000 (16:01 +0200)]
Merge pull request dotnet/corertdotnet/coreclr#5933 from dotnet/nmirror

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/acbeea89f71332e4eca90a672326691774ff6c23

6 years ago Move x86 HW intrinsics files to shared (dotnet/coreclr#18427)
Maryam Ariyan [Wed, 13 Jun 2018 05:50:19 +0000 (22:50 -0700)]
 Move x86 HW intrinsics files to shared (dotnet/coreclr#18427)

* Switch platfom amd64 to x64

* Move x86 intrinsics file to shared

* Adding condition so corert always picks up X.PlatformNotSupported.cs

Related to: dotnet/coreclr#15922

Commit migrated from https://github.com/dotnet/coreclr/commit/308850ced07e56bd83a36df23455d023b5dba06e

6 years agoMerge pull request dotnet/coreclr#18433 from BruceForstall/DisableLongRunningGCStress...
Bruce Forstall [Wed, 13 Jun 2018 00:20:36 +0000 (17:20 -0700)]
Merge pull request dotnet/coreclr#18433 from BruceForstall/DisableLongRunningGCStressTests

Disable HugeArray test in GCStress modes

Commit migrated from https://github.com/dotnet/coreclr/commit/fb4794d6ef682328473ab462ef91ee2ed193e4d2

6 years agoDisable test b65423, tracked by dotnet/coreclr#18441
Bruce Forstall [Tue, 12 Jun 2018 22:27:16 +0000 (15:27 -0700)]
Disable test b65423, tracked by dotnet/coreclr#18441

Commit migrated from https://github.com/dotnet/coreclr/commit/417da067e7634f23eaba183a3f551f15c43df746

6 years agoFix GC KeepAlive test
Bruce Forstall [Tue, 12 Jun 2018 21:12:34 +0000 (14:12 -0700)]
Fix GC KeepAlive test

We need to determine that an object finalizer has not been run
*before* the KeepAlive call. After the call, it is perfectly
valid for the finalizer to be called, which can happen under
GCStress.

Commit migrated from https://github.com/dotnet/coreclr/commit/75623f73d1fd635ddace9d36ee28eeabe6030531

6 years agoAdd public implementation WindowsRuntimeResourceManagerBase (dotnet/coreclr#18417)
Luqun Lou [Tue, 12 Jun 2018 20:54:00 +0000 (13:54 -0700)]
Add public implementation WindowsRuntimeResourceManagerBase (dotnet/coreclr#18417)

Commit migrated from https://github.com/dotnet/coreclr/commit/f547ca7cc060c5fc2a82bff7d059ffff1f9a56b8

6 years agoDisable HugeArray test in GCStress modes
Bruce Forstall [Tue, 12 Jun 2018 17:38:56 +0000 (10:38 -0700)]
Disable HugeArray test in GCStress modes

This test takes too long under GCStress, and causes timeout failures.
It was already disabled for x86. Disable it for all platforms, to
avoid unexpected failures in the CI. E.g., especially for ARM, which
is slow.

Commit migrated from https://github.com/dotnet/coreclr/commit/2c2440c7201ffbe5d3b4e8a59eff4c4c9c98cc5e

6 years agoJIT: finally cloning -- handle fall through out of try (dotnet/coreclr#18416)
Andy Ayers [Tue, 12 Jun 2018 16:49:36 +0000 (09:49 -0700)]
JIT: finally cloning -- handle fall through out of try (dotnet/coreclr#18416)

When searching for a handler to clone, handle the case where
control can fall out of the try into a callfinally pair.

Closes dotnet/coreclr#18353.

Commit migrated from https://github.com/dotnet/coreclr/commit/065c9b33eba2894452624245689c194cd7879eb3

6 years agoUnify struct arg handling (dotnet/coreclr#18358)
Carol Eidt [Tue, 12 Jun 2018 15:38:56 +0000 (08:38 -0700)]
Unify struct arg handling (dotnet/coreclr#18358)

* Unify struct arg handling

Eliminate unnecessary struct copies, especially on Linux, and reduce code duplication.
Across all targets, use GT_FIELD_LIST to pass promoted structs on stack, and avoid
requiring a copy and/or marking `lvDoNotEnregister` for those cases.

Unify the specification of multi-reg args:
- numRegs now indicates the actual number of reg args (not the size in pointer-size units)
- regNums contains all the arg register numbers

Commit migrated from https://github.com/dotnet/coreclr/commit/d28957d9978ab8d2828286eeb99a4a919c462b70

6 years agoFix unwinding of funclet with no epilog on x86/Linux (dotnet/coreclr#17458)
Igor Kulaychuk [Tue, 12 Jun 2018 09:10:25 +0000 (12:10 +0300)]
Fix unwinding of funclet with no epilog on x86/Linux (dotnet/coreclr#17458)

Commit migrated from https://github.com/dotnet/coreclr/commit/1b32b2b795d52bd4bc00fd37efd528ef56b9d7af

6 years agoAdding containment support to more x86 HWIntrinsics (dotnet/coreclr#18349)
Tanner Gooding [Tue, 12 Jun 2018 02:58:34 +0000 (19:58 -0700)]
Adding containment support to more x86 HWIntrinsics (dotnet/coreclr#18349)

* Adding containment support for the Sse42.Crc32 intrinsic

* Adding containment support for the x86 Compare*OrderedScalar and Compare*UnorderedScalar HWIntrinsics

* Adding containment support to several intrinsics that were marked NoContainment

Commit migrated from https://github.com/dotnet/coreclr/commit/7005f768866f3e0a2e7df3b67884bb5a98c92ef2

6 years agoFix Decimal.NearNegativeZero/NearPositiveZero (dotnet/coreclr#18424)
Pent Ploompuu [Tue, 12 Jun 2018 01:01:14 +0000 (04:01 +0300)]
Fix Decimal.NearNegativeZero/NearPositiveZero (dotnet/coreclr#18424)

Commit migrated from https://github.com/dotnet/coreclr/commit/016a06d499ff6c009b53309c098f3e78344fca0c

6 years agoReword invalid program exception message (dotnet/coreclr#18409)
Dan Moseley [Mon, 11 Jun 2018 21:42:35 +0000 (14:42 -0700)]
Reword invalid program exception message (dotnet/coreclr#18409)

* Reword invalid program exception message

* Reword

* Update msg

Commit migrated from https://github.com/dotnet/coreclr/commit/8b7d6a0e4f357e86e2092101acbe7b6458ee40af

6 years agoskip empty regMask in verifyRegistersUsed (dotnet/coreclr#18415)
Sergey Andreenko [Mon, 11 Jun 2018 21:29:17 +0000 (14:29 -0700)]
skip empty regMask in verifyRegistersUsed (dotnet/coreclr#18415)

Commit migrated from https://github.com/dotnet/coreclr/commit/5c556d13b09e8f7c702da04d8ab2ece8ef9b71a6

6 years agoStandardize on PLATFORM_WINDOWS instead of PLATFORM_UNIX (dotnet/coreclr#18411)
Stephen Toub [Mon, 11 Jun 2018 19:41:49 +0000 (15:41 -0400)]
Standardize on PLATFORM_WINDOWS instead of PLATFORM_UNIX (dotnet/coreclr#18411)

There are a bunch of uses of PLATFORM_WINDOWS in System.Private.CoreLib, and just a few uses of PLATFORM_UNIX.  Standardize on the former, removing all occurrences of the latter.

Commit migrated from https://github.com/dotnet/coreclr/commit/a07861b639667ce65d196ae1287df6fdb2a82d8b

6 years agoFix UTF8 encoding fallback index (dotnet/coreclr#18387)
Tarek Mahmoud Sayed [Mon, 11 Jun 2018 19:23:26 +0000 (12:23 -0700)]
Fix UTF8 encoding fallback index (dotnet/coreclr#18387)

* Fix UTF8 encoding fallback index

When falling back in UTF8 decoding, we’ll call the DecoderFallbackBuffer.InternalFallback method which takes a pointer to the source bytes pointer which point to where we have progressed inside the source bytes. The problem is before calling DecoderFallbackBuffer.InternalFallback we call GetBytesUnknown which can adjust the source byte pointer and DecoderFallbackBuffer.InternalFallback need to be called with the pointer before the adjustment. The fix is simply storing the original pointer value of the source byte pointer before calling GetBytesUnknown and then pass the stored original pointer to DecoderFallbackBuffer.InternalFallback instead of the adjusted source byte pointer

* Fix the comment

Commit migrated from https://github.com/dotnet/coreclr/commit/d093d9a9c83182f92a84c05af89e4859611d095a

6 years agoWinRT attribute Cleanup (dotnet/coreclr#18412)
Luqun Lou [Mon, 11 Jun 2018 19:22:50 +0000 (12:22 -0700)]
WinRT attribute Cleanup (dotnet/coreclr#18412)

Commit migrated from https://github.com/dotnet/coreclr/commit/2bfc551e240198d88d79f5425d783da31872e8f7

6 years agoRemove WinRTSynchronizationContextFactoryBase (dotnet/coreclr#18385)
Luqun Lou [Mon, 11 Jun 2018 18:29:46 +0000 (11:29 -0700)]
Remove WinRTSynchronizationContextFactoryBase (dotnet/coreclr#18385)

Commit migrated from https://github.com/dotnet/coreclr/commit/77a0f349aff937a8e16bc6fd1b52117d845e1fae