platform/upstream/coreclr.git
8 years agoMerge pull request #4616 from LLITCHEV/MultiCoreJit-1
Lubomir Litchev [Tue, 3 May 2016 01:23:43 +0000 (18:23 -0700)]
Merge pull request #4616 from LLITCHEV/MultiCoreJit-1

Add ability to AutoStartProfiling for CoreCLR.

8 years agoMerge pull request #4731 from kyulee1/onlypush
Kyungwoo Lee [Tue, 3 May 2016 01:00:47 +0000 (18:00 -0700)]
Merge pull request #4731 from kyulee1/onlypush

ARM64: Trigger Failure Email for Push Only

8 years agoARM64: Trigger Failure Email for Push Only
Kyungwoo Lee [Tue, 3 May 2016 00:56:13 +0000 (17:56 -0700)]
ARM64: Trigger Failure Email for Push Only

8 years agoMerge pull request #4719 from dotnet-bot/from-tfs
Bruce Forstall [Mon, 2 May 2016 22:00:55 +0000 (15:00 -0700)]
Merge pull request #4719 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #4684 from gkhanna79/CrossgenJIT
Gaurav Khanna [Mon, 2 May 2016 21:12:15 +0000 (14:12 -0700)]
Merge pull request #4684 from gkhanna79/CrossgenJIT

Load JIT from custom location for Crossgen

8 years agoMerge pull request #4718 from kyulee1/nativevararg
Kyungwoo Lee [Mon, 2 May 2016 21:04:28 +0000 (14:04 -0700)]
Merge pull request #4718 from kyulee1/nativevararg

ARM64: NativeVarArg

8 years agoMerge pull request #4637 from adityamandaleeka/synch_cleanup
Aditya Mandaleeka [Mon, 2 May 2016 18:53:13 +0000 (11:53 -0700)]
Merge pull request #4637 from adityamandaleeka/synch_cleanup

Remove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager

8 years agoAdd ability to AutoStartProfiling for CoreCLR.
Lubomir Litchev [Tue, 26 Apr 2016 20:11:02 +0000 (13:11 -0700)]
Add ability to AutoStartProfiling for CoreCLR.

Add ability to do MultiCoreJit profiling in the CoreCLR. This is used for
testing of the MultiCoreJit functionality.

8 years agoMerge pull request #4709 from myungjoo/fix/4682
Jan Kotas [Mon, 2 May 2016 18:05:17 +0000 (11:05 -0700)]
Merge pull request #4709 from myungjoo/fix/4682

Match Inconsistent CMake/MSBuild Compiler Definitions

8 years agoMerge pull request #4688 from dotnet-bot/from-tfs
Jan Kotas [Mon, 2 May 2016 17:49:32 +0000 (10:49 -0700)]
Merge pull request #4688 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #4692 from BruceForstall/FuncInfo
Bruce Forstall [Mon, 2 May 2016 17:26:23 +0000 (10:26 -0700)]
Merge pull request #4692 from BruceForstall/FuncInfo

Add support for easily collecting JitFuncInfoLogFile for the tests

8 years agoMerge pull request #4543 from krytarowski/netbsd-support-73
Mike McLaughlin [Mon, 2 May 2016 17:06:21 +0000 (10:06 -0700)]
Merge pull request #4543 from krytarowski/netbsd-support-73

NetBSD limits name of a semaphore to 15 characters (inc. null)

8 years agoARM64: NativeVarArg
Kyungwoo Lee [Wed, 27 Apr 2016 14:40:19 +0000 (07:40 -0700)]
ARM64: NativeVarArg

In PInovke stub call with vararg that has float value,
we did not properly set up argumnent by passing float registers whith do
not conform ARM64 ABI.
The fix is to set the right calling convention in VM to use
integer registers to pass such float values.

8 years agoMerge pull request #4621 from kyulee1/floatarg
Kyungwoo Lee [Mon, 2 May 2016 16:53:33 +0000 (09:53 -0700)]
Merge pull request #4621 from kyulee1/floatarg

ARM64: Enable Varargs with float argument.

8 years agoARM64: Enable Varargs with float argument.
Kyungwoo Lee [Wed, 27 Apr 2016 14:40:19 +0000 (07:40 -0700)]
ARM64: Enable Varargs with float argument.

Fixes https://github.com/dotnet/coreclr/issues/2989
ARM64 ABI does not allow float register arguments for vararg calls.
All such float arguments should be copied to integer registers.
In Lower, I explicitly add a GT_COPY for such case and support the code-gen
to expand it properly using `fmov`.
I also skip genFnPrologCalleeRegArgs() for vararg since we've already
saved all integer registers in the prolog.

