platform/upstream/coreclr.git
8 years agoMerge pull request #4836 from sivarv/simdPromotion
Sivarv [Sat, 7 May 2016 15:20:57 +0000 (08:20 -0700)]
Merge pull request #4836 from sivarv/simdPromotion

Mark simd type vars as lvRegStruct accurately.

8 years agoFixes multidim array Get Accessor for enum datatype (#4808)
Rahul Kumar [Sat, 7 May 2016 14:21:37 +0000 (07:21 -0700)]
Fixes multidim array Get Accessor for enum datatype (#4808)

8 years agoUse Buffer.BlockCopy in System.Reflection.Emit (#4812)
James Ko [Sat, 7 May 2016 14:20:18 +0000 (10:20 -0400)]
Use Buffer.BlockCopy in System.Reflection.Emit (#4812)

8 years agoFix a typo in NetBSD documentation. (#4841)
Thomas Klausner [Sat, 7 May 2016 14:14:55 +0000 (16:14 +0200)]
Fix a typo in NetBSD documentation. (#4841)

8 years agoBuffer.BlockCopy: Avoid double-typechecks for arrays of same type (#4807)
James Ko [Sat, 7 May 2016 14:14:06 +0000 (10:14 -0400)]
Buffer.BlockCopy: Avoid double-typechecks for arrays of same type (#4807)

8 years agoRemove FEATURE_HOSTED_BINDER definition (#4838)
Jan Vorlicek [Sat, 7 May 2016 08:47:59 +0000 (10:47 +0200)]
Remove FEATURE_HOSTED_BINDER definition (#4838)

The FEATURE_HOSTED_BINDER is always on so remove it from all the sources.

8 years agoMark simd type vars as lvRegStruct accurately.
sivarv [Fri, 6 May 2016 21:36:58 +0000 (14:36 -0700)]
Mark simd type vars as lvRegStruct accurately.

8 years agoMerge pull request #4803 from pgavlin/RootBinDir
Pat Gavlin [Fri, 6 May 2016 23:32:18 +0000 (16:32 -0700)]
Merge pull request #4803 from pgavlin/RootBinDir

Add a `bindir` parameter to build.sh.

8 years agoMerge pull request #4831 from pgavlin/gh2300
Pat Gavlin [Fri, 6 May 2016 23:23:26 +0000 (16:23 -0700)]
Merge pull request #4831 from pgavlin/gh2300

Move b12011 into testsUnsupportedOutsideWindows.

8 years agoMerge pull request #4826 from RussKeldorph/vararg
Russ Keldorph [Fri, 6 May 2016 22:57:36 +0000 (15:57 -0700)]
Merge pull request #4826 from RussKeldorph/vararg

Move Windows-only vararg/arglist tests to the appropriate exclusion file

8 years agoMerge pull request #4815 from AndyAyersMS/LegacyPolicyInlineLimit
Andy Ayers [Fri, 6 May 2016 22:22:03 +0000 (15:22 -0700)]
Merge pull request #4815 from AndyAyersMS/LegacyPolicyInlineLimit

Inliner: add JitInlineLimit check to LegacyPolicy under debug

8 years agoMerge pull request #4770 from Maoni0/affi
Maoni Stephens [Fri, 6 May 2016 21:53:23 +0000 (14:53 -0700)]
Merge pull request #4770 from Maoni0/affi

enable affinity for GC threads and some bug fixes

8 years agoFix Windows x86 exception handling issue (#4830)
Jan Vorlicek [Fri, 6 May 2016 21:51:25 +0000 (23:51 +0200)]
Fix Windows x86 exception handling issue (#4830)

This change fixes an exception handling issue that happens on x86 on Windows
when exception is raised in System.RuntimeType.MakeGenericType.
The problem was caused by GCPROTECT_HOLDER macro in RuntimeTypeHandle::GetTypeByName
that causes popping of GCFrame (and zeroing its m_next field) that's in the middle of the thread's frames list during
the stack unwinding.
That breaks the list and when UnwindFrames happen later and tries to walk the stack, the StackFrameIterator::NextRaw
asserts when checking the validity of the list.
The fix is to move the keepAlive to the managed caller of the RuntimeTypeHandle::GetTypeByName QCall, which removes
the need for the GCPROTECT_HOLDER.
Since it was the only usage of that holder and of the underlying FrameWithCookieHolder class, I've removed those.
In addition to that, I've modified COMModule::GetType and AssemblyNative::GetType to use the same pattern, since
they could also suffer from the problem the GCPROTECT_HOLDER was attempting to fix.

8 years agoMerge pull request #4690 from sejongoh/use_rax_for_ret_buf
Sejong Oh [Fri, 6 May 2016 21:25:40 +0000 (14:25 -0700)]
Merge pull request #4690 from sejongoh/use_rax_for_ret_buf

Return RetBuf address via RAX for Windows 64

8 years agoMerge pull request #4795 from sivarv/simdret
Sivarv [Fri, 6 May 2016 21:17:50 +0000 (14:17 -0700)]
Merge pull request #4795 from sivarv/simdret

[x64 Unix] Avoid SIMD types returned in two return registers from requiring to go through memory.

8 years agoMerge pull request #4791 from kyulee1/fasttailcall
Kyungwoo Lee [Fri, 6 May 2016 20:45:36 +0000 (13:45 -0700)]
Merge pull request #4791 from kyulee1/fasttailcall

ARM64: Enable Fast Tail Call

8 years agoARM64: Enable Fast Tail Call
Kyungwoo Lee [Wed, 4 May 2016 20:26:33 +0000 (13:26 -0700)]
ARM64: Enable Fast Tail Call

Fixes https://github.com/dotnet/coreclr/issues/4420
Like x64, enable fast tail call but tail call opt is still off.
This means explicit tail call is converted to epilog + jmp IP0.
Tail call recursive/tail call via helper is still not enabled yet.

8 years agoMove b12011 into testsUnsupportedOutsideWindows.
Pat Gavlin [Fri, 6 May 2016 20:08:19 +0000 (13:08 -0700)]
Move b12011 into testsUnsupportedOutsideWindows.

This test requires COM interop.

8 years agoAdd a `bindir` parameter to build.sh.
Pat Gavlin [Thu, 5 May 2016 22:13:40 +0000 (15:13 -0700)]
Add a `bindir` parameter to build.sh.

This parameter can be used to redirect the usual output path from
`./bin` to a different directory.

8 years agoMerge pull request #4814 from BruceForstall/FixGcRefAssert
Bruce Forstall [Fri, 6 May 2016 19:48:04 +0000 (12:48 -0700)]
Merge pull request #4814 from BruceForstall/FixGcRefAssert

Fix GC ref frame offset range assert

8 years agoMerge pull request #4811 from BruceForstall/FixFunctionTrace
Bruce Forstall [Fri, 6 May 2016 19:47:11 +0000 (12:47 -0700)]
Merge pull request #4811 from BruceForstall/FixFunctionTrace

Fix COMPlus_JitFunctionTrace=1 to work better with NYI

8 years agoMerge pull request #4822 from dotnet-bot/from-tfs
Bruce Forstall [Fri, 6 May 2016 19:09:12 +0000 (12:09 -0700)]
Merge pull request #4822 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoenable affinity and numa for GC and some bug fixes
Maoni0 [Wed, 4 May 2016 01:29:46 +0000 (18:29 -0700)]
enable affinity and numa for GC and some bug fixes

double the threshold for balancing onto a remote NUMA node - this was proven to be best with the asp.net benchmark.

enable cpu group

8 years agoMerge pull request #4806 from AndyAyersMS/FixInlineDump
Andy Ayers [Fri, 6 May 2016 18:45:46 +0000 (11:45 -0700)]
Merge pull request #4806 from AndyAyersMS/FixInlineDump

Fix inline dump format issue

8 years agoMove Windows-only vararg/arglist tests to the appropriate exclusion file
Russ Keldorph [Fri, 6 May 2016 14:58:47 +0000 (07:58 -0700)]
Move Windows-only vararg/arglist tests to the appropriate exclusion file

Our position on vararg/arglist is that it is supported on Windows only, so
I'm repurposing #1440 to simply express that position in the exclusion
files rather than removing the tests.

Fixes #1440

8 years agoMerge pull request #4797 from JohnChen0/master
John Chen [Fri, 6 May 2016 06:59:13 +0000 (23:59 -0700)]
Merge pull request #4797 from JohnChen0/master

Remove an assert in AssemblySpec::EmitToken

8 years agoMerge pull request #4810 from BruceForstall/Fix4666
Bruce Forstall [Fri, 6 May 2016 03:21:57 +0000 (20:21 -0700)]
Merge pull request #4810 from BruceForstall/Fix4666

Mark EDX as trashed by the no-gc helper calls

8 years agoMerge pull request #4819 from BruceForstall/FixRyujitX86CheckedTestRun
Bruce Forstall [Fri, 6 May 2016 03:07:13 +0000 (20:07 -0700)]
Merge pull request #4819 from BruceForstall/FixRyujitX86CheckedTestRun

Disable tests which fail in a RyuJIT/x86 Checked build test run

8 years agoMerge pull request #4821 from ellismg/fix-unix-builds
Matt Ellis [Fri, 6 May 2016 01:27:21 +0000 (18:27 -0700)]
Merge pull request #4821 from ellismg/fix-unix-builds

Fix conditional in Unix build definition

8 years agoFix conditional in Unix build definition
Matt Ellis [Fri, 6 May 2016 01:12:44 +0000 (18:12 -0700)]
Fix conditional in Unix build definition

8 years agoDisable tests which fail in a RyuJIT/x86 Checked build test run
Bruce Forstall [Fri, 6 May 2016 00:57:42 +0000 (17:57 -0700)]
Disable tests which fail in a RyuJIT/x86 Checked build test run

8 years agoFix COMPlus_JitFunctionTrace=1 to work better with NYI
Bruce Forstall [Thu, 5 May 2016 23:44:24 +0000 (16:44 -0700)]
Fix COMPlus_JitFunctionTrace=1 to work better with NYI

8 years agoFix GC ref frame offset range assert
Bruce Forstall [Fri, 6 May 2016 00:21:27 +0000 (17:21 -0700)]
Fix GC ref frame offset range assert

In emitSetFrameRangeGCRs(), on x86, there is the following assert:
  assert(offsHi <  0);
This is saying that the highest offset of a stack frame gc reference
is negative w.r.t. the frame pointer. This is not quite true: the
highest offset is exclusive of the range (the lowest offset is inclusive).
I found a test case where the 'this' pointer, a gc ref, was located
immediately below the frame pointer, in range [ebp-4,ebp), so offsHi==0.

The reason we don't hit this more is because this assert is only in
the JitDump code (under #ifdef DEBUG and 'if (verbose)'). (This
also seems wrong.)

I changed the assert to (offsHi <= 0).

8 years agoThis change ports the support files from NetFxDev1. It doesn't change behavior yet...
Jeremy Kuhne [Fri, 6 May 2016 00:20:27 +0000 (17:20 -0700)]
This change ports the support files from NetFxDev1. It doesn't change behavior yet. Adding a feature for the app context switch for path compat as we don't intend to use it in core.

[tfs-changeset: 1602284]

8 years agoInliner: add JitInlineLimit check to LegacyPolicy under debug
Andy Ayers [Thu, 5 May 2016 23:48:53 +0000 (16:48 -0700)]
Inliner: add JitInlineLimit check to LegacyPolicy under debug

Adds the ability to limit the number of inlines done by the LegacyPolicy.
Useful in trying to binary search for inlines that cause correctness
issues.

This limit impacts inlining in all methods, so effective isolation may
also require use of JitNoInlineRange to hone in on the root method that
is the source of problems.

8 years agoMark EDX as trashed by the no-gc helper calls
Bruce Forstall [Thu, 5 May 2016 23:35:44 +0000 (16:35 -0700)]
Mark EDX as trashed by the no-gc helper calls

Fixes #4666

8 years agoFix inline dump format issue
Andy Ayers [Thu, 5 May 2016 21:51:33 +0000 (14:51 -0700)]
Fix inline dump format issue

Lost some implict casts to float when I updated SIZE_SCALE to an enum
constant, so now make the casts explicit.

Just impacts dump output.

Also, add a newline to LegacyPolicy dump to keep messages distinct.

8 years agoReturn RetBuf address via RAX for Windows 64
Sejong Oh [Fri, 29 Apr 2016 21:05:16 +0000 (14:05 -0700)]
Return RetBuf address via RAX for Windows 64

The AMD64 native calling convention requires return buffer address to be
returned by callee in RAX. This changeset makes JIT follow this rule.
Especially, in case that a managed method returns a struct value to its
native caller, the caller reads a pointer to the return value from RAX.

Asm diffs show expected differences such as 'mov rax, reg' at the end of
functions and some different register assignments.

8 years agoMerge pull request #4800 from jashook/x86_ci_fix
Jarret Shook [Thu, 5 May 2016 21:18:17 +0000 (14:18 -0700)]
Merge pull request #4800 from jashook/x86_ci_fix

Fix x86 netci changes to build correctly.

8 years agoAvoid SIMD type return values from requiring to go through
sivarv [Thu, 5 May 2016 01:32:46 +0000 (18:32 -0700)]
Avoid SIMD type return values from requiring to go through
memory for returning.

8 years agoFixup netci changes to build correctly.
jashook [Thu, 5 May 2016 15:54:21 +0000 (08:54 -0700)]
Fixup netci changes to build correctly.

Also more verbosely show which jit and arch the job is.

8 years agoMerge pull request #4782 from BruceForstall/NyiLongExTree
Bruce Forstall [Thu, 5 May 2016 16:01:57 +0000 (09:01 -0700)]
Merge pull request #4782 from BruceForstall/NyiLongExTree

RyuJIT/x86: convert SBCG to NYI for multi-level expression trees

8 years agoMerge pull request #4792 from dagood/remove-core_root-workaround
Davis Goodin [Thu, 5 May 2016 14:28:41 +0000 (09:28 -0500)]
Merge pull request #4792 from dagood/remove-core_root-workaround

Remove CORE_ROOT workaround

8 years agoRemove an assert in AssemblySpec::EmitToken
John Chen (CLR) [Thu, 5 May 2016 06:11:15 +0000 (23:11 -0700)]
Remove an assert in AssemblySpec::EmitToken

AssemblySpec::EmitToken has a PRECONDITION that prohibits emitting AssemblyRef
tokens to WinMD files, except inside CrossGen. However, there are scenarios,
such as XML serialization, that need to emit such tokens. Thus this PRECONDITION
is removed.

8 years agoMerge pull request #4790 from jashook/x86_netci_two
Jarret Shook [Thu, 5 May 2016 05:08:39 +0000 (22:08 -0700)]
Merge pull request #4790 from jashook/x86_netci_two

Add ryujit x86 pr trigger.

8 years agoMerge pull request #4767 from ramarag/VSD_ResolveWorker_indirection
Rama krishnan Raghupathy [Thu, 5 May 2016 02:30:08 +0000 (19:30 -0700)]
Merge pull request #4767 from ramarag/VSD_ResolveWorker_indirection

[Arm64] Initialize indirection cell for delegates

8 years ago[Arm64] Initialize indirection cell for delegates
Rama Krishnan Raghupathy [Wed, 4 May 2016 01:16:47 +0000 (18:16 -0700)]
[Arm64] Initialize indirection cell for delegates

8 years agoMerge pull request #4765 from adityamandaleeka/array_alloc_bounds_check
Aditya Mandaleeka [Thu, 5 May 2016 01:50:00 +0000 (18:50 -0700)]
Merge pull request #4765 from adityamandaleeka/array_alloc_bounds_check

Add fwrapv compile option

8 years agoMerge pull request #4780 from mkborg/fix_windows_linuxmscorlib_arm_build
Rahul Kumar [Thu, 5 May 2016 01:25:37 +0000 (18:25 -0700)]
Merge pull request #4780 from mkborg/fix_windows_linuxmscorlib_arm_build

Fix Windows 'linuxmscorlib arm' build

8 years agoRemove O_RDWR from sem_open and better error codes on failure (#4772)
Mike McLaughlin [Thu, 5 May 2016 00:42:09 +0000 (17:42 -0700)]
Remove O_RDWR from sem_open and better error codes on failure (#4772)

Remove O_RDWR from sem_open and better error codes on failure

8 years agoMerge pull request #4763 from AndyAyersMS/InlineIntoControlExamples
Andy Ayers [Thu, 5 May 2016 00:09:12 +0000 (17:09 -0700)]
Merge pull request #4763 from AndyAyersMS/InlineIntoControlExamples

Add some tests for optimization of booleans

8 years agoRyuJIT/x86: convert SBCG to NYI for multi-level expression trees
Bruce Forstall [Wed, 4 May 2016 16:41:57 +0000 (09:41 -0700)]
RyuJIT/x86: convert SBCG to NYI for multi-level expression trees

In general, we decompose longs by walking the tree bottom-up. So, e.g.,
we'll decompose 'add' as follows:

  + (gt_long(lo1, hi1), gt_long(lo2, hi2))
=>
  gt_long (+ (lo1, lo2), +Hi (hi1, hi2))

But what if lo1 is '+' and hi1 is '+Hi'? So,

  + (gt_long( + (lo3, lo4), +Hi (hi3, hi4) ), gt_long(lo2, hi2))
=>
  gt_long (+ ( + (lo3, lo4), lo2), +Hi ( +Hi (hi3, hi4), hi2))

But we can't put any instructions between '+ (lo3, lo4)' and '+Hi (hi3, hi4)'
or we'll lose the carry bit.

We need to model this differently, or introduce temps. Until this is
done, convert the silent bad codegen into NYI fallback.

8 years agoMerge pull request #4504 from krytarowski/netbsd-support-72
Aditya Mandaleeka [Wed, 4 May 2016 23:16:35 +0000 (16:16 -0700)]
Merge pull request #4504 from krytarowski/netbsd-support-72

Add initial NetBSD documentation

8 years agoMerge pull request #4755 from sivarv/mcall
Sivarv [Wed, 4 May 2016 23:15:32 +0000 (16:15 -0700)]
Merge pull request #4755 from sivarv/mcall

Multi-reg call node support for x64 Unix

8 years agoRemove CORE_ROOT workaround. .NET CLI no longer uses the value.
Davis Goodin [Wed, 4 May 2016 22:50:19 +0000 (17:50 -0500)]
Remove CORE_ROOT workaround. .NET CLI no longer uses the value.

8 years agoAdd ryujit x86 pr trigger.
jashook [Wed, 4 May 2016 22:08:48 +0000 (15:08 -0700)]
Add ryujit x86 pr trigger.

Adds ryujit x86 testing on pr, and collapses x86 lb to just run checked jobs.

8 years agoMerge pull request #4723 from kyulee1/tailcall
Kyungwoo Lee [Wed, 4 May 2016 20:19:52 +0000 (13:19 -0700)]
Merge pull request #4723 from kyulee1/tailcall

ARM64: Enable Tail Call with Vararg

8 years agoMerge pull request #4727 from adiaaida/overflowLongArithmetic
Michelle McDaniel [Wed, 4 May 2016 20:06:50 +0000 (13:06 -0700)]
Merge pull request #4727 from adiaaida/overflowLongArithmetic

Set overflow flag for add/sub hi on x86 TYP_LONG

8 years agoMulti-reg call node support.
sivarv [Wed, 4 May 2016 15:29:18 +0000 (08:29 -0700)]
Multi-reg call node support.

8 years agoMerge pull request #4757 from swgillespie/gcstress-disable-tests
Sean Gillespie [Wed, 4 May 2016 17:25:03 +0000 (10:25 -0700)]
Merge pull request #4757 from swgillespie/gcstress-disable-tests

Disable two tests under GCStress for #4748 and #4708

8 years agoMerge pull request #4760 from dotnet-bot/from-tfs
Bruce Forstall [Wed, 4 May 2016 17:13:32 +0000 (10:13 -0700)]
Merge pull request #4760 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoARM64: Enable Tail Call with Vararg
Kyungwoo Lee [Tue, 26 Apr 2016 21:41:05 +0000 (14:41 -0700)]
ARM64: Enable Tail Call with Vararg

Fixes https://github.com/dotnet/coreclr/issues/4475
I've run into `IMPL_LIMITATION("varags + CEE_JMP doesn't work yet")` in
importer.cpp. This change enables ARM64 tail call path same as other
targets.
 1. Similar to amd64 `genFnEpilog`, I made the similar code under
 `!FEATURE_FASTTAILCALL`. Since `EC_FUNC_TOKEN_INDIR` is not defined for
 arm64, I've made NYI for such case.
 2. Added two pseudo branch instructions 'b_tail' and 'br_tail' which form
 jmp instruction encodings but follow call instruction semantics since
 they are used for tail-call.
 3. `GenJmpMethod` is enabled. Code is slightly changed to reflect correct
 float argument handlings and multi-reg support.

8 years agoFix Windows 'linuxmscorlib arm' build
Mikhail I. Krivtsov [Wed, 4 May 2016 13:53:05 +0000 (16:53 +0300)]
Fix Windows 'linuxmscorlib arm' build

8 years agoMerge pull request #4759 from rahku/crossgen
Rahul Kumar [Wed, 4 May 2016 05:21:57 +0000 (22:21 -0700)]
Merge pull request #4759 from rahku/crossgen

Fix checking of correct errorlevel for crossgen

8 years agoMerge pull request #4771 from myungjoo/fix/4746
Kyungwoo Lee [Wed, 4 May 2016 04:45:14 +0000 (21:45 -0700)]
Merge pull request #4771 from myungjoo/fix/4746

ildasm: incorrect signess usage with char

8 years agoUnix/Build: use -fsigned-char
MyungJoo Ham [Wed, 4 May 2016 04:28:31 +0000 (13:28 +0900)]
Unix/Build: use -fsigned-char

Some architectures including ARM assumes that plain char is
unsigned unlike x64.

Because CoreCLR has been assuming char is signed, we need to
explictly tell the toolchain the signedness of char type.

Fix #4746

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
8 years agoMerge pull request #4478 from pgavlin/JitPackaging
Pat Gavlin [Wed, 4 May 2016 04:11:55 +0000 (21:11 -0700)]
Merge pull request #4478 from pgavlin/JitPackaging

Create JIT packages during the build.

8 years agoMerge pull request #4768 from adityamandaleeka/fix_ci_corefxbins
Aditya Mandaleeka [Wed, 4 May 2016 03:58:05 +0000 (20:58 -0700)]
Merge pull request #4768 from adityamandaleeka/fix_ci_corefxbins

Add quotes around coreFxBinDir example in runtest.sh

8 years agoUpdate per review feedback.
Andy Ayers [Wed, 4 May 2016 02:29:31 +0000 (19:29 -0700)]
Update per review feedback.

8 years agoMerge pull request #4740 from yizhang82/interop_x86_test
Yi Zhang (CLR) [Wed, 4 May 2016 01:54:22 +0000 (18:54 -0700)]
Merge pull request #4740 from yizhang82/interop_x86_test

Fix interop x86 tests by fixing mismatching calling convention, and enable [NativeCallable] for every architecture

8 years agoAdd quotes around coreFxBinDir example.
Aditya Mandaleeka [Wed, 4 May 2016 01:32:40 +0000 (18:32 -0700)]
Add quotes around coreFxBinDir example.

8 years agoMerge pull request #4753 from AndyAyersMS/InlineForSize
Andy Ayers [Wed, 4 May 2016 00:59:13 +0000 (17:59 -0700)]
Merge pull request #4753 from AndyAyersMS/InlineForSize

Inliner: initial version of SizePolicy

8 years agoAdd 'fwrapv' compile option.
Aditya Mandaleeka [Tue, 3 May 2016 23:49:58 +0000 (16:49 -0700)]
Add 'fwrapv' compile option.

8 years agoAdd some tests for optimization of booleans
Andy Ayers [Wed, 4 May 2016 00:16:28 +0000 (17:16 -0700)]
Add some tests for optimization of booleans

Test case to stress inlining, expression opts, and control flow
simplification for booleans.

Test case has 100 methods named Idxx. All 100 should generate identical
code. On x64 windows we expect to get the 4 byte sequence
```
       0FB6C1               movzx    rax, cl
       C3                   ret
```

Only 22 of the variants get this codegen; there are at least 12 other
sequences ranging in size from 9 to 32 bytes of code.

Likely touches on the same issues raised in #914.

8 years agoAdd initial NetBSD documentation
Kamil Rytarowski [Fri, 22 Apr 2016 09:29:08 +0000 (11:29 +0200)]
Add initial NetBSD documentation

Thanks for @coypoop for improving the English wording.

8 years agoMerge pull request #4705 from RussKeldorph/vector3interop
Russ Keldorph [Wed, 4 May 2016 00:07:57 +0000 (17:07 -0700)]
Merge pull request #4705 from RussKeldorph/vector3interop

Disable Vector3Interop until failures are addressed

8 years agoRevert "Fix array allocation bounds checking."
Aditya Mandaleeka [Tue, 3 May 2016 23:49:13 +0000 (16:49 -0700)]
Revert "Fix array allocation bounds checking."

This reverts commit 16c9dfbae5e5ce18ad0519b31df515820fed2579.

8 years agoARM: fix stack frame management (#4641)
MyungJoo Ham [Tue, 3 May 2016 23:09:10 +0000 (08:09 +0900)]
ARM: fix stack frame management (#4641)

ARM: fix stack frame management

Fix #4638
This commit revises the implementation of CallEHFunclet to establish
stack frame appropriately.
This commit allows libunwind to work correctly for the frame created by
CallEHFunclet.

8 years agoMerge pull request #4693 from adityamandaleeka/delegateinvoke_platnotsup
Aditya Mandaleeka [Tue, 3 May 2016 22:49:38 +0000 (15:49 -0700)]
Merge pull request #4693 from adityamandaleeka/delegateinvoke_platnotsup

Make Delegate BeginInvoke/EndInvoke throw PlatformNotSupportedException

8 years agoAdd test for Begin/EndInvoke throwing PlatformNotSupportedException.
Aditya Mandaleeka [Tue, 3 May 2016 19:33:28 +0000 (12:33 -0700)]
Add test for Begin/EndInvoke throwing PlatformNotSupportedException.

8 years agoFix checking of correct errorlevel for crossgen
Rahul Kumar [Tue, 3 May 2016 22:20:29 +0000 (15:20 -0700)]
Fix checking of correct errorlevel for crossgen

8 years agoMerge pull request #4738 from dotnet-bot/from-tfs
Bruce Forstall [Tue, 3 May 2016 22:09:53 +0000 (15:09 -0700)]
Merge pull request #4738 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #4721 from swgillespie/gcsimulator
Sean Gillespie [Tue, 3 May 2016 22:09:06 +0000 (15:09 -0700)]
Merge pull request #4721 from swgillespie/gcsimulator

Add a "GCSimulator" CI run

8 years agoDisable two tests under GCStress for #4748 and #4708
Sean Gillespie [Tue, 3 May 2016 21:27:34 +0000 (14:27 -0700)]
Disable two tests under GCStress for #4748 and #4708

8 years agoCreate JIT packages during the build.
Pat Gavlin [Wed, 20 Apr 2016 21:03:56 +0000 (14:03 -0700)]
Create JIT packages during the build.

8 years agoSet overflow flag for add/sub hi on x86 TYP_LONG
Michelle McDaniel [Mon, 2 May 2016 20:52:39 +0000 (13:52 -0700)]
Set overflow flag for add/sub hi on x86 TYP_LONG

When we create the hi operation for add and sub on TYP_LONG, we don't
carry the overflow flag to the hi operation. This change sets the overflow
flag on hiResult in lower if it was set on loResult, and adds GT_ADD_HI
and GT_SUB_HI to the operations that can have overflow. We also need to
pass the unsigned flag to the high part in the instance that we are
dealing with an add or subtract with overflow. Fixes #4596.

8 years agoRemove SEH interactions between the JIT and the EE.
Pat Gavlin [Tue, 3 May 2016 19:58:16 +0000 (12:58 -0700)]
Remove SEH interactions between the JIT and the EE.

This change replaces the final uses of SEH between the JIT and the EE with a new method
on ICorJitInfo, `ICorJitInfo::runWithErrorTrap`. This method runs a given function under an
error trap that prevents recoverable errors from propagating out of the call. This allows
the JIT to make calls to JIT/EE interface functions that may throw exceptions without
needing to be aware of the EH ABI, exception types, etc. The method returns true if the
given function completed successfully and false otherwise. This change deprecates
all other SEH-related functionality on the JIT/EE interface (e.g. `ICJI::FilterException` and
`ICJI::HandleException`).

This change does not completely eliminate SEH over the JIT/EE interface: there are still a
handful of places where the JIT expects to be able to catch exceptions thrown by
SuperPMI. These uses of SEH will be removed later on.

Fixes #3058 and #4130.

[tfs-changeset: 1601288]

8 years agoGCSimulator test run
Sean Gillespie [Fri, 29 Apr 2016 00:03:51 +0000 (17:03 -0700)]
GCSimulator test run

8 years agoInliner: initial version of SizePolicy
Andy Ayers [Sat, 30 Apr 2016 00:27:40 +0000 (17:27 -0700)]
Inliner: initial version of SizePolicy

Add a new inline policy that tries to inline as much as possible
without increasing method size.

Fix one test that had an expected inline that doesn't happen under
the SizePolicy, by marking a method with AggressiveInline.

8 years agoMerge pull request #4728 from pgavlin/FixTRTContracts
Pat Gavlin [Tue, 3 May 2016 16:18:51 +0000 (09:18 -0700)]
Merge pull request #4728 from pgavlin/FixTRTContracts

Fix contracts in `tryResolveToken`.

8 years agoFixing issue with perf targets restoring test runtime (#4686)
Deepak Shankargouda [Tue, 3 May 2016 16:17:27 +0000 (09:17 -0700)]
Fixing issue with perf targets restoring test runtime (#4686)

8 years agoFix calling convention mismatch in 7 interop tests and enable [NativeCallable] in...
Yi Zhang (CLR) [Tue, 3 May 2016 04:00:21 +0000 (21:00 -0700)]
Fix calling convention mismatch in 7 interop tests and enable [NativeCallable] in all architectures.

8 years agoMerge pull request #4732 from BruceForstall/SignedIntToLongCastNYI
Bruce Forstall [Tue, 3 May 2016 14:59:25 +0000 (07:59 -0700)]
Merge pull request #4732 from BruceForstall/SignedIntToLongCastNYI

Convert signed int=>long cast SBCG to NYI

8 years agoConvert signed int=>long cast SBCG to NYI
Bruce Forstall [Tue, 3 May 2016 00:58:01 +0000 (17:58 -0700)]
Convert signed int=>long cast SBCG to NYI

This causes many tests that fail with silent bad codegen to pass
with NYI fallback. Many tests are removed from the issues.targets
failing tests exclusion list, but added to the
ryujit_x86_no_fallback_issues.targets exclusion list.

8 years agoFix contracts in `tryResolveToken` et. al.
Pat Gavlin [Mon, 2 May 2016 23:40:26 +0000 (16:40 -0700)]
Fix contracts in `tryResolveToken` et. al.

`isValidToken`'s contract was too conservative: it was needlessly marked
`THROWS`, `GC_TRIGGERS`, and `MODE_PREEMPTIVE`. Its contract and those
of its callers have been tightened to `NOTHROW`, `GC_NOTRIGGER`, and
`MODE_ANY`.

8 years agoMerge pull request #4726 from adityamandaleeka/array_alloc_bounds_check
Jan Vorlicek [Tue, 3 May 2016 08:42:40 +0000 (10:42 +0200)]
Merge pull request #4726 from adityamandaleeka/array_alloc_bounds_check

Fix array allocation bounds checking on Unix

8 years agoGeneralize Buffer.BlockCopy optimization for either src or dst (#4736)
James Ko [Tue, 3 May 2016 07:56:17 +0000 (03:56 -0400)]
Generalize Buffer.BlockCopy optimization for either src or dst (#4736)

* Generalize Buffer.BlockCopy optimization for either src or dst

8 years agoFix for http://buildstatus/Issues/Issues.aspx?iid=797159
Gaurav Khanna [Tue, 3 May 2016 04:46:40 +0000 (21:46 -0700)]
Fix for buildstatus/Issues/Issues.aspx?iid=797159

[tfs-changeset: 1601059]

8 years agoFix handling of FP args on stack in the ArgIterator (#4729)
Jan Vorlicek [Tue, 3 May 2016 04:22:11 +0000 (06:22 +0200)]
Fix handling of FP args on stack in the ArgIterator (#4729)

This change fixes a bug in the ArgIterator that resulted in assigning
floating point arguments that didn't fit to the xmm registers to general
purpose registers in the ArgIterator if there were some general purpose
registers available.

8 years agoMerge pull request #4694 from ramarag/thisptrret
Rama krishnan Raghupathy [Tue, 3 May 2016 03:04:57 +0000 (20:04 -0700)]
Merge pull request #4694 from ramarag/thisptrret

Arm64:Implemeting ThisPtrRetBufPrecode: