platform/upstream/dotnet/runtime.git
5 years agoFixing the deadlocks
Andrew Au [Mon, 6 Aug 2018 22:04:37 +0000 (15:04 -0700)]
Fixing the deadlocks

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

5 years agoFix collision with ICorDebugProcess9 to 10
Andrew Wang [Thu, 2 Aug 2018 01:53:21 +0000 (18:53 -0700)]
Fix collision with ICorDebugProcess9 to 10

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

5 years agoFix a bug where a data breakpoint is accidentially deleted when the context is restor...
Andrew Au [Thu, 19 Jul 2018 20:00:49 +0000 (13:00 -0700)]
Fix a bug where a data breakpoint is accidentially deleted when the context is restored on FuncEval completion

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

5 years agoUsing Debugger::SuspendComplete()
Andrew Au [Fri, 13 Jul 2018 18:12:24 +0000 (11:12 -0700)]
Using Debugger::SuspendComplete()

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

5 years agoReturn better HR for failing to get managed thread context
Andrew Au [Wed, 11 Jul 2018 20:41:07 +0000 (13:41 -0700)]
Return better HR for failing to get managed thread context

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

5 years agoDo not handle the thread context for garbage collection events
Andrew Au [Wed, 11 Jul 2018 00:20:42 +0000 (17:20 -0700)]
Do not handle the thread context for garbage collection events

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

5 years agoSimple fixes
Andrew Au [Sat, 7 Jul 2018 16:33:14 +0000 (09:33 -0700)]
Simple fixes

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

5 years agoEliminate dataBreakpointMask from ICorDebug
Andrew Au [Fri, 29 Jun 2018 22:54:12 +0000 (15:54 -0700)]
Eliminate dataBreakpointMask from ICorDebug

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

5 years agoFixing linux build
Andrew Au [Wed, 27 Jun 2018 20:23:17 +0000 (13:23 -0700)]
Fixing linux build

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

5 years agoGet/Set the ThreadContext natively if the debuggee is block on garbage collection...
Andrew Au [Wed, 27 Jun 2018 18:15:04 +0000 (11:15 -0700)]
Get/Set the ThreadContext natively if the debuggee is block on garbage collection events

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

5 years agoHacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed...
Andrew Au [Tue, 26 Jun 2018 17:31:07 +0000 (10:31 -0700)]
Hacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed ThreadContext

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

5 years agoClear Canary cache unconditionally
Andrew Au [Thu, 21 Jun 2018 17:52:13 +0000 (10:52 -0700)]
Clear Canary cache unconditionally

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

5 years agoFix linux build
Andrew Au [Thu, 21 Jun 2018 17:45:31 +0000 (10:45 -0700)]
Fix linux build

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

5 years agoThis should fix the non-deterministic failures
Andrew Au [Wed, 20 Jun 2018 00:06:31 +0000 (17:06 -0700)]
This should fix the non-deterministic failures

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

5 years agoProperly fix the DB_IPCE_ASYNC_BREAK case
Andrew Au [Fri, 15 Jun 2018 23:18:48 +0000 (16:18 -0700)]
Properly fix the DB_IPCE_ASYNC_BREAK case

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

5 years agoRemoving unnecessary hacks
Andrew Au [Thu, 24 May 2018 22:52:32 +0000 (15:52 -0700)]
Removing unnecessary hacks

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

5 years agofind_object
Maoni0 [Wed, 23 May 2018 20:52:08 +0000 (13:52 -0700)]
find_object

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

5 years agoCompleted the lock reversal work
Andrew Au [Thu, 24 May 2018 18:43:54 +0000 (11:43 -0700)]
Completed the lock reversal work

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

5 years agoMaking sure issues are tracked by TODOs
Andrew Au [Tue, 22 May 2018 23:00:11 +0000 (16:00 -0700)]
Making sure issues are tracked by TODOs

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

5 years agoFiring the GC events within the thread suspension
Andrew Au [Tue, 22 May 2018 22:08:25 +0000 (15:08 -0700)]
Firing the GC events within the thread suspension

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

5 years agoContainerObject -> ContainingObject
Andrew Au [Thu, 17 May 2018 22:20:15 +0000 (15:20 -0700)]
ContainerObject -> ContainingObject

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

5 years agoPass databreakpoint mask into debugger
Tom McDonald [Thu, 17 May 2018 02:20:06 +0000 (19:20 -0700)]
Pass databreakpoint mask into debugger

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

5 years agoImplement ICorDebugManagedCallback4::DataBreakpoint
Tom McDonald [Wed, 16 May 2018 18:31:34 +0000 (11:31 -0700)]
Implement ICorDebugManagedCallback4::DataBreakpoint

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

5 years agoSaving progress
Andrew Au [Wed, 16 May 2018 00:42:29 +0000 (17:42 -0700)]
Saving progress

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