8 years agoMerge pull request #4699 from kyulee1/testlst
Kyungwoo Lee [Mon, 2 May 2016 16:32:09 +0000 (09:32 -0700)]
Merge pull request #4699 from kyulee1/testlst

ARM64: Tests.lst Update

8 years agoMerge pull request #4689 from AndyAyersMS/NoInlineRange
Andy Ayers [Mon, 2 May 2016 16:06:16 +0000 (09:06 -0700)]
Merge pull request #4689 from AndyAyersMS/NoInlineRange

Implement JitNoInlineRange

8 years agoEnable crossgen to load JIT from a custom location
Gaurav Khanna [Fri, 29 Apr 2016 15:00:17 +0000 (08:00 -0700)]
Enable crossgen to load JIT from a custom location
Continue to link the JIT in for Windows Arm64 builds until 4717 is fixed.

8 years agoAdd support for easily collecting JitFuncInfoLogFile for the tests
Bruce Forstall [Fri, 29 Apr 2016 22:52:43 +0000 (15:52 -0700)]
Add support for easily collecting JitFuncInfoLogFile for the tests

Simply uncomment one of the three methods for doing the collection in
the ryujit_x86_testenv.cmd file.

8 years agoMerge pull request #4710 from yizhang82/array_warn_fix
Yi Zhang (CLR) [Mon, 2 May 2016 07:42:57 +0000 (00:42 -0700)]
Merge pull request #4710 from yizhang82/array_warn_fix

Fix warnings in ByValArray

8 years agoMerge pull request #4707 from RussKeldorph/gcincomp
Russ Keldorph [Mon, 2 May 2016 04:49:44 +0000 (21:49 -0700)]
Merge pull request #4707 from RussKeldorph/gcincomp

Mark some GC tests incompatible with GCStress

8 years agoMerge pull request #4704 from RussKeldorph/lotsofinlines
Russ Keldorph [Mon, 2 May 2016 04:44:09 +0000 (21:44 -0700)]
Merge pull request #4704 from RussKeldorph/lotsofinlines

Mark LotsOfInlines tests as optimization-sensitive

8 years agoFix warnings
Yi Zhang (CLR) [Mon, 2 May 2016 04:03:03 +0000 (21:03 -0700)]
Fix warnings

8 years agoFix #4496 (#4503)
Jonghyun Park [Mon, 2 May 2016 02:09:50 +0000 (11:09 +0900)]
Fix #4496 (#4503)

* Fix #4496

This commit revises legecy codegen to inserts a bkpt instruction if the current BB
and next BB is not in the same exception handling region.

This code is backported from ARM64 codegen.

* Update ControlPcIsUnwound in UnwindManagedExceptionPassX

* Enable only for ARM32

Enable the patch only for ARM32 in order to fix build break in other
architecture.

8 years agoDisable WIN32_REGISTRY for UNIX platforms
MyungJoo Ham [Mon, 2 May 2016 01:58:49 +0000 (10:58 +0900)]
Disable WIN32_REGISTRY for UNIX platforms

Unlike managed build scripts, FEATURE_WIN32_REGISTRY has been
enabled for UNIX-like systems in CMake native build scripts.

Fix #4682 part 3.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 years agoMerge pull request #4556 from JohnChen0/r2r
John Chen [Sun, 1 May 2016 08:15:42 +0000 (01:15 -0700)]
Merge pull request #4556 from JohnChen0/r2r

Ready-to-Run support for generic methods without generic dictionary

8 years agoMark some GC tests incompatible with GCStress
Russ Keldorph [Sun, 1 May 2016 06:16:41 +0000 (23:16 -0700)]
Mark some GC tests incompatible with GCStress

These tests rely on counting numbers of collections, which is unreliable
(or at best different than what the test expects) under GCStress.

8 years agoSupport generic methods without generic dictionary
John Chen (CLR) [Mon, 25 Apr 2016 08:55:00 +0000 (01:55 -0700)]
Support generic methods without generic dictionary

8 years agoMark LotsOfInlines tests as optimization-sensitive
Russ Keldorph [Sun, 1 May 2016 04:24:18 +0000 (21:24 -0700)]
Mark LotsOfInlines tests as optimization-sensitive

The LotsOfInlines test times out under COMPlus_JitStress=1.
(http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/x64_checked_windows_nt_jitstress1/48/testReport/).
This change disables it from running under JitStress modes that might
affect optimizations required for it to run in reasonable time.

8 years agoMerge pull request #4653 from mikem8361/shimrace
Mike McLaughlin [Sat, 30 Apr 2016 18:55:55 +0000 (11:55 -0700)]
Merge pull request #4653 from mikem8361/shimrace

Fix issue #4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"

8 years agoARM64: Test.lst Update
Kyungwoo Lee [Sat, 30 Apr 2016 14:07:54 +0000 (07:07 -0700)]
ARM64: Test.lst Update

Fixes https://github.com/dotnet/coreclr/issues/3970
Fixes https://github.com/dotnet/coreclr/issues/4411
Since https://github.com/dotnet/coreclr/pull/4655 is merged, these tests
seem to be passed in the lab.

8 years agoMerge pull request #4687 from kyulee1/zap
Kyungwoo Lee [Sat, 30 Apr 2016 14:02:54 +0000 (07:02 -0700)]
Merge pull request #4687 from kyulee1/zap

ARM64: Enabling Crossgen End-to-End Mscorlib

8 years agoMerge pull request #4698 from adityamandaleeka/fix_ci_corefxbins
Aditya Mandaleeka [Sat, 30 Apr 2016 02:46:17 +0000 (19:46 -0700)]
Merge pull request #4698 from adityamandaleeka/fix_ci_corefxbins

Fix CI: Update directory check for case with multiple CoreFX directories

8 years agoUse Unix version of WORKSPACE.
Aditya Mandaleeka [Sat, 30 Apr 2016 02:20:54 +0000 (19:20 -0700)]
Use Unix version of WORKSPACE.

8 years agoUpdate directory check for case with multiple CoreFX directories.
Aditya Mandaleeka [Sat, 30 Apr 2016 02:15:30 +0000 (19:15 -0700)]
Update directory check for case with multiple CoreFX directories.

8 years agoMerge pull request #4691 from adiaaida/longOperators
Michelle McDaniel [Sat, 30 Apr 2016 01:24:09 +0000 (18:24 -0700)]
Merge pull request #4691 from adiaaida/longOperators

Separate NYIs for arithmetic operators on longs

8 years agoImplement JitNoInlineRange
Andy Ayers [Wed, 27 Apr 2016 21:22:35 +0000 (14:22 -0700)]
Implement JitNoInlineRange

Rework and cleanup ConfigMethodRange. Give it a configurable size. Do
some error detection when parsing the range string. Update comments
and add notes at existing usage sites about the behavior when the
range string is not specified.

Use ConfigMethodRange to implement a JitNoInlineRange option that
suppresses inlining in a specified set of methods. Set this up so
inlning still happens if the range string is empty. Choose capacity so
it can hold the entire range string's set of ranges. Add a new
observation for the cases where enabling this JIT option disables
inlines.

Make compMethodHash available for INLINE_DATA builds. Report this hash
in the Xml inline dumps, so it can provide hash values to feed into
JitNoInlineRange strings.

8 years agoMerge pull request #4695 from adityamandaleeka/fix_ci_corefxbins
Aditya Mandaleeka [Sat, 30 Apr 2016 01:18:50 +0000 (18:18 -0700)]
Merge pull request #4695 from adityamandaleeka/fix_ci_corefxbins

Modify CI to pass in multiple CoreFX bin directories

8 years agoAdd cascading CoreFX directories to Unix CI run
Aditya Mandaleeka [Sat, 30 Apr 2016 00:26:38 +0000 (17:26 -0700)]
Add cascading CoreFX directories to Unix CI run

8 years agoAllow multiple CoreFX bin directories to be specified in runtest.sh.
Aditya Mandaleeka [Sat, 30 Apr 2016 00:15:40 +0000 (17:15 -0700)]
Allow multiple CoreFX bin directories to be specified in runtest.sh.

8 years agoFix desktop build break introduced by CS#1600134
Bruce Forstall [Sat, 30 Apr 2016 01:02:50 +0000 (18:02 -0700)]
Fix desktop build break introduced by CS#1600134

[tfs-changeset: 1600494]

8 years agoSeparate NYIs for arithmetic operators on longs
Michelle McDaniel [Fri, 8 Apr 2016 17:10:42 +0000 (10:10 -0700)]
Separate NYIs for arithmetic operators on longs

To make it more obvious which long operators are causing the NYI to hit,
split out the different operators with their own NYI.

8 years agoMerge pull request #4676 from BruceForstall/x86Testing
Bruce Forstall [Fri, 29 Apr 2016 22:26:33 +0000 (15:26 -0700)]
Merge pull request #4676 from BruceForstall/x86Testing

Change RyuJIT/x86 testing

8 years agoChange RyuJIT/x86 testing
Bruce Forstall [Fri, 29 Apr 2016 03:03:03 +0000 (20:03 -0700)]
Change RyuJIT/x86 testing

Change the RyuJIT/x86 test runs so we don't set COMPLUS_AltJitAssertOnNYI=1
by default. This means when the JIT hits an NYI, it falls back to
the legacy x86 back-end instead of raising an assert. The issues.targets
test exclusion file is changed to only exclude those tests that fail,
due to assert or silent bad codegen, in this mode, rather than the
(currently) much, much larger number of exclusions if COMPLUS_AltJitAssertOnNYI=1
is set.

The version of issues.targets is renamed as ryujit_x86_no_fallback_issues.targets.

This is a issues.targets file that contains exclusions for running
with RyuJIT/x86 and COMPLUS_AltJitAssertOnNYI=1, so NYI turn into
asserts.

8 years agoARM64: Enabling Crossgen End-to-End Mscorlib
Kyungwoo Lee [Fri, 29 Apr 2016 17:29:28 +0000 (10:29 -0700)]
ARM64: Enabling Crossgen End-to-End Mscorlib

Fixes https://github.com/dotnet/coreclr/issues/4350
Fixes https://github.com/dotnet/coreclr/issues/4615

This is a bit large change across VM/Zap/JIT to properly support crossgen
scenario.
1. Fix incorrect `ldr` encoding with size.
2. Enforce JIT data following JIT code per method by allocating them together.
   This guarantees correct PC-relative encoding for such constant data access
   without fix-up.
3. For the general fix-up data acceess, use `adrp/add` instruction pairs with fix-ups.
   Two more relocations types are implemented in all sides.
4. Interface dispatch stub is now implemented which is needed for
interface call for crossgen.

I've verified hello world runs with mscorlib.ni.dll.

