platform/upstream/dotnet/runtime.git
4 years agoImprove PAL initialization diagnostics (#34136)
Jan Vorlicek [Fri, 27 Mar 2020 09:24:04 +0000 (10:24 +0100)]
Improve PAL initialization diagnostics (#34136)

When PAL initialization fails, most often the error code is just a generic
error code that doesn't help in quick diagnosing of the problem.
This change adds extra error codes that can be used to figure out
which part of PAL initialization has failed.

4 years agoUse 16.04 to build the x64-arm crossgen (#34171)
Jarret Shook [Fri, 27 Mar 2020 04:58:50 +0000 (21:58 -0700)]
Use 16.04 to build the x64-arm crossgen (#34171)

* Use 16.04 to build the x64-arm crossgen

* Update docs

4 years agoSpeed up SuperPMI mcs remove dup process (#33946)
Bruce Forstall [Fri, 27 Mar 2020 02:43:44 +0000 (19:43 -0700)]
Speed up SuperPMI mcs remove dup process (#33946)

* Speed up SuperPMI `mcs -removeDup`

Create a "Hash" class that encapsulates the MD5 hashing that is
used to determine if two MCs are equivalent. Primarily, this
allows caching the Windows Crypto provider, which it is very slow
to acquire.

In addition, make some changes to avoid unnecessary memory allocations
and other unnecessary work.

The result is that `mcs -removeDup` is about 4x faster.

Much of the remaining cost is that we read, deserialize the MC,
then reserialize the MC (if unique), and finally destroy the in-memory MC.
There is a lot of memory allocation/deallocation in this process that
could possibly be avoided or improved for this scenario.

* Factor out remove dup code to a separate class

* Add new RemoveDup class

* Add `-dedup` deduplication to `mcs -merge`

Also add `-thin`.

With this,

```
mcs.exe -merge base.mch *.mc -recursive
mcs.exe -removeDup -thin base.mch nodup.mch
```

can be replaced with:

```
mcs.exe -merge -recursive -dedup -thin nodup.mch *.mc
```

The main benefit is avoiding creating a potentially very large base.mch file.
Related, the data being processed only needs to be loaded once.

* Fix Linux build break

* Adjust tools to use new `mcs -merge -dedup -thin` arguments

Adjust superpmi.py script and superpmicollect.cs unit test.

* Update readme documentation for SuperPMI

Add description of `mcs -merge -dedup -thin` arguments and usage.

4 years agorename folder to tests (#34174)
Maryam Ariyan [Fri, 27 Mar 2020 02:42:58 +0000 (19:42 -0700)]
rename folder to tests (#34174)

4 years agoMove some Mono corelib strings to resources/nameof (#34089)
Dan Moseley [Fri, 27 Mar 2020 02:06:25 +0000 (19:06 -0700)]
Move some Mono corelib strings to resources/nameof (#34089)

* Add some nameofs

* Replace some literal strings

* Fix tests

* error

* param update in test

4 years agoMove a few stackallocs out of loops (#34149)
Stephen Toub [Fri, 27 Mar 2020 01:43:12 +0000 (21:43 -0400)]
Move a few stackallocs out of loops (#34149)

4 years ago[ActiveIssue] test flakiness on M.E.Caching.Memory (#34142)
Maryam Ariyan [Fri, 27 Mar 2020 00:24:55 +0000 (17:24 -0700)]
[ActiveIssue] test flakiness on M.E.Caching.Memory (#34142)

* ActiveIssue flakiness on M.E.Caching.Memory

* disable test OvercapacityPurge_AreThreadSafe

4 years agoMore auto-fixing of corelib (primarily mono/netcore) (#34071)
Stephen Toub [Thu, 26 Mar 2020 23:57:17 +0000 (19:57 -0400)]
More auto-fixing of corelib (primarily mono/netcore) (#34071)

* Use explicit type

* Use pattern matching

* Use null propagation

* Simplify default expressions

* Order modifiers

* Simplify null checks

* Make fields readonly

* Delete dead members

* Use switch expressions

* Remove unnecessary usings

* Fix a few issues

4 years agoMove __allocator under PAL_STDCPP_COMPAT (#34141)
Adeel Mujahid [Thu, 26 Mar 2020 23:14:54 +0000 (01:14 +0200)]
Move __allocator under PAL_STDCPP_COMPAT (#34141)

4 years agoClose issues fixed by serializer refactoring (#33819)
Layomi Akinrinade [Thu, 26 Mar 2020 22:53:20 +0000 (18:53 -0400)]
Close issues fixed by serializer refactoring (#33819)

* Close issues fixed by serializer refactoring

* Validate ext test results

* Fix CI issue

* Address review feedback

4 years agoFixing opts.setSupportedISAs to use the computed instructionSetFlags value (#34139)
Tanner Gooding [Thu, 26 Mar 2020 22:13:42 +0000 (15:13 -0700)]
Fixing opts.setSupportedISAs to use the computed instructionSetFlags value (#34139)

4 years agoDisable 64bit variants of instruction sets (#34147)
David Wrighton [Thu, 26 Mar 2020 22:06:26 +0000 (15:06 -0700)]
Disable 64bit variants of instruction sets (#34147)

- EnsureInstructionSetFlagsAreValid was permitting the invalid behavior of something like ArmBase.Arm64.IsSupported to return true when ArmBase.IsSupported reported false.
- Fix by having EnsureInstructionSetFlagsAreValid handle the case

4 years agoAdd JsonIgnoreCondition & per-property ignore logic (#34049)
Layomi Akinrinade [Thu, 26 Mar 2020 20:49:40 +0000 (16:49 -0400)]
Add JsonIgnoreCondition & per-property ignore logic (#34049)

* Add JsonIgnoreCondition & per-property ignore logic

* Address review feedback

4 years agoRevert some changes to managed CorInfoTypes (#34134)
Andy Ayers [Thu, 26 Mar 2020 20:15:05 +0000 (13:15 -0700)]
Revert some changes to managed CorInfoTypes (#34134)

Leftovers from earlier versions of OSR.

4 years agoDisable component governance (#34131)
Jared Parsons [Thu, 26 Mar 2020 20:03:57 +0000 (13:03 -0700)]
Disable component governance (#34131)

Disable component governance in our CI builds. These builds are not
shipping nor are they services hence they don't need governance.

Also these injected tasks emit lots of warning and error noise into our
build timelines. This makes it hard to filter out real issues in the
build.

Example output that these jobs currently add. Note none of these fail
the build but do show up as errors that we have to filter out
```
        error General (NETCORE_ENGINEERING_TELEMETRY=Build) Build failed (exit code '1').
        error General Bash exited with code '1'.
        error General Unable to locate dotnetcore on build agent.
        error General Unable to locate dotnetcore on build agent.
```

4 years ago[debugger] Bump protocol for this commit https://github.com/mono/mono/pull/19248...
monojenkins [Thu, 26 Mar 2020 19:51:52 +0000 (15:51 -0400)]
[debugger] Bump protocol for this commit https://github.com/mono/mono/pull/19248 (#34070)

Bump protocol for this commit https://github.com/mono/mono/pull/19248 as suggested by @vargaz.

Co-authored-by: thaystg <thaystg@users.noreply.github.com>
4 years agoExecute chmod only on Unix environments for host (#34133)
Viktor Hofer [Thu, 26 Mar 2020 19:50:25 +0000 (20:50 +0100)]
Execute chmod only on Unix environments for host (#34133)

Fixes the following error when cross-targeting Unix on a Windows machine:

`C:\git\runtime3\src\libraries\restore\runtime\runtime.depproj(73,5): error MSB3073: The command "chmod +x C:\git\runtime3\artifacts\bin\testhost\netcoreapp5.0-Linux-Debug-x64\dotnet.exe" exited with code 9009.`

4 years agoUnconditionally enable InstructionSet_ArmBase in PAL_GetJitCpuCapabilityFlags in...
Egor Chesakov [Thu, 26 Mar 2020 19:17:00 +0000 (12:17 -0700)]
Unconditionally enable InstructionSet_ArmBase in PAL_GetJitCpuCapabilityFlags in src/coreclr/src/pal/src/misc/jitsupport.cpp (#34107)

4 years agoAdding support for Sse2.StoreScalar for int/uint (#34085)
Tanner Gooding [Thu, 26 Mar 2020 19:09:19 +0000 (12:09 -0700)]
Adding support for Sse2.StoreScalar for int/uint (#34085)

* Adding support for Sse2.StoreScalar for int/uint

* Adding test templates for Sse2.StoreScalar int32/uint32

* Regenerating x86 HWIntrinsic tests

* Fixing the documentation comments for Sse2.LoadScalarVector128 int32/uint32

* Fixing the memory size documented for Sse2.LoadScalarVector128

4 years agoAdding the convenience Avx.Compare* overloads (#34100)
Tanner Gooding [Thu, 26 Mar 2020 19:08:02 +0000 (12:08 -0700)]
Adding the convenience Avx.Compare* overloads (#34100)

* Adding the convenience Avx.Compare* overloads

* Adding test templates for the convenience Avx.Compare* overloads

* Regenerating the x86 hardware intrinsic tests

* Fixing the ordering of Avx.CompareUnordered

4 years agoRemove writable JSON DOM (#34099)
Layomi Akinrinade [Thu, 26 Mar 2020 17:05:22 +0000 (13:05 -0400)]
Remove writable JSON DOM (#34099)

* Remove writable JSON DOM

* Address review feedback

4 years ago[mini] Move monovm_initialize to unstable header (#34047)
Ryan Lucia [Thu, 26 Mar 2020 15:41:55 +0000 (11:41 -0400)]
[mini] Move monovm_initialize to unstable header (#34047)

4 years ago[mono] Don't throw inheritance error on interfaces in GetCustomAttrs (#33942)
Ryan Lucia [Thu, 26 Mar 2020 15:18:37 +0000 (11:18 -0400)]
[mono] Don't throw inheritance error on interfaces in GetCustomAttrs (#33942)

Looking at https://github.com/dotnet/runtime/issues/7190, the .NET Core behavior here is strange and my changes in https://github.com/dotnet/runtime/commit/0844cb7a6152 with the type checking may have been a mistake. I think this should be fine with the interface special-casing, but if deemed too great a concern I can revert that subset of my old changes. Additionally, if people come up with other scenarios where this might fail, I'll just revert until we can migrate to use a shared CustomAttribute implementation rather than try to play whack-a-mole.

4 years ago[loader] Initial work to support ALC collectability (#34038)
Ryan Lucia [Thu, 26 Mar 2020 15:17:40 +0000 (11:17 -0400)]
[loader] Initial work to support ALC collectability (#34038)

This should enable creation of a collectible ALC from managed, though it will not actually unload properly when Unload is called. This should be enough to unblock Xamarin porting work.

4 years ago[llvm] Disable running the llvm verifier by default, it was enabled by mistake, and...
monojenkins [Thu, 26 Mar 2020 14:38:21 +0000 (10:38 -0400)]
[llvm] Disable running the llvm verifier by default, it was enabled by mistake, and it takes a long time. (#34073)

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoDisable all PlatformHandlerTest_Cookies_Http2 for WinHttpHandler. (#34119)
Marie Píchová [Thu, 26 Mar 2020 14:07:23 +0000 (15:07 +0100)]
Disable all PlatformHandlerTest_Cookies_Http2 for WinHttpHandler. (#34119)

* Disable all PlatformHandlerTest_Cookies_Http2 for WinHttpHandler.

* Added ActiveIssue note.

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoImport Microsoft.Managed targets in Sdk.IL (#34124)
Viktor Hofer [Thu, 26 Mar 2020 13:55:10 +0000 (14:55 +0100)]
Import Microsoft.Managed targets in Sdk.IL (#34124)

If Microsoft.Managed targets aren't imported, multitargeting is broken as the required `InnerBuildProperty` and `InnerBuildPropertyValues` properties aren't defined. Those properties are read by the Graph APIs to identify if a build is an outer or inner build and multiplexes on them.

Fixes https://github.com/dotnet/runtime/issues/34123

4 years agoMake VSTest runner work and enable html log (#33915)
Viktor Hofer [Thu, 26 Mar 2020 13:36:40 +0000 (14:36 +0100)]
Make VSTest runner work and enable html log (#33915)

The VSTest runner is now supposed to work with the /p:TestRunner=vstest
switch. Currently this is an opt-in but the desire is to get rid of
xunit.console completely and just use VSTest.

4 years ago[debugger] Fix suspend_policy that will be send to debugger-libs (#34067)
monojenkins [Thu, 26 Mar 2020 13:14:54 +0000 (09:14 -0400)]
[debugger] Fix suspend_policy that will be send to debugger-libs (#34067)

- Fix suspend_policy that will be send to debugger-libs, because on debugger-libs we want to resume the VM only when it's suspended, but we were sending the wrong suspend_policy in the case of EVENT_KIND_VM_START and mono is started with suspend=y.
With this fix we can do this PR again: https://github.com/mono/debugger-libs/pull/264/

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/999375/

Co-authored-by: thaystg <thaystg@users.noreply.github.com>
4 years agoAdd back MetaDataGetDispenser export for profilers (#34113)
Jan Kotas [Thu, 26 Mar 2020 12:59:27 +0000 (05:59 -0700)]
Add back MetaDataGetDispenser export for profilers (#34113)

Contributes to #34014

4 years agoAdd stack guarantee on Mono Windows to handle stack overflow. (#34005)
Johan Lorensson [Thu, 26 Mar 2020 09:29:42 +0000 (10:29 +0100)]
Add stack guarantee on Mono Windows to handle stack overflow. (#34005)

When hitting stackoverflow on Windows, the amount of stack available
to exception handler is too small. Windows doesn't support alt stack as
other platforms, but there is a way to guarantee a certain amount of
available stack during stack overflow exceptions using
SetThreadStackGuarantee.

Fix add support on Windows platforms including SetThreadStackGuarantee
API to reserve space needed to handle stack overflow exceptions.
On Windows debug build the size needs to be larger since we might end
up calling JIT that could have quite deep callstack that, on unoptimized
builds, will need more stack.

4 years agoAdd new System.Net.Http.Json project/namespace (#33459)
David Cantu [Thu, 26 Mar 2020 06:10:04 +0000 (23:10 -0700)]
Add new System.Net.Http.Json project/namespace (#33459)

* Add System.Net.Http.Json related projects

* Add JsonContent, HttpContent extensions, and tests.

* Rename PErson.cs to Person.cs

* Adding package for System.Net.Http.Json library

* Improve tests, minor fixes and code clean-up.

* Remove annotations and code clean-up.

* Add draft description and common types to NuGet pkg.

* Addres nullability issues on API surface area.

* Add missing configurations to projects

* Addressing most of the  feedback.
TODO: Implement transcoding for non-UTF-8 content.

* Fix csproj formatting and use open StrongNameKeyId

* Address API review comments.

* Add transcoding support for .NET 5

* Port TranscodingRead/WriteStream to netstandard2.0

* Remove netcoreapp dependencies on TranscodingStream classes.

* Mark TransportContext as nullable to fix CI issues.

* Addres issues raised by new nullablity awareness code in System.Net.Http

* Re-enable LoopBackServer tests, address suggestions and code clean-up.

* Use default JsonSerializerOptions when passed-in is null

* Escape a few remaining Unicode characters in test files.

* Address nits.

* Validate inputType.IsAssignableFrom(inputValue.GetType()) on JsonContent ctor.

* Allow only ContentTypes application/json and application/<subtype>+json.

* Address comments.

* Add Unit.Tests project

* Make mediaType argument optional on JsonContent.Create

* Address latest comments.

* Perform case-insensitive comparisons on MediaType instead of ToLower.

* Address comments related to Transcoding classes.

* Address feedback

* Document TranscodingWriteStream.MaxByteBufferSize

* Replace MediaTypeHeaderValue.Parse with .ctor since it performs better.

Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com>
4 years agoEnable remaining Extensions projects (#33984)
Maryam Ariyan [Thu, 26 Mar 2020 02:39:20 +0000 (19:39 -0700)]
Enable remaining Extensions projects (#33984)

ref/src/pkg/test:
- Microsoft.Extensions.Configuration.Json
- Microsoft.Extensions.Configurations.UserSecrets
- Microsoft.Extensions.Configurations.Xml
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Logging.Configuration
- Microsoft.Extensions.Logging.Console
- Microsoft.Extensions.Logging.Debug
- Microsoft.Extensions.Logging.EventLog
- Microsoft.Extensions.Logging.EventSource
- Microsoft.Extensions.Logging.TraceSource
- Microsoft.Extensions.Http
- Microsoft.Extensions.Caching.Memory
- Microsoft.Extensions.Hosting

More:
- [x] Hosting: Included FunctionalTests and TestApp but refactor later
- [x] changes manually applied from PR 3040 in extensions
- [x] skip some test failures using ActiveIssue
- [x] ProjectExclusions removed
- [x] Suppress the duplication LoggingBuilderExtensions
- [x] deleting all csproj under Common

4 years agoMove assert checking the size of structs with GC pointers. (#34053)
Eugene Rozenfeld [Thu, 26 Mar 2020 00:56:34 +0000 (17:56 -0700)]
Move assert checking the size of structs with GC pointers. (#34053)

Codegen for CpObj assumes that we cannot have a struct with GC pointers
whose size is not a multiple of the register size. We had an assert that
 verified that in `ClassLayout::InitializeGCPtrs`.

The assert fired in the new pipeline that tests off-by-default features
in the leg that turns on object stack allocation. Stack-allocated
objects are never copied so the assert shouldn't apply to them.
I moved the assert to `Compiler::gtNewCpObjNode`. I clarified the
comment for the assert and changed it from `noway_assert` to a
regular `assert` since recompilation with minopts will not help if we
hit the assert.

I also added a repro case to ObjectStackAllocationTests that run with
COMPlus_JitObjectStackAllocation=1 in regular test runs.

4 years agoAdd string ctor to MemberNotNull{When} (#33864)
Stephen Toub [Thu, 26 Mar 2020 00:31:48 +0000 (20:31 -0400)]
Add string ctor to MemberNotNull{When} (#33864)

With only the params string[] ctor, every usage of MemberNotNull{When} in a CLSCompliant(true) assembly needs to have its warning suppressed.

4 years agoRun crossgen in parallel in crossgen_comparison.py (#33175)
Jarret Shook [Thu, 26 Mar 2020 00:29:19 +0000 (17:29 -0700)]
Run crossgen in parallel in crossgen_comparison.py (#33175)

* Run crossgen in parallel

* Change container to python:3.7

* Undo python3.7 container

* Update the arm build image and address feedback

* Default to python 3.x

* Force python3

* Small python changes

* Define asyncio

* Update to run arm 18.04 cross

* Remove dup core_root generation

* Update arm container

* Use 3.6 for crossgen_comparison

* Finish adding async defintions

* Fix spacing in file

* Update docker image used in linux-requirements

4 years agoRemove -stripsymbols option from build scripts (#34076)
Adeel Mujahid [Wed, 25 Mar 2020 22:35:21 +0000 (00:35 +0200)]
Remove -stripsymbols option from build scripts (#34076)

Symbol stripping is on by default in cmake scripts. This cleans up the remaining places where the no-op `-stripsymbols` option is passed from shell scripts via `.proj` files.

Fixes #32957

4 years agoAdd Security framework (#34078)
Egor Bogatov [Wed, 25 Mar 2020 21:51:34 +0000 (00:51 +0300)]
Add Security framework (#34078)

4 years agoChange exception for overflow in ArrayBufferWriter (#32587)
Felipe Pessoto [Wed, 25 Mar 2020 20:35:25 +0000 (17:35 -0300)]
Change exception for overflow in ArrayBufferWriter (#32587)

* Fix #609 - Part 2
We throw a OutOfMemoryException instead of "Arithmetic operation resulted in an overflow"

* Test attributes. We don't need to limit to 64bit process, since the memory is never allocated.

* Remove platform restriction

* Explicitly throw the OutOfMemoryException instead of rely on Array.Resize

* Move ThrowOutOfMemoryException method

* Missing message, BufferMaximumSizeExceeded

* Code Coverage

* Resource file

* Missing Resx update

* Restrict test to 64bits environment

* Simple test so that we have some test coverage in inner loop
Since we are trying to avoid the OOM, don't run the GetMemory_ExceedMaximumBufferSize on Linux

* Test comment

* Move OutOfMemory test to byte specific test

4 years agoMerge pull request #34077 from maryamariyan/fromoldmaster-integration
Maryam Ariyan [Wed, 25 Mar 2020 18:32:22 +0000 (11:32 -0700)]
Merge pull request #34077 from maryamariyan/fromoldmaster-integration

History on Extensions src/Hosting/IntegrationTesting

4 years agoDo not access unloading domains in debugger (#34013)
monojenkins [Wed, 25 Mar 2020 17:15:06 +0000 (13:15 -0400)]
Do not access unloading domains in debugger (#34013)

There was a race where a domain was being unloaded while debugger would access it. A domain was only removed from the 'appdomains_list' as a very last step. The domain was already invalid to access at this point (locks freed for example).

Worse, images would be unloaded if only referenced by that domain. All places the debugger iterates domains hold the loader lock. The loader lock is acquired by the domain unloading process, so as long as a domain is not unloading when we access it inside of the loader lock we are safe.

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: UnityAlex <UnityAlex@users.noreply.github.com>
4 years agoFix interpreter build (#34075)
Adeel Mujahid [Wed, 25 Mar 2020 15:40:16 +0000 (17:40 +0200)]
Fix interpreter build (#34075)

4 years agoUseClientCertOnHttp2_OSSupportsIt_Success requires Win10 build number not less than...
Alexander Nikolaev [Wed, 25 Mar 2020 15:21:37 +0000 (16:21 +0100)]
UseClientCertOnHttp2_OSSupportsIt_Success requires Win10 build number not less than 19573 (#34063)

Fixes #34010

4 years ago[loader] Clear filename when debugging assembly unloading (#34037)
Ryan Lucia [Wed, 25 Mar 2020 15:09:33 +0000 (11:09 -0400)]
[loader] Clear filename when debugging assembly unloading (#34037)

4 years ago[metadata] Skip symbol name mangling on non-Windows for netcore (#33940)
Ryan Lucia [Wed, 25 Mar 2020 14:22:49 +0000 (10:22 -0400)]
[metadata] Skip symbol name mangling on non-Windows for netcore (#33940)

Fixes #33246

4 years agoRemove symbol stripping from pipeline scripts (#33911)
Adeel Mujahid [Wed, 25 Mar 2020 14:11:16 +0000 (16:11 +0200)]
Remove symbol stripping from pipeline scripts (#33911)

Symbols stripping is unconditionally on for native builds.

4 years agoUpdate docs to point to new build scripts (#33325)
Next Turn [Wed, 25 Mar 2020 13:38:43 +0000 (21:38 +0800)]
Update docs to point to new build scripts (#33325)

* Update docs to point to build-runtime scripts

* Fix CoreLib build command

* Reference the root script, use documented syntax

4 years agoRemove CoreFX.issues_linux.rsp file (#33953)
Maxim Lipnin [Wed, 25 Mar 2020 13:05:57 +0000 (16:05 +0300)]
Remove CoreFX.issues_linux.rsp file (#33953)

* Enable some tests passing locally

* Disable several tests failing in linux CI due to the problem with
libgdiplus

* Enable tests passing locally on Ubuntu 18.04

* Disable several tests failing in
AssemblyLoadContext.InternalLoadFromPath

* Remove CoreFX.issues_linux.rsp file

* Fix condition for including rsp files

4 years ago[loader] Fix some log masks in native-library (#33938)
Ryan Lucia [Wed, 25 Mar 2020 13:01:40 +0000 (09:01 -0400)]
[loader] Fix some log masks in native-library (#33938)

Copy-paste error

4 years agoUpdate reportgenerator version used (#34059)
Viktor Hofer [Wed, 25 Mar 2020 12:55:32 +0000 (13:55 +0100)]
Update reportgenerator version used (#34059)

v4.5.1 brings improvements to the output logging which are nice for the local developer flow.

4 years agoEnable analyzers for mono/netcore (#34052)
Stephen Toub [Wed, 25 Mar 2020 10:55:49 +0000 (06:55 -0400)]
Enable analyzers for mono/netcore (#34052)

This is mostly just running auto-fixers for the various violated rules. In just a few places, I manually intervened.

* Locally disable pinvoke analyzer pending #33867

Co-authored-by: Dan Moseley <danmose@microsoft.com>
4 years agoRemove mode bits from open O_RDONLY (#34051)
Adeel Mujahid [Wed, 25 Mar 2020 09:25:42 +0000 (11:25 +0200)]
Remove mode bits from open O_RDONLY (#34051)

4 years ago[mini] Initialize correct class for tls fields (#34019)
monojenkins [Wed, 25 Mar 2020 08:06:41 +0000 (04:06 -0400)]
[mini] Initialize correct class for tls fields (#34019)

Initialize the klass containing the field to be accessed, rather than the class of the method from where we are accessing.

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
4 years agoFix issue with GDBJIT: moving NotifyGdb call to other function (#33963)
Kirill Frolov [Wed, 25 Mar 2020 07:15:37 +0000 (10:15 +0300)]
Fix issue with GDBJIT: moving NotifyGdb call to other function (#33963)

This commit moves call to NotifyGdb::MethodPrepared from
MethodDesc::PrepareInitialCode to MethodDesc::PrepareCode.

Previously NotifyGdb::MethodPrepared might be not called
in few cases.

This commit fixes #33962.

4 years agoUpdate centos-7 docker with gcc-7 in PATH (#33846)
Adeel Mujahid [Wed, 25 Mar 2020 06:50:03 +0000 (08:50 +0200)]
Update centos-7 docker with gcc-7 in PATH (#33846)

4 years agoReplaced Span<T>.Fill(0) with Span<T>.Clear() (#33849)
Günther Foidl [Wed, 25 Mar 2020 06:48:59 +0000 (07:48 +0100)]
Replaced Span<T>.Fill(0) with Span<T>.Clear() (#33849)

4 years agoAvoid copying netfx refs twice during allConfigurations (#34029)
Eric StJohn [Wed, 25 Mar 2020 06:44:22 +0000 (23:44 -0700)]
Avoid copying netfx refs twice during allConfigurations (#34029)

Suppress AssetTargetFallback warning

4 years agoUse registered ComWrappers for object <-> COM interface (#33485)
Elinor Fung [Wed, 25 Mar 2020 06:14:21 +0000 (23:14 -0700)]
Use registered ComWrappers for object <-> COM interface (#33485)

4 years ago[llvmonly] Throw an ExecutionEngine exception with a helpful message when we try...
monojenkins [Wed, 25 Mar 2020 04:39:42 +0000 (00:39 -0400)]
[llvmonly] Throw an ExecutionEngine exception with a helpful message when we try to execute a method which failed AOT compilation. (#34027)

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoMerge branch 'fromoldmaster-integration' of Extensions repo into fromoldmaster-integr...
Maryam Ariyan [Wed, 25 Mar 2020 04:29:42 +0000 (21:29 -0700)]
Merge branch 'fromoldmaster-integration' of Extensions repo into fromoldmaster-integration

4 years agoAdd iOS.10 with arm support to RID graph (#33990)
Eric StJohn [Wed, 25 Mar 2020 03:57:04 +0000 (20:57 -0700)]
Add iOS.10 with arm support to RID graph (#33990)

* Add iOS.10 with arm support to RID graph

* Make iOS RIDs go back to 8

4 years agoDisable UseClientCertOnHttp2_OSSupportsIt_Success test (#34028)
Stephen Toub [Wed, 25 Mar 2020 02:22:17 +0000 (22:22 -0400)]
Disable UseClientCertOnHttp2_OSSupportsIt_Success test (#34028)

4 years agoFix SemaphoreSlim handling of canceled continuation invocations (#34036)
Stephen Toub [Wed, 25 Mar 2020 02:20:12 +0000 (22:20 -0400)]
Fix SemaphoreSlim handling of canceled continuation invocations (#34036)

When a SemaphoreSlim.WaitAsync(CancellationToken) completes because the token has cancellation requested, we end up invoking any continuations off of the returned Task synchronously as part of the cancellation registration.  That in turn means that a thread is blocked waiting for that cancelation callback to complete, which can lead to deadlock in niche situations.  We need to force this continuation to be async.

4 years agoAdding transport package for extensions (#33515)
Eric StJohn [Wed, 25 Mar 2020 02:14:19 +0000 (19:14 -0700)]
Adding transport package for extensions (#33515)

4 years agoUpdate analyzer versions and fix violations (#34041)
Stephen Toub [Wed, 25 Mar 2020 02:00:45 +0000 (22:00 -0400)]
Update analyzer versions and fix violations (#34041)

4 years agoJIT: block throw helper merges for first block of a try (#34039)
Andy Ayers [Wed, 25 Mar 2020 01:43:01 +0000 (18:43 -0700)]
JIT: block throw helper merges for first block of a try (#34039)

Otherwise we may create a branch into the middle of a try. We could fix the
transform, but if the first block of a try has a throw helper call, the rest
of the try will subsequently be removed, so merging is not all that
interesting.

Addresses an issue that came up in #33924.

4 years ago[metadata] Fix leak in custom attribute lookup (#33937)
Ryan Lucia [Tue, 24 Mar 2020 23:40:25 +0000 (19:40 -0400)]
[metadata] Fix leak in custom attribute lookup (#33937)

4 years agoDisable zip download for azure devops download task (#34032)
Santiago Fernandez Madero [Tue, 24 Mar 2020 22:49:28 +0000 (15:49 -0700)]
Disable zip download for azure devops download task (#34032)

* Disable zip download for azure devops download task

* Fix typo

4 years agoAdd Android build configurations for Mono/Libraries (#33881)
Alexander Köplinger [Tue, 24 Mar 2020 22:39:42 +0000 (23:39 +0100)]
Add Android build configurations for Mono/Libraries (#33881)

* Add Android build configurations

* Enable System.Globalization.Native on Android

Dynamically load the libicu from the system. Android NDK doesn't ship with icu headers so for now define prototypes for all the functions we use ourselves.

* Add temporary stub HashProvider that throws NIE on Android

We still need to hook up the native System.Security.Native library.

Unblocks Xamarin.Forms startup.

4 years ago[CBOR] Implement indefinite length writer and reader support (#33831)
Eirik Tsarpalis [Tue, 24 Mar 2020 22:01:27 +0000 (22:01 +0000)]
[CBOR] Implement indefinite length writer and reader support (#33831)

* Implement indefinite length writes

* add indefinite-length cbor reader support

* Use CborReaderState.FormatError in Peek() instead of throwing exceptions.

* use verbose naming for indefinite-length write methods

* address feedback

* implement concatenation logic for indefinite-length string readers

* add tests for nested indefinite-length strings

* fix naming issues

* check that TryReadString() methods are idempotent on failed reads.

* use string.Create instead of char buffer; share single range list allocation

* only clear List if it is guaranteed to be reused

* move field to top of main CborReader source file.

4 years ago[debugger] Implementing step through multithreaded code. (#33062)
monojenkins [Tue, 24 Mar 2020 21:25:10 +0000 (17:25 -0400)]
[debugger] Implementing step through multithreaded code. (#33062)

* Implementing step through multithreaded code.

* Fixing concurrency in the case that more than one thread will run the same code, then when the jit is finished, the thread which jitted the code calls jit_done and the others that were waiting don't call, in this case, the other threads can run before the thread which is calling the jit_done set the breakpoint, so the other threads will not stop in the breakpoint.
As I understood we don't need to check if the try_suspend_runtime is returning false or true when we  hit a breakpoint from context, so removed the call.

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
4 years agoSet osOverride default value to empty on mono builds (#33987)
Santiago Fernandez Madero [Tue, 24 Mar 2020 20:29:15 +0000 (13:29 -0700)]
Set osOverride default value to empty on mono builds (#33987)

Author:    Santiago Fernandez Madero <safern@microsoft.com>

4 years agoRe-enable linker optimization disabled in #2334 (#32865)
Marek Safar [Tue, 24 Mar 2020 19:41:23 +0000 (20:41 +0100)]
Re-enable linker optimization disabled in #2334 (#32865)

4 years agoFix compilation of System.Net.Security.Native (#34018)
Alexander Köplinger [Tue, 24 Mar 2020 17:20:37 +0000 (18:20 +0100)]
Fix compilation of System.Net.Security.Native (#34018)

It was accidentally moved to a OSX/iOS-only conditional in https://github.com/dotnet/runtime/pull/33970 but it should be built on Linux too.

4 years agoAdd System*Native libraries from .NET Core 3.1 release, to Platform Manifest (#33988)
Nikola Milosavljevic [Tue, 24 Mar 2020 17:10:01 +0000 (10:10 -0700)]
Add System*Native libraries from .NET Core 3.1 release, to Platform Manifest (#33988)

* Add System*Native libraries from .NET Core 3.1 release, to Platform Manifest

* Updates based on PR comments

4 years agoDisable failing WinHttpHandler HTTP/2 test (#34011)
Stephen Toub [Tue, 24 Mar 2020 17:09:47 +0000 (13:09 -0400)]
Disable failing WinHttpHandler HTTP/2 test (#34011)

4 years agoUpdate dependencies from https://github.com/dotnet/llvm-project build 20200316.2...
dotnet-maestro[bot] [Tue, 24 Mar 2020 16:37:57 +0000 (17:37 +0100)]
Update dependencies from https://github.com/dotnet/llvm-project build 20200316.2 (#33961)

- runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools - 6.0.1-alpha.1.20166.2
- runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk - 6.0.1-alpha.1.20166.2
- runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools - 6.0.1-alpha.1.20166.2
- runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk - 6.0.1-alpha.1.20166.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoRun stress tests on private Asp.Net Core package (#33860)
Alexander Nikolaev [Tue, 24 Mar 2020 16:35:00 +0000 (17:35 +0100)]
Run stress tests on private Asp.Net Core package (#33860)

Currently, it's possible to run stress tests on privately built CoreCLR and libraries by executing load-corefx-testhost.ps1 -b followed by run-docker-compose.ps1 -b. However, it was not possible to run the stress server on a private Asp.Net Core package which is used for private libraries build.

This PR adds a new -pa parameter to run-docker-compose.ps1 which builds a server container with a private Asp.Net Core package version.

4 years agoReenable unified instruction set logic (#33936)
David Wrighton [Tue, 24 Mar 2020 16:34:05 +0000 (09:34 -0700)]
Reenable unified instruction set logic (#33936)

* Revert "Revert "Unify instruction set definition (#33730)""

This reverts commit 5a71f14da2c9c2f4ef4fc1dc85f40a70bbc10dc5.

* Ensure that 64 bit variants of instruction sets are handled correctly
- Make sure to enable them based on the related 32bit instruction sets before disabling instruction sets that are enabled but not compatible with the instruction set hierarchy the runtime is designed for.

* Update jit EE version interface as this revert changes the interface back to the pre-revert state.

4 years agoUpdate lowerxarch to handle some hwintrinsics that were missed (#33983)
Tanner Gooding [Tue, 24 Mar 2020 16:28:08 +0000 (09:28 -0700)]
Update lowerxarch to handle some hwintrinsics that were missed (#33983)

* Update lowerxarch to handle some hwintrinsics that were missed

* Don't mark ShiftLeftLogical128BitLane or ShiftRightLogical128BitLane as NoContainment, as they have a containable immediate

4 years agoDisable JsonSerializer test failing in CI (#34012)
Stephen Toub [Tue, 24 Mar 2020 15:44:28 +0000 (11:44 -0400)]
Disable JsonSerializer test failing in CI (#34012)

4 years agofix clean (#33758)
Anirudh Agnihotry [Tue, 24 Mar 2020 14:18:37 +0000 (07:18 -0700)]
fix clean (#33758)

4 years ago[mono] Make some API functions public and private (#33736)
Aleksey Kliger (λgeek) [Tue, 24 Mar 2020 13:29:45 +0000 (09:29 -0400)]
[mono] Make some API functions public and private (#33736)

* [mini] Move mono_install_load_aot_data_hook to a public header

It's already a MONO_API and it is used, for example, by Xamarin.iOS, but it
wasn't in a public header.

Mark it external only.  There are no uses of it inside the runtiem

* [gc] Make mono_gc_init_finalizer_thread a public API

It was already used by Xamarin.iOS but wasn't in a public header and required
compiling with --disable-visibility-hidden in order to dlsym the symbol.

If --with-lazy-gc-thread-creation is used, embedders must call this function to
create the finalizer therad.  Otherwise the function does nothing and the
runtime will create the finalizer thread automatically.

* [utils] Move mono_trace_init to a public header

It was already marked as MONO_API, but it was not in a public header.
It is used by embedders such as Xamarin.iOS

* Update ios sample

* Revert "[utils] Move mono_trace_init to a public header"

This reverts commit a0cc08768e97c7b630ccbf54e48020b06436f874.

* [utils] init mono_logger in all public API functions

Embedders don't need to call mono_trace_init before calling
mono_trace_set_log_handler, mono_trace_set_print_handler or mono_trace_set_printerr_handler

* [jit] Move mono_install_load_aot_data_hook to mono-private-unstable.h

We do not guarantee that this API will be stable

4 years agoiOS: Enable System.Net.Security.Native and parts of System.Security.Cryptography...
Alexander Köplinger [Tue, 24 Mar 2020 13:29:16 +0000 (14:29 +0100)]
iOS: Enable System.Net.Security.Native and parts of System.Security.Cryptography.Native.Apple (#33970)

Unavailable APIs are excluded via #if for now.

4 years agoFix build break with latest VS preview (#33996)
Jan Kotas [Tue, 24 Mar 2020 13:20:28 +0000 (06:20 -0700)]
Fix build break with latest VS preview (#33996)

runtime\src\coreclr\src\gc\gc.cpp(4343,1): warning C5208: unnamed class used in typedef name cannot declare members other than non-static data members, member enumerations, or member classes

4 years agoFix incorrect comment in Queue.Dequeue (#34006)
Anton Vasiliev [Tue, 24 Mar 2020 12:48:04 +0000 (15:48 +0300)]
Fix incorrect comment in Queue.Dequeue (#34006)

The comment in front of System.Collections.Queue.Dequeue() changed to
match actual routine behavior.

4 years agoMinor doc updates (#34003)
Jan Kotas [Tue, 24 Mar 2020 12:47:28 +0000 (05:47 -0700)]
Minor doc updates (#34003)

4 years agoRemove a few boxing/string allocations in XmlJsonWriter (#33991)
Stephen Toub [Tue, 24 Mar 2020 12:46:56 +0000 (08:46 -0400)]
Remove a few boxing/string allocations in XmlJsonWriter (#33991)

4 years agoSuppress analyzer warning about ValueTask usage (#33994)
Stephen Toub [Tue, 24 Mar 2020 12:45:08 +0000 (08:45 -0400)]
Suppress analyzer warning about ValueTask usage (#33994)

4 years ago[interp] Replace ldloca + ldfld/stfld pairs with ldloc/stloc (#33952)
monojenkins [Tue, 24 Mar 2020 11:59:18 +0000 (07:59 -0400)]
[interp] Replace ldloca + ldfld/stfld pairs with ldloc/stloc (#33952)

If loaded/stored field is the only field of the valuetype. This is meant to mainly optimize IntPtr accesses, which contains a single void* field and is heavily used in Unsafe intrinsics.

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
4 years agoRename TARGET_DARWIN to TARGET_OSX (#33959)
Alexander Köplinger [Tue, 24 Mar 2020 10:44:34 +0000 (11:44 +0100)]
Rename TARGET_DARWIN to TARGET_OSX (#33959)

https://github.com/dotnet/runtime/pull/33716 set TARGET_DARWIN for iOS too but most of the logic is really OSX-specific.
Unset TARGET_DARWIN for iOS and rename the rest of the occurrences to TARGET_OSX.

4 years ago[master] Update dependencies from dotnet/arcade mono/linker (#33852)
dotnet-maestro[bot] [Tue, 24 Mar 2020 09:12:04 +0000 (10:12 +0100)]
[master] Update dependencies from dotnet/arcade mono/linker (#33852)

* Update dependencies from https://github.com/dotnet/arcade build 20200320.1

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20170.1
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20170.1
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20170.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20170.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20170.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20170.1
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20170.1
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20170.1
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20170.1
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20170.1
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20170.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20170.1
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20170.1
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20170.1

* Update dependencies from https://github.com/dotnet/arcade build 20200320.4

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20170.4
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20170.4
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20170.4
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20170.4
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20170.4
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20170.4
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20170.4
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20170.4
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20170.4
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20170.4
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20170.4
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20170.4
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20170.4
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20170.4

* Update dependencies from https://github.com/mono/linker build 20200320.1

- ILLink.Tasks - 0.1.6-prerelease.20170.1

* Update dependencies from https://github.com/dotnet/arcade build 20200321.1

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20171.1
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20171.1
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20171.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20171.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20171.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20171.1
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20171.1
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20171.1
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20171.1
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20171.1
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20171.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20171.1
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20171.1
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20171.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoRemove Mono runtime vcruntime140.dll release build dependency. (#33853)
Johan Lorensson [Tue, 24 Mar 2020 07:24:12 +0000 (08:24 +0100)]
Remove Mono runtime vcruntime140.dll release build dependency. (#33853)

CoreCLR static link vcruntime140.dll, but dynamic link rest of
C-runtime using ucrt.lib in release build. Commit align Mono runtime to
follow same pattern, removing dependency on vcruntime140.dll.

4 years agoImplement icall used by RuntimeHelpers.EnsureSufficientExecutionStack on netcore...
Johan Lorensson [Tue, 24 Mar 2020 07:22:46 +0000 (08:22 +0100)]
Implement icall used by RuntimeHelpers.EnsureSufficientExecutionStack on netcore Mono. (#33857)

Current implementation always returned true for Windows/Linux/Android.
There are however use of this API in Task library to make sure recursive
tasks won't hit stackoverflow. There are several tests in System.Threading.Tasks
that currently hit this, at least on Windows, causing test failures.

Fix use stack limits already setup in register_thread and used by GC when
doing conservative stack scan. If the limits have not been setup or is not
supported on platform, we will use old defaults, always assume there is
enough stack space available. Heuristics around size of minimum execution
stack needed are picked from corresponding CoreCLR implementation.

4 years agoFix nullability annotations for ProfileOptimization.StartProfile (#33945)
Jan Kotas [Tue, 24 Mar 2020 07:00:45 +0000 (00:00 -0700)]
Fix nullability annotations for ProfileOptimization.StartProfile (#33945)

Fixes #33426

4 years agoUpdate README.md (#33999)
Robert Henry [Tue, 24 Mar 2020 04:42:23 +0000 (21:42 -0700)]
Update README.md (#33999)

Add missing back-ticks to quote a path name.

4 years agoUpdate README.md (#33995)
Robert Henry [Tue, 24 Mar 2020 04:40:13 +0000 (21:40 -0700)]
Update README.md (#33995)

Add missing articles ("the") to README.md

4 years agoMove unbox tramp method address table to data segment, MONO_ARCH_CODE_EXEC_ONLY....
monojenkins [Tue, 24 Mar 2020 04:28:06 +0000 (00:28 -0400)]
Move unbox tramp method address table to data segment, MONO_ARCH_CODE_EXEC_ONLY. (#33969)

unbox tramp method addresses are emitted as a table of calls and read at runtime by get_call_table_entry. This is problematic on platforms that doesn't allow data to be read from instruction stream.

Fix follow same pattern as method address table emitted as function pointers into table in data segment when using MONO_ARCH_CODE_EXEC_ONLY.

Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
4 years ago[mono] retry mono_threads_pthread_kill if result == EAGAIN on Linux (#33966)
Aleksey Kliger (λgeek) [Tue, 24 Mar 2020 03:13:58 +0000 (23:13 -0400)]
[mono] retry mono_threads_pthread_kill if result == EAGAIN on Linux (#33966)

* [mono] retry mono_threads_pthread_kill if result == EAGAIN on Linux

Try to address https://github.com/dotnet/runtime/issues/32377
(signal queue overflow) by sleeping and retrying a few times.

4 years ago[Arm64] Implement more hardware intrinsics as proposed in #24794 (#33889)
Egor Chesakov [Tue, 24 Mar 2020 02:39:36 +0000 (19:39 -0700)]
[Arm64] Implement more hardware intrinsics as proposed in #24794 (#33889)

- Implements the following intrinsics as proposed in #24794:

* AbsoluteDifferenceAdd

* MultiplyExtended, MultiplyExtendedScalar

* PolynomialMultiply

* ReciprocalEstimate, ReciprocalEstimateScalar

* ReciprocalExponentScalar

* ReciprocalSquareRootEstimate, ReciprocalSquareRootEstimateScalar

* ReciprocalSquareRootStep, ReciprocalSquareRootStepScalar

* ReciprocalStep, ReciprocalStepScalar

- Implements frecpe, frecps, frecpx, frsqrte, frsqrts, urecpe, ursqrte instructions

- Fixes implementation for fcmeq, fcmge, fcmgt, fcmle, fcmlt *(zero immediate)* instructions

- Adds missing flag BaseTypeFromFirstArg for AbsoluteDifference intrinsics