5 years agoICorDebugValue -> ICorDebugObjectValue on GetContainerObject()
Andrew Au [Tue, 15 May 2018 20:54:46 +0000 (13:54 -0700)]
ICorDebugValue -> ICorDebugObjectValue on GetContainerObject()

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

5 years agoA dummy implementation of the GetContainerObject API
Andrew Au [Mon, 14 May 2018 22:52:55 +0000 (15:52 -0700)]
A dummy implementation of the GetContainerObject API

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

5 years agoBoilerplate for adding new DBI method
Andrew Au [Mon, 14 May 2018 17:18:38 +0000 (10:18 -0700)]
Boilerplate for adding new DBI method

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

5 years agoPassing ICorDebugProcess instead of ICorDebugController
Andrew Au [Thu, 10 May 2018 23:43:54 +0000 (16:43 -0700)]
Passing ICorDebugProcess instead of ICorDebugController

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

5 years agoThe GC events are now working, somewhat ...
Andrew Au [Thu, 10 May 2018 21:49:39 +0000 (14:49 -0700)]
The GC events are now working, somewhat ...

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

5 years agoMake sure we block after sending the events
Andrew Au [Thu, 10 May 2018 16:39:33 +0000 (09:39 -0700)]
Make sure we block after sending the events

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

5 years agoSaving progress - works towards gc events
Andrew Au [Wed, 9 May 2018 16:40:47 +0000 (09:40 -0700)]
Saving progress - works towards gc events

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

5 years agoAdd x86 data breakpoint support
Andrew Au [Fri, 4 May 2018 20:33:12 +0000 (13:33 -0700)]
Add x86 data breakpoint support

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

5 years agoInitial data breakpoint changes
Cagri (Charlie) Aslan [Wed, 28 Mar 2018 02:39:16 +0000 (19:39 -0700)]
Initial data breakpoint changes

temporary changes towards multiple data breakpoints

add multiple hardware bp support

Remove Complus.log

revert log.cpp changes

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