8 years agoTreat NetBSD like FreeBSD and OSX in PAL_VirtualUnwind() (#4551)
Kamil Rytarowski [Fri, 29 Apr 2016 21:35:19 +0000 (23:35 +0200)]
Treat NetBSD like FreeBSD and OSX in PAL_VirtualUnwind() (#4551)

This fixes hangs in the runtime observed while running CoreFX managed tests.

Thanks @janvorli and @myungjoo

Fix #4380

8 years agoAdd query handling of IUnknown for MergeTokenManager and CMapToken (#4563)
shion [Fri, 29 Apr 2016 21:33:40 +0000 (16:33 -0500)]
Add query handling of IUnknown for MergeTokenManager and CMapToken (#4563)

8 years agoAdd query handling of ICLRPrivResource for Assembly::CLRPrivResourceAssembly (#4562)
shion [Fri, 29 Apr 2016 21:33:03 +0000 (16:33 -0500)]
Add query handling of ICLRPrivResource for Assembly::CLRPrivResourceAssembly (#4562)

8 years agoSpecify the signedness of 'char' in HFA testcases (#4680)
Jonghyun Park [Fri, 29 Apr 2016 21:27:47 +0000 (06:27 +0900)]
Specify the signedness of 'char' in HFA testcases (#4680)

In C#, sbyte always represents 8-bit signed interger.

However, the signedness of char in C is undefined, and the default
signedness of char in ARM is unsigned.

The native code for HFA test does not specify the signedness of char,
and thus the native code assumes that it is unsigned, but the managed
code assumes that it is signed, which leads to unittest failure in ARM.

This commit specifies the signedness of 'char' in order to fix #4639.

8 years agoEliminate SEH interactions between the JIT and the EE during verification.
Pat Gavlin [Fri, 29 Apr 2016 20:23:52 +0000 (13:23 -0700)]
Eliminate SEH interactions between the JIT and the EE during verification.

For compatibility reasons, `BadImageFormatException`s that are thrown when resolving tokens
during verification are transformed instead into verification exceptions. This transformation
currently takes place in the JIT: the JIT wraps relevant calls to `ICorJitInfo::resolveToken` with
a `__try`/`__except` that handles any exceptions that arise due to invalid metadata. This method
cannot be relied on when consuming the JIT as a dynamic library on non-Windows platforms
due to type identity problems in the runtime's SEH emulation. Furthermore, these filters cannot
use the proposed solution to the JIT's other uses of SEH across the JIT/EE interface, since they
are more complex than a call to `ICorJitInfo::FilterException`. Instead, this change introduces a
new method, `ICorJitInfo::tryResolveToken`, which is only used during verification. This method
implements filtering that is equivalent to the current implementation, but does so in the EE rather
than in the JIT.

This is part of GitHub bugs #3058 and #4130.

[tfs-changeset: 1600443]

8 years agoMerge pull request #4655 from swaroop-sridhar/aagc3
Swaroop Sridhar [Fri, 29 Apr 2016 20:11:48 +0000 (13:11 -0700)]
Merge pull request #4655 from swaroop-sridhar/aagc3

ARM64: Update FP-context-pointer in ExceptionFrame

8 years agoMerge pull request #4662 from Priya91/ubuntu1604
Lakshmi Priya [Fri, 29 Apr 2016 19:47:00 +0000 (12:47 -0700)]
Merge pull request #4662 from Priya91/ubuntu1604

Remove Ubuntu15.10 support.

8 years agoFix issue #4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"
Mike McLaughlin [Tue, 26 Apr 2016 23:57:31 +0000 (16:57 -0700)]
Fix issue #4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"

The fix is to remove the call to TerminateDebugger in the EE shutdown
path. The reason was to clean up the transport pipe files but that
still happens in coreclr_uninitialize called by the host.

Also added code to clean up the transport named pipes and semaphores
on the debugger side when it detects that the target process has
terminated before it sends the ExitProcess notification.

Plumbed the cleanup call from dbi's ExitProcess code through the
native pipe line to the transport and then to pipe code.

Add PAL_CleanupTargetProcess for the "continue" named semaphore cleanup.

Found and fixed a minor race in dbgshim register runtime startup.

8 years agoMerge pull request #4670 from BruceForstall/Fix3596
Bruce Forstall [Fri, 29 Apr 2016 18:01:57 +0000 (11:01 -0700)]
Merge pull request #4670 from BruceForstall/Fix3596

Fix 3596: attempt to spill a returned fp local w/o a frame location

8 years agoMerge pull request #4656 from BruceForstall/x86fp
Bruce Forstall [Fri, 29 Apr 2016 18:01:21 +0000 (11:01 -0700)]
Merge pull request #4656 from BruceForstall/x86fp

Update RyuJIT/x86 XMM register definitions and usage

8 years agoMerge pull request #4658 from swgillespie/gc-perf-typo
Sean Gillespie [Fri, 29 Apr 2016 16:46:46 +0000 (09:46 -0700)]
Merge pull request #4658 from swgillespie/gc-perf-typo

Fix a typo in GCMetrics that provides the wrong generation's statistics

8 years agoARM Enable MulticoreJIT for mscorlib.dll build
MyungJoo Ham [Fri, 29 Apr 2016 10:38:58 +0000 (19:38 +0900)]
ARM Enable MulticoreJIT for mscorlib.dll build

The native parts of CoreCLR has kept FEATURE_MULTICOREJIT
for ARM devices from the beginning while MSCORLIB.DLL's
build scripts has kept it disabled for ARM.

Because many ARM devices are multicore and
the native part is using FEATURE_MULTICOREJIT anyway,
in order to remove the inconsistency, we enable
FEATURE_MULTICOREJIT for mscorlib build as well.

Fix #4682 part 2.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 years agoEnsure FEATURE_MANAGED_ETW isn't set for TargetUnix 2
MyungJoo Ham [Fri, 29 Apr 2016 10:34:36 +0000 (19:34 +0900)]
Ensure FEATURE_MANAGED_ETW isn't set for TargetUnix 2

The commit 82492f7fe7d91331508cb1bf9b33e2e9725d9898
has disabled FEATURE_MANAGED_ETW for UNIX builds.
However, the commit somehow omitted updating
CMakeList accordingly while updating msbuild scripts.

This patch does the same for CMake scripts.

Fixes #4682 part 1.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 years agoenable build of arm-softfp cross target component. (#4636)
Jiyoung Giuliana Yun [Fri, 29 Apr 2016 09:28:35 +0000 (18:28 +0900)]
enable build of arm-softfp cross target component. (#4636)

Fix #4635

Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
8 years agoMerge pull request #4652 from rahku/arm64EnableR2R
Rahul Kumar [Fri, 29 Apr 2016 06:07:56 +0000 (23:07 -0700)]
Merge pull request #4652 from rahku/arm64EnableR2R

Enable ReadyToRun feature for arm64

8 years agoARM: Fix compiler definition inconsistency (#4673)
MyungJoo Ham [Fri, 29 Apr 2016 05:15:19 +0000 (14:15 +0900)]
ARM: Fix compiler definition inconsistency (#4673)

Fix the following inconsistency
CoreCLR-Native @ Linux/ARM: FEATURE_STUBS_AS_IL not defined
CoreCLR-Managed @ Linux/ARM: FEATURE_STUBS_AS_IL defined

This _partially_ fixes #3635

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 years agoEmbrace bash message with " (#4633)
Jonghyun Park [Fri, 29 Apr 2016 02:57:34 +0000 (11:57 +0900)]
Embrace bash message with " (#4633)

This commit tries to fix #4631.

8 years agoFix 3596: attempt to spill a returned fp local w/o a frame location
Bruce Forstall [Fri, 29 Apr 2016 01:50:18 +0000 (18:50 -0700)]
Fix 3596: attempt to spill a returned fp local w/o a frame location

Instead of checking !lvRegister, check lvOnFrame.

Fixes #3596.

8 years agoRemove Ubuntu15.10 support.
Lakshmi Priya Sekar [Fri, 29 Apr 2016 01:21:08 +0000 (18:21 -0700)]
Remove Ubuntu15.10 support.

8 years agoMerge pull request #4643 from gkhanna79/LoadJIT
Gaurav Khanna [Fri, 29 Apr 2016 00:19:31 +0000 (17:19 -0700)]
Merge pull request #4643 from gkhanna79/LoadJIT

Load JIT from a custom location

8 years agoFix a typo in GCMetrics that provides the wrong generation's statistics
Sean Gillespie [Fri, 29 Apr 2016 00:05:10 +0000 (17:05 -0700)]
Fix a typo in GCMetrics that provides the wrong generation's statistics

8 years agoEnable ReadyToRun feature for arm64
Rahul Kumar [Wed, 20 Apr 2016 23:27:04 +0000 (16:27 -0700)]
Enable ReadyToRun feature for arm64

8 years agoUpdate RyuJIT/x86 XMM register definitions and usage
Bruce Forstall [Thu, 28 Apr 2016 22:03:41 +0000 (15:03 -0700)]
Update RyuJIT/x86 XMM register definitions and usage

Change the register definition to not include XMM8 through XMM15,
which are not available on x86.

Also, put a few things previously under _TARGET_AMD64_ instead
under !LEGACY_BACKEND to make them available for RyuJIT/x86.

There are more things to do to enable AVX. For example, size_t is
used for code bytes, but expects to be able to store >32 bits. This
work is just a start.

8 years agoARM64: Update FP-context-pointer in ExceptionFrame
Swaroop Sridhar [Thu, 28 Apr 2016 21:50:40 +0000 (14:50 -0700)]
ARM64: Update FP-context-pointer in ExceptionFrame

Update the CurrentContextPointers for FP and LR registers
in FaultingExceptionFrame::UpdateRegDisplay()

This change fixes a few GCStress=0xC failures on ARM64.

8 years agoMerge pull request #4632 from briansull/multireg-struct-promote
Brian Sullivan [Thu, 28 Apr 2016 21:19:02 +0000 (14:19 -0700)]
Merge pull request #4632 from briansull/multireg-struct-promote

ARM64: Enable Struct Promotion for most Mutireg structs

8 years agoMerge pull request #4646 from BruceForstall/Fix3516
Bruce Forstall [Thu, 28 Apr 2016 20:32:16 +0000 (13:32 -0700)]
Merge pull request #4646 from BruceForstall/Fix3516

Fix 3516: Change an emitter #ifdef _TARGET_AMD64_ to !LEGACY_BACKEND

8 years agoMerge pull request #4645 from BruceForstall/UpdateRyuJITx86Exclusions
Bruce Forstall [Thu, 28 Apr 2016 20:31:17 +0000 (13:31 -0700)]
Merge pull request #4645 from BruceForstall/UpdateRyuJITx86Exclusions

Update RyuJIT/x86 test exclusion list

8 years agoMerge pull request #4644 from BruceForstall/LocallocAndPSPSym
Bruce Forstall [Thu, 28 Apr 2016 20:30:07 +0000 (13:30 -0700)]
Merge pull request #4644 from BruceForstall/LocallocAndPSPSym

Improve AMD64 PSPSym behavior

8 years agoLoad JIT from a custom location
Gaurav Khanna [Wed, 27 Apr 2016 23:35:21 +0000 (16:35 -0700)]
Load JIT from a custom location

8 years agoUpdated morph.cpp
Brian Sullivan [Thu, 28 Apr 2016 18:49:29 +0000 (11:49 -0700)]
Updated morph.cpp

8 years agoImprove AMD64 PSPSym behavior
Bruce Forstall [Thu, 28 Apr 2016 15:24:13 +0000 (08:24 -0700)]
Improve AMD64 PSPSym behavior

The implementation for localloc in a function with EH, and hence with a PSPSym,
currently pops off the outgoing argument space, but not the adjacent PSPSym,
does the localloc allocation, then adjusts the stack pointer again to allocate
space for a PSPSym as well as the outgoing argument space. Finally, it copies
the PSPSym value to the new PSPSym location.

Thus, we end up with multiple copies of the PSPSym on the stack frame.
PSPSym is a RSP-relative local variable, so some users access the lowest
copy on the stack, while other users access the highest (original) copy
on the stack. (Funclets access the original copy because they get the
establisher frame as an argument, and the establisher frame for AMD64 is
the Initial-SP, the copy of RSP before any localloc has occurred.
Specifically, it is a fixed offset from the RBP frame pointer as specified
in the unwind info.)

This change makes several improvements:
1. The PSPSym is never copied during localloc processing. It turns out the
original copy is sufficient, and is always available. To make this work,
the PSPSym local var is changed to be frame pointer relative. We still locate
the PSPSym immediately above the outgoing argument space, lower than any
frame alignment space, so we need to set the PSPSym variable stack offset
specifically after the frame alignment has been calculated. We always have
a frame pointer with either EH or localloc. Thus, localloc will now allocate
the correct, minimal amount of (aligned) space. Note that localloc is commonly
used in IL stubs, so the benefits here are more widespread than might be expected
from just user code.
2. When generating code to call finally clauses, we would load up the PSPSym
as the first argument, as required by the calling convention for finallys.
However, if we are in a function without localloc, and are generating code
for the main function (not a funclet), then the value stored in the PSPSym
slot will be exactly the current value of the stack pointer. So, simply copy
RSP, which is smaller and simpler code.

Each of these changes improves code size. Even for functions without localloc,
accessing PSPSym via RBP instead of RSP is generally smaller.

This fixes #4570.

8 years agoUpdate RyuJIT/x86 test exclusion list
Bruce Forstall [Thu, 28 Apr 2016 18:15:25 +0000 (11:15 -0700)]
Update RyuJIT/x86 test exclusion list

1. Remove exclusions for #3549, which is now fixed.
2. Add exclusion for new EH test case.

8 years agoMerge pull request #4622 from BruceForstall/FixCobolLegacyX86
Bruce Forstall [Thu, 28 Apr 2016 18:10:46 +0000 (11:10 -0700)]
Merge pull request #4622 from BruceForstall/FixCobolLegacyX86

Fix regression in internal Cobol test

8 years agoFix 3516: Change an emitter #ifdef from _TARGET_AMD64_ to !LEGACY_BACKEND
Bruce Forstall [Thu, 28 Apr 2016 16:48:19 +0000 (09:48 -0700)]
Fix 3516: Change an emitter #ifdef from _TARGET_AMD64_ to !LEGACY_BACKEND

8 years agoMerge pull request #4611 from CarolEidt/Fix4412
Carol Eidt [Thu, 28 Apr 2016 16:28:35 +0000 (09:28 -0700)]
Merge pull request #4611 from CarolEidt/Fix4412

Mark a multi-reg return type LclVar of GT_RETURN(LclVar) as DoNotEnregister

8 years agoMerge pull request #4602 from adiaaida/x86Exclude
Michelle McDaniel [Thu, 28 Apr 2016 16:25:49 +0000 (09:25 -0700)]
Merge pull request #4602 from adiaaida/x86Exclude

Add exclusions for RyuJIT x86 and x86 TestEnv

8 years agoFix regression in internal Cobol test
Bruce Forstall [Wed, 27 Apr 2016 18:18:56 +0000 (11:18 -0700)]
Fix regression in internal Cobol test

The x86 (legacy backend) JIT was asserting because an optimization created the wrong size int constant node.

This was a regression introduced with https://github.com/dotnet/coreclr/pull/3385

8 years agoLinux Mint support for mscorlib.dll (#4610)
chunseoklee [Thu, 28 Apr 2016 13:27:07 +0000 (22:27 +0900)]
Linux Mint support for mscorlib.dll (#4610)

8 years agoInitial support of lldb-3.8 for libsosplugin (#4473)
Evgeny Pavlov [Thu, 28 Apr 2016 11:38:51 +0000 (15:38 +0400)]
Initial support of lldb-3.8 for libsosplugin (#4473)

8 years agoRefuse to compile references to nativecallable methods in R2R images (#4627)
Jan Kotas [Thu, 28 Apr 2016 11:35:47 +0000 (04:35 -0700)]
Refuse to compile references to nativecallable methods in R2R images (#4627)

8 years agoMerge pull request #4572 from JohnChen0/crossgen-createpdb
Jan Kotas [Thu, 28 Apr 2016 11:25:40 +0000 (04:25 -0700)]
Merge pull request #4572 from JohnChen0/crossgen-createpdb

Enable crossgen /createpdb command on Windows

8 years agoMerge pull request #4614 from ramarag/fragileNIstartup
Rama krishnan Raghupathy [Thu, 28 Apr 2016 05:38:31 +0000 (22:38 -0700)]
Merge pull request #4614 from ramarag/fragileNIstartup

Arm64:Fxing up VM helper Table in mscorlib NI

8 years agoRemove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager.
Aditya Mandaleeka [Thu, 28 Apr 2016 02:21:46 +0000 (19:21 -0700)]
Remove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager.

8 years agoMerge pull request #4625 from AndyAyersMS/FullInliner
Andy Ayers [Thu, 28 Apr 2016 00:30:20 +0000 (17:30 -0700)]
Merge pull request #4625 from AndyAyersMS/FullInliner

Inliner: implement FullPolicy

8 years agoMerge pull request #4626 from dotnet-bot/from-tfs
Jan Kotas [Thu, 28 Apr 2016 00:09:59 +0000 (17:09 -0700)]
Merge pull request #4626 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix FileLoadException message for CoreCLR (#4624)
Jan Kotas [Thu, 28 Apr 2016 00:08:26 +0000 (17:08 -0700)]
Fix FileLoadException message for CoreCLR (#4624)

Fix FileLoadException message for CoreCLR

8 years agoMerge pull request #4578 from sejongoh/vector3_testcase_update
Sejong Oh [Thu, 28 Apr 2016 00:06:43 +0000 (17:06 -0700)]
Merge pull request #4578 from sejongoh/vector3_testcase_update

Update Vector3 Interop testcases

8 years agoStructPromote_0428
Brian Sullivan [Wed, 27 Apr 2016 22:53:15 +0000 (15:53 -0700)]
StructPromote_0428

Enable Struct promotion for 16-byte structs on Arm64

8 years agoMerge pull request #4585 from Maoni0/numa
Maoni Stephens [Wed, 27 Apr 2016 22:39:21 +0000 (15:39 -0700)]
Merge pull request #4585 from Maoni0/numa

bug fix in os wrapper

8 years agoUpdate Vector3 Interop testcases
Sejong Oh [Mon, 25 Apr 2016 22:58:50 +0000 (15:58 -0700)]
Update Vector3 Interop testcases

8 years agoArm64:Fxing up VM helper Table in mscorlib NI
Rama Krishnan Raghupathy [Sat, 16 Apr 2016 01:37:16 +0000 (18:37 -0700)]
Arm64:Fxing up VM helper Table in mscorlib NI

8 years agoMark lvIsMultiRegArgOrRet returned lclVars lvDoNotEnregister
Carol Eidt [Wed, 27 Apr 2016 00:53:51 +0000 (17:53 -0700)]
Mark lvIsMultiRegArgOrRet returned lclVars lvDoNotEnregister

Mark multi-reg returns in Lowering, where there are set to be contained.
This is done in Lowering::TreeNodeInfoInit to confine it to the case
of returns.

Fixes #4412

8 years agoMerge pull request #4594 from LLITCHEV/EnableGCStressOnx86
Lubomir Litchev [Wed, 27 Apr 2016 20:33:34 +0000 (13:33 -0700)]
Merge pull request #4594 from LLITCHEV/EnableGCStressOnx86

Enable use of disassembler for the x86 platform.

8 years agoAdd exclusions for RyuJIT x86 and x86 TestEnv
Michelle McDaniel [Tue, 26 Apr 2016 18:09:13 +0000 (11:09 -0700)]
Add exclusions for RyuJIT x86 and x86 TestEnv

This change adds exclusions with their issue numbers for the x86 RyuJIT
bring up. Additionally, this change adds the x86 TestEnv script for
running runtests.cmd with protojit.dll.

8 years agoMerge pull request #4309 from adityamandaleeka/sigterm
Aditya Mandaleeka [Wed, 27 Apr 2016 18:49:29 +0000 (11:49 -0700)]
Merge pull request #4309 from adityamandaleeka/sigterm

Add support for handling SIGTERM gracefully [WIP]