5 years agoDisable running ILAsm round-trip build on COM Tests (dotnet/coreclr#20822)
Jeremy Koritzinsky [Wed, 7 Nov 2018 00:26:40 +0000 (16:26 -0800)]
Disable running ILAsm round-trip build on COM Tests (dotnet/coreclr#20822)

* Disable running ILAsm round-trip build on COM  (requires ilasm resource embedding support).

* ILAsmTestKind -> IlrtTestKind

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

5 years agotry to use exclude on same line as Include instead of remove in separate step (dotnet...
Tomas Weinfurt [Tue, 6 Nov 2018 23:10:18 +0000 (15:10 -0800)]
try to use exclude on same line as Include instead of remove in separate step (dotnet/coreclr#20846)

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

5 years agoLoop-free GC rounding helpers with _BitScanReverse. (dotnet/coreclr#20157)
Jack Pappas [Tue, 6 Nov 2018 23:07:47 +0000 (18:07 -0500)]
Loop-free GC rounding helpers with _BitScanReverse. (dotnet/coreclr#20157)

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

5 years agoRemove /RESOURCE flag documentation on ilasm. (dotnet/coreclr#20818)
Jeremy Koritzinsky [Tue, 6 Nov 2018 21:33:29 +0000 (13:33 -0800)]
Remove /RESOURCE flag documentation on ilasm. (dotnet/coreclr#20818)

* Remove /RESOURCE flag on ilasm.

* Revert "Remove /RESOURCE flag on ilasm."

This reverts commit dotnet/coreclr@7d1a9ac959a94359d2f1ef5f70ec7041804ec6f4.

* Update documentation in ilasm switches.

* Update documentation to say that the obj file has to come from a .res file.

* Remove documentation of the /RESOURCE switch. Leave the switch code-path in place for corefx.

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

5 years agoImprove performance of Memory<T>.Span property getter (dotnet/coreclr#20386)
Levi Broderick [Tue, 6 Nov 2018 19:02:16 +0000 (11:02 -0800)]
Improve performance of Memory<T>.Span property getter (dotnet/coreclr#20386)

- We can use our knowledge of object representation in the runtime to speed up type checks.
- We leave the ref T and the length deconstructed until the very end, optimizing register usage.
- The Length property getter is once again just a simple field accessor with no bitwise logic.

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

5 years agoMerge pull request dotnet/coreclr#20633 from BruceForstall/FixSPCheck
Bruce Forstall [Tue, 6 Nov 2018 18:52:40 +0000 (10:52 -0800)]
Merge pull request dotnet/coreclr#20633 from BruceForstall/FixSPCheck

Fix SP check for x64/x86, remove for arm32/arm64

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

5 years agoEnable SyncBlk for xplat SOS (dotnet/coreclr#20830)
Mike McLaughlin [Tue, 6 Nov 2018 18:42:53 +0000 (10:42 -0800)]
Enable SyncBlk for xplat SOS (dotnet/coreclr#20830)

Add SyncBlk to xplat SOS.

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

5 years agofix corefx folder (dotnet/coreclr#20828)
Sergey Andreenko [Tue, 6 Nov 2018 18:24:37 +0000 (10:24 -0800)]
fix corefx folder (dotnet/coreclr#20828)

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

5 years agoMerge pull request dotnet/coreclr#20834 from BruceForstall/FixArmElJob
Bruce Forstall [Tue, 6 Nov 2018 17:52:29 +0000 (09:52 -0800)]
Merge pull request dotnet/coreclr#20834 from BruceForstall/FixArmElJob

Fix corefx folder for Tizen job

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

5 years agoFix corefx folder for Tizen job
Bruce Forstall [Tue, 6 Nov 2018 17:28:45 +0000 (09:28 -0800)]
Fix corefx folder for Tizen job

https://ci.dot.net/job/dotnet_coreclr/job/master/job/armel_cross_checked_tizen_innerloop_prtest/

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

5 years agoAdded support for running in a sandbox on Mac (dotnet/coreclr#20735)
Oded Hanson [Tue, 6 Nov 2018 16:31:49 +0000 (18:31 +0200)]
Added support for running in a sandbox on Mac (dotnet/coreclr#20735)

* Added support for running in a sandbox on Mac

When running in a sandbox, the Mac operating system will limit access to resources, esp. the file system. Right now both Mutex and SharedMemory in the PAL are accessing the /tmp folder for which Mac does not provide the application permissions to access.

Instead, the sandbox provides the ability to share information between applications by using a shared container folder. This is done by registering the application with an Application Group ID. Using this ID, we can access the shared folder and read/write from it.

Since the .Net runtime can be loaded in multiple ways, we decided that the easiest way to let the runtime know what the application group ID is via an environment variable. Thus, if the NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID environment variable is set (on Mac), the runtime will assume we are sandboxed, and will use the value provided as the application group ID. Note that due to limitations on semaphore file lengths, we will not allow application group IDs longer than 13 characters. This gives us 10 characters for the developer ID, and 3 extra characters for the group name.

When sandbox is disabled (the environment variable is empty) then the folder for Mutex and SharedMemory will continue to be rooted in /tmp. However when the sandbox is enabled, these files will be created under /user/{loginname}/Library/Group Containers/{AppGroupId}/.

Fixes dotnet/coreclr#20473

* Made  gApplicationContainerPath a pointer so it does not get automatically deleted by the c runtime

* Made s_runtimeTempDirectoryPath and s_sharedMemoryDirectoryPath pointers so they are not automatically deleted by the c runtime

* Renamed gApplicationContainerPath to gSharedFilesPath

* Renamed NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID to DOTNET_SANDBOX_APPLICATION_GROUP_ID

* Fixed usage of VerifyStringOperation

* Replaced new with InternalNew

* Wrapped Apple specific code with #ifdef

* Added exception handling during close

* Moved VerifyStringOperation macro into SharedMemoryManager

* Moved PathCharString variable declarations before AutoCleanup is declared.

* Fixed initialization functions not to throw

* Renamed CopyPath to BuildSharedFilesPath

* Fixed misc nits

* Fixed implicit conversions from BOOL to bool

* Moved MAX_APPLICATION_GROUP_ID_LENGTH inside ifdef APPLE

* Removed PAL_IsApplicationSandboxed

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

5 years agoFix calling convention for 3 p/invoke test cases
Bruce Forstall [Tue, 6 Nov 2018 02:41:16 +0000 (18:41 -0800)]
Fix calling convention for 3 p/invoke test cases

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

5 years agoFix SP check for x64/x86, remove for arm32/arm64
Bruce Forstall [Fri, 26 Oct 2018 07:06:38 +0000 (00:06 -0700)]
Fix SP check for x64/x86, remove for arm32/arm64

The actual checking had gotten lost between JIT32 and RyuJIT.
I fixed the "on return from function" case for x86/x64, and
the "around every call site" case for x86.

I removed the arm64 case because it's not easy to store SP to a
stack local or directly compare SP against a stack local without
a temporary. Also, for the fixed outgoing arg space ABIs (all but x86),
these checks don't seem too useful anyway, so I also removed the
arm case.

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

5 years agoExclude FreeBSD symbol packages from symbol uploader (Part 3) (dotnet/coreclr#20824)
Mike McLaughlin [Tue, 6 Nov 2018 00:43:03 +0000 (16:43 -0800)]
Exclude FreeBSD symbol packages from symbol uploader (Part 3) (dotnet/coreclr#20824)

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

5 years agoAdd support for BSWAP intrinsic (dotnet/coreclr#18398)
Levi Broderick [Tue, 6 Nov 2018 00:06:32 +0000 (16:06 -0800)]
Add support for BSWAP intrinsic (dotnet/coreclr#18398)

With this change, the JIT will recognize a call to BinaryPrimitives.ReverseEndianness and will emit a bswap instruction.
This logic is currently only hooked up for x86 and x64; ARM still uses fallback logic.
If the JIT can't emit a bswap instruction (for example, trying to emit a 64-bit bswap in a 32-bit process), it will fall back to a software implementation, so the APIs will work across all architectures.

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

5 years agoAdding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)
Tanner Gooding [Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)]
Adding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)

* Adding BitIncrement, BitDecrement, CopySign, MaxMagnitude, and MinMagnitude to Math and MathF

* Adding FusedMultiplyAdd, IlogB, Log2, and ScaleB to Math and MathF

* Adding some basic PAL tests for fma, ilogb, log2, and scalbn

* Fixing a couple typos and adding clarifying comments

* Fixing the MSVC _VVV FCALL declarations

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

5 years agoUpdating the importer to throw a NotImplementedException if it finds a mustExpand...
Tanner Gooding [Mon, 5 Nov 2018 23:37:14 +0000 (15:37 -0800)]
Updating the importer to throw a NotImplementedException if it finds a mustExpand intrinsic that it can't expand (dotnet/coreclr#20792)

* Updating the importer to throw a NotImplementedException if it finds a mustExpand hwintrinsic that it can't expand

* Updating the JITEEVersionIdentifier

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

5 years agoImprove/fix SerialStream.Dispose (dotnet/corefxdotnet/coreclr#33221)
Krzysztof Wicher [Mon, 5 Nov 2018 18:48:53 +0000 (10:48 -0800)]
Improve/fix SerialStream.Dispose (dotnet/corefxdotnet/coreclr#33221)

* Improve/fix SerialStream.Dispose

* Review feedback

* remove unused using statement

* Use ToFileDescriptor

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

5 years agoMerge pull request dotnet/coreclr#20736 from briansull/issue_18672
Brian Sullivan [Mon, 5 Nov 2018 23:13:05 +0000 (15:13 -0800)]
Merge pull request dotnet/coreclr#20736 from briansull/issue_18672

Fix ValueNumber constant propagation with nested structs

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

5 years ago Fiber-friendly Vectored Exception Handling (dotnet/coreclr#20746)
Tobias Loew [Mon, 5 Nov 2018 19:28:01 +0000 (20:28 +0100)]
 Fiber-friendly Vectored Exception Handling (dotnet/coreclr#20746)

* Fiber-friendly Vectored Exception Handling

Check during exception handling if the cached and the current stack-base match to detect Fibers.

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

5 years agoFix constant propagation with nested structs
Brian Sullivan [Thu, 1 Nov 2018 00:11:38 +0000 (17:11 -0700)]
Fix constant propagation with nested structs
Fixes dotnet/coreclr#18672
Test case is here: JIT/Regression/JitBlue/GitHub_18672/GitHub_18672.cs

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

5 years agoBump FreeBSD AzDO build timeout to 90 minutes
Matt Galbraith [Mon, 5 Nov 2018 18:03:38 +0000 (10:03 -0800)]
Bump FreeBSD AzDO build timeout to 90 minutes

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

5 years agoFix perf regression in master. (dotnet/coreclr#20762)
Sergey Andreenko [Mon, 5 Nov 2018 17:03:43 +0000 (09:03 -0800)]
Fix perf regression in  (dotnet/coreclr#20762)

* Fix comments.

We count implict byref argument occurrences for all lclVars not only for promoted.

* Fix the regression.

Return the old behaiour where both parent and promoted lclVar have updated ref counters.

* rename `UpdateImplicitByRefCounter` to `UpdateEarlyRefCountForImplicitByRef`

* Fix comment.

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

5 years agoSystem.Decimal code style and comments clean-up (dotnet/coreclr#20793)
Pent Ploompuu [Sun, 4 Nov 2018 20:42:11 +0000 (22:42 +0200)]
System.Decimal code style and comments clean-up (dotnet/coreclr#20793)

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

5 years agoOptimization: Reduce many array allocations in GetCustomAtttributes()'s inherited...
Nick Craver [Sun, 4 Nov 2018 07:11:47 +0000 (02:11 -0500)]
Optimization: Reduce many array allocations in GetCustomAtttributes()'s inherited path (dotnet/coreclr#20779)

* Optimization: avoid 2 array allocations in inherited attribute misses

This is a follow-up to many allocations recognized in dotnet/coreclr#20448.

A lot of methods ultimately call through CustomAttributes.GetCustomAttributes(). In the inherited search path (default for most searches above), the inheritance path of a class is traversed, resulting in an array allocation per crawled type, a copy to the overall List<object> and then after that - in current code - an array allocation from that list and a typed array allocation it's copied to.

However, in the common miss case as simple as:
typeof(T).GetCustomAttributes(typeof(TAttr), true);
...and many other overloads, all the same path underneath...

We can avoid the last 2 arrays in the miss case. We have the List<object> to go off of. If that's a zero-entry list, we can return an Array.Empty<TAttr>(). That's effectively what this change does.

While converting the entire attribute pipeline to generics is problematic and has issue since some object[] return abstracts aren't sealed, we can at least somewhat trivially cache an array per attribute type (only one static, ultimately from Array.Empty<T> underneath) and return that for the miss case.

There are far more wins to be had here, but they require more changes.

* Move RuntimeType empty array cache generation to Attribute.CreateAttributeArrayHelper

This exposes Attribute.CreateAttributeArrayHelper to internal and uses it directly on the RuntimeType caching for empty arrays. Though this allocated 1 additional array overall, it's simpler, faster to init, and still is an infinite win over the per-call allocations before this overall changesets.

* CustomAttributes: remove needless array copy in the inherited hit case

This removes a .ToArray() for the sake of Array.Copy() where a simple for loop suffices and removes the allocation. Reversing the "empty" result checks is also just a bit cleaner here.

This also expands the same fix to the MemberInfo path.

Note: should DRY these up too (longstanding issue) - but let's do that in a separate commit for clarity.

* GetCusomAttributes: use ListBuilder<object> for inheritance crawls

This exposes RuntimeType.ListBuilder<T> for internal usage and replaces the List<T> allocation in GetCustomAttributes() paths to reduce allocations and increase performance in the inherited crawl paths (which is the default for many optional-parameter methods in layers above).

Note: there is a subtle behavior depending on previous-null (not possible with a struct now) in AttributeUsageCheck() that I believe still behaves correctly, but could use another set of eyes and a full test suite run to confirm. object[] attributes was removed there simply because it wasn't used before - only cleaning up.

* Attribute caching: use Array.CreateInstance() directly on RuntimeType

This also reverts the CreateAttributeArrayHelper => internal change, since it's no longer needed.

* Ref passing for RuntimeType.ListBuilder<object> & CustomAttribute simplification

This fixes the struct passing duplication and tweaks how we're creating arrays a bit, centralizing the zero-element checks to cover all cases as well as simplify the per-method code to rely on the fact this is happening underneath.

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

5 years agoImprove error messages for byref-like type loading errors (dotnet/coreclr#20789)
Jan Kotas [Sat, 3 Nov 2018 23:14:10 +0000 (16:14 -0700)]
Improve error messages for byref-like type loading errors (dotnet/coreclr#20789)

Related to dotnet/corefxdotnet/coreclr#33233

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

5 years agoMerge pull request dotnet/coreclr#20780 from dotnet/dev/unix_test_workflow
Bruce Forstall [Sat, 3 Nov 2018 22:23:17 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#20780 from dotnet/dev/unix_test_workflow

PMI asm diffs changes

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

5 years agoAdd StringBuilder.Append(ROM<char>) (dotnet/coreclr#20773)
Wraith2 [Sat, 3 Nov 2018 20:54:23 +0000 (20:54 +0000)]
Add StringBuilder.Append(ROM<char>) (dotnet/coreclr#20773)

* added Append(ROM<char>)

* address feedback

* revert sln

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

5 years agoUpdate CoreFx, CoreSetup, IbcData, PgoData to preview.18553.3, preview-27103-01,...
dotnet-maestro-bot [Sat, 3 Nov 2018 20:49:44 +0000 (13:49 -0700)]
Update CoreFx, CoreSetup, IbcData, PgoData to preview.18553.3, preview-27103-01, master-20181103-0046, master-20181103-0042, respectively (dotnet/coreclr#20785)

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

5 years agoCleanup and improve name formatting in reflection (dotnet/coreclr#20781)
Jan Kotas [Sat, 3 Nov 2018 16:45:30 +0000 (09:45 -0700)]
Cleanup and improve name formatting in reflection (dotnet/coreclr#20781)

* Delete internal Array.UnsafeCreateInstance method

* Delete binary serialization specific type name formatting

* Use ValueStringBuilder to format method names in reflection

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

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402...
dotnet-maestro-bot [Sat, 3 Nov 2018 12:31:32 +0000 (05:31 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402-01, preview-27102-02, preview.18552.1, preview-27102-03, master-20181102-0044, master-20181102-0041, respectively (master) (dotnet/coreclr#20745)

* Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402-01, preview-27102-02, preview.18552.1, preview-27102-03, master-20181102-0044, master-20181102-0041, respectively

* Disabled outdated test

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

5 years agoPerf improvements to Span and Memory (dotnet/coreclr#20771)
Levi Broderick [Sat, 3 Nov 2018 02:15:43 +0000 (19:15 -0700)]
Perf improvements to Span and Memory (dotnet/coreclr#20771)

* Perf improvements to Span and Memory
- Improves perf of AsSpan, AsMemory, ctor, and Slice

* PR feedback - add comments

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

5 years agoUse C# compiler's static data support in Encoding.Preamble (dotnet/coreclr#20768)
Stephen Toub [Sat, 3 Nov 2018 02:08:35 +0000 (22:08 -0400)]
Use C# compiler's static data support in Encoding.Preamble (dotnet/coreclr#20768)

* Use C# compiler's static data support in Encoding.Preamble

Also avoid Array.Empty and just use default span for an empty preamble.

* Address PR feedback

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

5 years agoAdd remaining IAsyncDisposable implementations to CoreLib (dotnet/coreclr#20676)
Stephen Toub [Sat, 3 Nov 2018 00:51:26 +0000 (20:51 -0400)]
Add remaining IAsyncDisposable implementations to CoreLib (dotnet/coreclr#20676)

* Add remaining IAsyncDisposable implementations to CoreLib

* Address PR feedback

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

5 years agoFix logging so that we can see the full 64 bit integer in the log file (dotnet/corecl...
Andrew Au [Sat, 3 Nov 2018 00:22:36 +0000 (17:22 -0700)]
Fix logging so that we can see the full 64 bit integer in the log file (dotnet/coreclr#20741)

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

5 years agoImprove performance of String.Equals(..., OrdinalIgnoreCase) (dotnet/coreclr#20734)
Levi Broderick [Sat, 3 Nov 2018 00:15:47 +0000 (17:15 -0700)]
Improve performance of String.Equals(..., OrdinalIgnoreCase) (dotnet/coreclr#20734)

- Tries to consume multiple chars in parallel when possible
- Didn't vectorize because inputs to this function are generally fairly small
- Moved static GlobalizationMode lookup out of hot path
- Removed indirection so that StringComparer now calls directly into workhorse routine

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

5 years agoMerge pull request dotnet/coreclr#20769 from BruceForstall/FixArm
Bruce Forstall [Fri, 2 Nov 2018 21:27:02 +0000 (14:27 -0700)]
Merge pull request dotnet/coreclr#20769 from BruceForstall/FixArm

Need to archive and transfer the Product directory for Linux arm/arm64

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

5 years agoMerge pull request dotnet/coreclr#20760 from hoyosjs/arcade
Juan Hoyos [Fri, 2 Nov 2018 20:48:49 +0000 (13:48 -0700)]
Merge pull request dotnet/coreclr#20760 from hoyosjs/arcade

Add base arcade scripts and versioning files

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

5 years agoMerge pull request dotnet/coreclr#20770 from BruceForstall/EnableMoreDiffs
Bruce Forstall [Fri, 2 Nov 2018 20:47:35 +0000 (13:47 -0700)]
Merge pull request dotnet/coreclr#20770 from BruceForstall/EnableMoreDiffs

Do PMI diffs on frameworks and benchmarks

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

5 years agoDo PMI diffs on frameworks and benchmarks
Bruce Forstall [Fri, 2 Nov 2018 20:45:59 +0000 (13:45 -0700)]
Do PMI diffs on frameworks and benchmarks

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

5 years agoAllows Debug.Fail to go through Trace Listeners (dotnet/coreclr#20764)
Maryam Ariyan [Fri, 2 Nov 2018 20:42:11 +0000 (13:42 -0700)]
Allows Debug.Fail to go through Trace Listeners (dotnet/coreclr#20764)

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

5 years agoNeed to archive and transfer the Product directory for Linux arm/arm64 PMI diffs
Bruce Forstall [Fri, 2 Nov 2018 20:39:53 +0000 (13:39 -0700)]
Need to archive and transfer the Product directory for Linux arm/arm64 PMI diffs

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

5 years agoAvoid unnecessary interlocked in ManualResetValueTaskSourceCore (dotnet/coreclr#20742)
Stephen Toub [Fri, 2 Nov 2018 16:52:42 +0000 (12:52 -0400)]
Avoid unnecessary interlocked in ManualResetValueTaskSourceCore (dotnet/coreclr#20742)

When a ManualResetValueTaskSourceCore is used as the implementation for a ValueTask, it's set up for the operation, and then two things happen: a callback is hooked up at some point, and the operation completes at some point.  The former generally occurs before the latter, however there is a race condition, and so both paths currently use an Interlocked.CompareExchange to coordinate.  But that means that we always end up with two CompareExchange operations.  In the common path, there's no contention between these, and so we can avoid one of the CompareExchanges by first doing a normal read of the target field (we were already doing that read in one of the two cases, but we weren't taking advantage of it).

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

5 years agoFix the test. (dotnet/coreclr#20701)
Sergey Andreenko [Fri, 2 Nov 2018 00:43:17 +0000 (17:43 -0700)]
Fix the test. (dotnet/coreclr#20701)

As https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.gchandle.free?view=netframework-4.7.2 says "The caller must ensure that for a given handle, Free is called only once.".

So delete the second call to `Free()`.

I believe it changes the desired behaviour for this test but it was added before 2010 (via source depo) and there are no comments about the regression that it was able to repro, so it is not worth to investigate that.

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

5 years agoRemove redundant zero-initializations for long-lifetime structs. (dotnet/coreclr...
Eugene Rozenfeld [Fri, 2 Nov 2018 00:19:34 +0000 (17:19 -0700)]
Remove redundant zero-initializations for long-lifetime structs. (dotnet/coreclr#20753)

When compInitMem is true long-lifetime structs (i.e., the ones with lvIsTemp set to false)
are zero-initialized in the prolog: https://github.com/dotnet/coreclr/blob/dotnet/coreclr@c8a63947382b0db428db602238199ca81badbe8e/src/jit/codegencommon.cpp#L4765

Therefore, these structs don't need an explicit zero-initialization in blocks that are not in a loop.

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

5 years agoFix freebsd symbol upload failure. (dotnet/coreclr#20759)
Mike McLaughlin [Thu, 1 Nov 2018 22:08:17 +0000 (15:08 -0700)]
Fix freebsd symbol upload failure. (dotnet/coreclr#20759)

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

5 years agoone more place to add case for freebsd (dotnet/coreclr#20756)
Tomas Weinfurt [Thu, 1 Nov 2018 21:39:42 +0000 (14:39 -0700)]
one more place to add case for freebsd (dotnet/coreclr#20756)

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

5 years agoDisplay offset in TimeZoneInfo.DisplayName (dotnet/coreclr#20728)
Egor Bogatov [Thu, 1 Nov 2018 21:13:10 +0000 (00:13 +0300)]
Display offset in TimeZoneInfo.DisplayName (dotnet/coreclr#20728)

* Display offset in TimeZoneInfo.DisplayInfo

* Display offset in TimeZoneInfo.DisplayInfo

* prefer +00.00

* Update TimeZoneInfo.Unix.cs

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

5 years agoMerge pull request dotnet/coreclr#20755 from dotnet/dev/unix_test_workflow
Bruce Forstall [Thu, 1 Nov 2018 21:07:15 +0000 (14:07 -0700)]
Merge pull request dotnet/coreclr#20755 from dotnet/dev/unix_test_workflow

Enable triggers for Linux x64 PMI asm diffs

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

5 years agoMerge pull request dotnet/coreclr#20752 from BruceForstall/EnableLinuxX64PmiDiffs
Bruce Forstall [Thu, 1 Nov 2018 20:03:43 +0000 (13:03 -0700)]
Merge pull request dotnet/coreclr#20752 from BruceForstall/EnableLinuxX64PmiDiffs

Fix PMI job triggers for x64 Linux

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

5 years agoMerge pull request dotnet/coreclr#20750 from BruceForstall/ReduceExpectedTestCount
Bruce Forstall [Thu, 1 Nov 2018 19:49:42 +0000 (12:49 -0700)]
Merge pull request dotnet/coreclr#20750 from BruceForstall/ReduceExpectedTestCount

Fix expected Pri-1 test count

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

5 years agoDisable outdated CoreFX tests (dotnet/coreclr#20749)
Jan Kotas [Thu, 1 Nov 2018 19:11:20 +0000 (12:11 -0700)]
Disable outdated CoreFX tests (dotnet/coreclr#20749)

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

5 years agoFix PMI job triggers for x64 Linux
Bruce Forstall [Thu, 1 Nov 2018 18:44:51 +0000 (11:44 -0700)]
Fix PMI job triggers for x64 Linux

Also, convert asm from ZIP to tar on non-Windows.

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

5 years agoMerge pull request dotnet/coreclr#20720 from dotnet/mmitche-patch-1
Matt Mitchell [Thu, 1 Nov 2018 18:01:57 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#20720 from dotnet/mmitche-patch-1

preview1 -> preview

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

5 years agoFix expected Pri-1 test count
Bruce Forstall [Thu, 1 Nov 2018 17:56:53 +0000 (10:56 -0700)]
Fix expected Pri-1 test count

https://github.com/dotnet/coreclr/pull/20693 reduced the number of
Pri-1 tests significantly, which caused this error to appear on
some Pri-1 builds, e.g., Ubuntu x64 Checked builds.

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

5 years agoFix JIT flags for ARM64 altjit (dotnet/coreclr#20711)
Bruce Forstall [Thu, 1 Nov 2018 17:46:41 +0000 (10:46 -0700)]
Fix JIT flags for ARM64 altjit (dotnet/coreclr#20711)

The ARM64 altjit was interpreting some JIT flags from the (mismatched)
x64 runtime incorrectly: they actually specify x64 architecture
capabilities, not ARM64 capabilities. And some of these capabilities
are not fully implemented/tested, so were leading to crashes doing
altjit asm diffs.

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

5 years agoWorkaround FreeBSD symbol publishing problem. (dotnet/coreclr#20733)
Mike McLaughlin [Thu, 1 Nov 2018 17:14:39 +0000 (10:14 -0700)]
Workaround FreeBSD symbol publishing problem. (dotnet/coreclr#20733)

Issue #https://github.com/dotnet/coreclr/issues/20722

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

5 years agoUpdate PMI asm diffs in the CI (dotnet/coreclr#20743)
Bruce Forstall [Thu, 1 Nov 2018 16:59:04 +0000 (09:59 -0700)]
Update PMI asm diffs in the CI (dotnet/coreclr#20743)

* Respond to PMI asm diffs code review feedback

Add some try/finally code to improve robustness.
Remove direct invocation of run.cmd.

Also, simplify the generated asm directory hierarchy.

* Improve PMI script error code

Only return non-zero if there is a fatal error. For non-fatal error,
such as the existence of asm diffs, return zero. This will allow
subsequent "build" steps in netci.groovy to run, namely, the
archiving of the asm directory.

Later, determine a better way figure out how to deal with the existence
of asm diffs.

* Update dotnet SDK download links

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

5 years agocorert compile fixes, corert class Debug should be partial and s_WriteCore need to...
Maryam Ariyan [Thu, 1 Nov 2018 03:18:02 +0000 (20:18 -0700)]
corert compile fixes, corert class Debug should be partial and s_WriteCore need to be assigned

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

5 years agoMake BitScanForward/BitScanForward64 PAL wrappers branchless. (dotnet/coreclr#20412)
Jack Pappas [Thu, 1 Nov 2018 05:50:23 +0000 (01:50 -0400)]
Make BitScanForward/BitScanForward64 PAL wrappers branchless. (dotnet/coreclr#20412)

The BitScanForward/BitScanForward64 wrapper functions from the PAL and
gcenv have been modified so they're faster (and branchless), while also
adhering more closely to the behavior of the MSVC intrinsics.

Use _BitScanForward64 when targeting 64-bit Windows.

The _WIN32 macro is always defined by MSVC, even when targeting 64-bit
versions of Windows. Use the _WIN64 macro instead to check whether the
build is targeting 64-bit Windows, and if so, use the _BitScanForward64
intrinsic for the BitScanForward64 wrapper instead of the 32-bit-based
fallback.

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

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03330...
dotnet-maestro-bot [Thu, 1 Nov 2018 03:03:51 +0000 (20:03 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03330-01, preview1-27031-03, preview1.18530.5, preview1-27031-02, master-20181031-1450, master-20181031-1447, respectively (dotnet/coreclr#20665)

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

5 years agoClean up string literal implicit const casting and some two-phase lookup nits on...
Jeremy Koritzinsky [Thu, 1 Nov 2018 00:56:38 +0000 (17:56 -0700)]
Clean up string literal implicit const casting and some two-phase lookup nits on Windows (dotnet/coreclr#20730)

* Remove implicit c-string const casting and clean up some C++ standards conformance bugs.

* Fix const string conversion in FCSigCheck.

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

5 years agoDetect integer overflow in String.Replace
Jan Kotas [Wed, 31 Oct 2018 20:43:20 +0000 (13:43 -0700)]
Detect integer overflow in String.Replace

Fixes dotnet/coreclr#20719

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

5 years agoFix corrupted StringBuilder state after out of memory exception
Jan Kotas [Wed, 31 Oct 2018 18:19:32 +0000 (11:19 -0700)]
Fix corrupted StringBuilder state after out of memory exception

Fixes dotnet/coreclr#20718

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

5 years agoMake the check for a struct fitting in a register check for either managed or native...
Jeremy Koritzinsky [Tue, 30 Oct 2018 23:30:16 +0000 (16:30 -0700)]
Make the check for a struct fitting in a register check for either managed or native depending on the situation (i.e. managed call, reflection, P/Invoke) instead of only for managed. Fixes dotnet/coreclr#20702.

Clean up duplicate #ifdefs.

Move #ifdef into method impl instead of outside the implementations.

Move IsRegPassedStruct out of UNIX_AMD64_ABI #ifdef.

Move check for enregistered struct out of UNIX_AMD64_ABI #ifdef

Add dummy implementation of IsRegPassedStruct and IsNativeStructPassedInRegisters when UNIX_AMD64_ABI isn't defined.

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

5 years agoAdd PInvoke/Structures tests
Jiang Zeng (Pactera Technologies Inc) [Wed, 8 Aug 2018 09:19:42 +0000 (02:19 -0700)]
Add PInvoke/Structures tests

Fix compile warnings

Fix compile warnings

Fix compile warnings

Remove duplicate tests. Move ReversePinvoke tests under StructMarshalling.

Clean up some compile errors.

More string cleanup.

More string fixes

Clean up consts and typedefs.

Fix typo.

Change TP_slen return type to match xplatform.h

Fix printf specifiers.

Don't define wcslen in xplatform if it's been macro redefined (to platformdefines.h's TP_slen)

Fix build breaks.

Remove extension from DllImport so it will correctly resolve xplat.

Fix printf specifiers again...

Fix Windows x86 calling convention mismatch.

Fix HRESULT size off-Windows

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

5 years agoAdd PInvoke/NativeCallManagedComVisible tests (dotnet/coreclr#19328)
Zeng Jiang [Thu, 1 Nov 2018 00:02:52 +0000 (08:02 +0800)]
Add PInvoke/NativeCallManagedComVisible tests (dotnet/coreclr#19328)

* Add PInvoke/NativeCallManagedComVisible tests

* Update to current infrastructure and disable off-Windows

* Fix incorrect S_OK value and made the native side actually return an HRESULT in hr.

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