Rahul Kumar [Mon, 9 May 2016 17:26:50 +0000 (10:26 -0700)]
Merge pull request #4837 from rahku/crossgen
Helpers for ReadyToRun
Rahul Kumar [Thu, 5 May 2016 22:53:07 +0000 (15:53 -0700)]
[Arm64] Helpers for ReadyToRun
Gaurav Khanna [Mon, 9 May 2016 14:36:36 +0000 (07:36 -0700)]
Merge pull request #4834 from gkhanna79/RemoveSxSJIT
Cleanup sxsJitStartup from codemanager
Davis Goodin [Mon, 9 May 2016 13:20:55 +0000 (08:20 -0500)]
Fix incremental build restore: move generated test_runtime project.json to bin (#4764)
* Move generated test_runtime project.json to bin.
* Update helix tasks to point to moved test_runtime files.
* Remove unnecessary TestRuntimeDependenciesJson property.
Jonghyun Park [Mon, 9 May 2016 09:46:10 +0000 (18:46 +0900)]
Do NOT overwrite the stack frame pointer (#4857)
CallEHFunclet currently overwrite the stack frame pointer (R7) while
recovering the registers.
This commit revises CallEHFunclet not to overwrite R7 when recoverint
the registers.
MyungJoo Ham [Mon, 9 May 2016 06:55:46 +0000 (15:55 +0900)]
Linux/ARM: fix stack alignment breaks (#4858)
ehhelper.S: the function no more requires dummy stack add.
memcpy.S: C_FUNC(memcpy) has misaligned stack.
(memcpy.S is not directly related with the issue #4779.
However, this requires the same fix with ehhelper.S)
Fix #4779
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Russ Keldorph [Mon, 9 May 2016 04:44:05 +0000 (21:44 -0700)]
Merge pull request #4845 from RussKeldorph/pending
Fix some tests where the only problem was incorrect retval
Lubomir Litchev [Mon, 9 May 2016 01:08:08 +0000 (18:08 -0700)]
Update unix-test-instructions.md
Updated run coreclr tests instructions for Linux. Included the new semicolon separated paths for the coreFxBinDir.
Russ Keldorph [Fri, 6 May 2016 23:27:37 +0000 (16:27 -0700)]
Fix some tests where the only problem was incorrect retval
The following tests return values other than 100 on success. Modify the
harness to expect the values that they return:
```
JIT\jit64\regress\vsw\102754\test1\test1.cmd
JIT\Regression\CLR-x86-JIT\V1-M09\b16102\b16102\b16102.cmd
```
The following test is identical to `test1` in the same directory. Delete
it.
```
JIT\jit64\regress\vsw\102754\test2\test2.cmd
```
`rem_r4` returns a non-Unix-compatible 0xAAAA (>255). Change it to the
standard 100.
```
JIT\IL_Conformance\Old\Conformance_Base\rem_r4\rem_r4.cmd
```
The following were using the non-functional Environment.ExitCode.
Switched to Environment.Exit(Environment.ExitCode):
```
JIT\Methodical\switch\switch1\switch1.cmd
JIT\Methodical\switch\switch10\switch10.cmd
JIT\Methodical\switch\switch11\switch11.cmd
JIT\Methodical\switch\switch2\switch2.cmd
JIT\Methodical\switch\switch3\switch3.cmd
JIT\Methodical\switch\switch4\switch4.cmd
JIT\Methodical\switch\switch5\switch5.cmd
JIT\Methodical\switch\switch6\switch6.cmd
JIT\Methodical\switch\switch7\switch7.cmd
JIT\Methodical\switch\switch8\switch8.cmd
JIT\Methodical\switch\switch9\switch9.cmd
JIT\Methodical\tailcall\_il_dbgrecurse_ep_void\_il_dbgrecurse_ep_void.cmd
JIT\Methodical\tailcall\_il_dbgtest_void\_il_dbgtest_void.cmd
JIT\Methodical\tailcall\_il_relrecurse_ep_void\_il_relrecurse_ep_void.cmd
JIT\Methodical\tailcall\_il_reltest_void\_il_reltest_void.cmd
JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b65423\b65423\b65423.cmd
JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd
```
Note that `b08046.cmd` is left disabled because it is still failing.
Koundinya Veluri [Sun, 8 May 2016 18:45:14 +0000 (11:45 -0700)]
Merge pull request #4773 from kouvel/CardTableGrowFix3
Fix recently introduced timing issue when growing the card table
SaeHie Park [Sun, 8 May 2016 18:24:26 +0000 (03:24 +0900)]
ARM: Fix SOS stack dump command failure (#4774)
Dumping address pointer for 32bit system needs adjusting for current implementation
while it assumes %p argument is 64bit. This patch changes (ULONG64) casting to SOS_PTR()
so that it will be safe for both 64 and 32bit.
This will fix DumpStack and EEStack segmentation fault problem.
Related issue: #4672
Jan Kotas [Sun, 8 May 2016 12:02:50 +0000 (05:02 -0700)]
Disable flaky test (#4846)
Jan Kotas [Sun, 8 May 2016 04:21:50 +0000 (21:21 -0700)]
RyuJIT - throughput improvements, PInvoke transitions tweaks: (#4842)
* RyuJIT - throughput improvements, PInvoke transitions tweaks:
- Minor compilation throughput improvements:
- Avoid redundant calls to getMethodAttribs in impMarkInlineCandidate by reusing the value from CALL_INFO
- Avoid redundant calls to getFunctionEntryPoint in codegen by reusing the value computed during lower
- Stop checking CORINFO_FLG_NATIVE flag for inliner observations. It is dead flag, not set anywhere
- Tweaks for helper-based PInvoke transitions (used CoreRT only today):
- Stop emitting CORINFO_HELP_INIT_PINVOKE_FRAME. Just having the two simple begin/end helpers is better.
- Stop passing size of arguments in secret register.
- Enable direct calls for PInvoke targets
* Codereview feedback
Aditya Mandaleeka [Sat, 7 May 2016 20:51:11 +0000 (13:51 -0700)]
Merge pull request #4747 from krytarowski/netbsd-support-75
NetBSD: Fix build with LLVM-3.9
Aditya Mandaleeka [Sat, 7 May 2016 20:28:58 +0000 (13:28 -0700)]
Merge pull request #4843 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Sat, 7 May 2016 18:00:15 +0000 (11:00 -0700)]
Delete left-over uses of FeatureHostedBinder
[tfs-changeset: 1602735]
Bruce Forstall [Sat, 7 May 2016 15:52:07 +0000 (08:52 -0700)]
Merge pull request #4742 from lemmaa/fix-unit-test-script
Fix 'runtest.sh' script
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.
Rahul Kumar [Sat, 7 May 2016 14:21:37 +0000 (07:21 -0700)]
Fixes multidim array Get Accessor for enum datatype (#4808)
James Ko [Sat, 7 May 2016 14:20:18 +0000 (10:20 -0400)]
Use Buffer.BlockCopy in System.Reflection.Emit (#4812)
Thomas Klausner [Sat, 7 May 2016 14:14:55 +0000 (16:14 +0200)]
Fix a typo in NetBSD documentation. (#4841)
James Ko [Sat, 7 May 2016 14:14:06 +0000 (10:14 -0400)]
Buffer.BlockCopy: Avoid double-typechecks for arrays of same type (#4807)
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.
sivarv [Fri, 6 May 2016 21:36:58 +0000 (14:36 -0700)]
Mark simd type vars as lvRegStruct accurately.
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.
Pat Gavlin [Fri, 6 May 2016 23:23:26 +0000 (16:23 -0700)]
Merge pull request #4831 from pgavlin/gh2300
Move b12011 into testsUnsupportedOutsideWindows.
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
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
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
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.
Gaurav Khanna [Fri, 6 May 2016 21:28:38 +0000 (14:28 -0700)]
Cleanup sxsJitStartup from codemanager
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
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.
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
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.
Pat Gavlin [Fri, 6 May 2016 20:08:19 +0000 (13:08 -0700)]
Move b12011 into testsUnsupportedOutsideWindows.
This test requires COM interop.
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.
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
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
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
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
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
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
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
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
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
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
Matt Ellis [Fri, 6 May 2016 01:12:44 +0000 (18:12 -0700)]
Fix conditional in Unix build definition
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
Bruce Forstall [Thu, 5 May 2016 23:44:24 +0000 (16:44 -0700)]
Fix COMPlus_JitFunctionTrace=1 to work better with NYI
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).
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]
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.
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
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.
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.
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.
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.
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.
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
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
Sung-Jae Lee [Thu, 5 May 2016 14:08:27 +0000 (23:08 +0900)]
Following the review comments
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.
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.
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
Rama Krishnan Raghupathy [Wed, 4 May 2016 01:16:47 +0000 (18:16 -0700)]
[Arm64] Initialize indirection cell for delegates
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
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
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
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
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.
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
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
Davis Goodin [Wed, 4 May 2016 22:50:19 +0000 (17:50 -0500)]
Remove CORE_ROOT workaround. .NET CLI no longer uses the value.
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.
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
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
sivarv [Wed, 4 May 2016 15:29:18 +0000 (08:29 -0700)]
Multi-reg call node support.
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
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
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.
Mikhail I. Krivtsov [Wed, 4 May 2016 13:53:05 +0000 (16:53 +0300)]
Fix Windows 'linuxmscorlib arm' build
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
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
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>
Koundinya Veluri [Wed, 4 May 2016 04:11:16 +0000 (21:11 -0700)]
Fix recently introduced timing issue when growing the card table
Observed issue:
- When software write watch is enabled, the runtime is suspended in grow_brick_card_tables() to copy the dirty state of pages into the new table
- The global card table pointer was updated before the attempt to suspend the runtime
- That thread gets blocked there, while the background GC thread successfully suspends the runtime, and calls copy_brick_card_table()
- Since the lowest and highest addresses of the GC heap were not updated, copy_brick_card_table() reads invalid memory
Fixes:
- Moved the change to g_card_table to after the point of suspend for software write watch. At the point of this suspend, the global state will be that prior to resize.
- Though much less frequent, this issue can also occur with the implicit suspend that occurs as part of StompWriteBarrierResize(), when the write barrier type needs to be changed. Moved the other StompWriteBarrierResize() down such that it is done after all global state is updated. At the point of this suspend, the global state will be that following resize.
- I don't think we can have a failure path (failing to commit the mark array) after updating global state such as g_card_table. Soon after that, there may be changes to the new table on paths that don't go through the write barrier, and upon failure to commit the mark array, those updates would be lost. Passed the new card table to functions that need them, and moved changes to global table pointers to after all of the failure points.
Fixes #4750
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.
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
Andy Ayers [Wed, 4 May 2016 02:29:31 +0000 (19:29 -0700)]
Update per review feedback.
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
Aditya Mandaleeka [Wed, 4 May 2016 01:32:40 +0000 (18:32 -0700)]
Add quotes around coreFxBinDir example.
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
Aditya Mandaleeka [Tue, 3 May 2016 23:49:58 +0000 (16:49 -0700)]
Add 'fwrapv' compile option.
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.
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.
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
Aditya Mandaleeka [Tue, 3 May 2016 23:49:13 +0000 (16:49 -0700)]
Revert "Fix array allocation bounds checking."
This reverts commit
16c9dfbae5e5ce18ad0519b31df515820fed2579.
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.
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
Aditya Mandaleeka [Tue, 3 May 2016 19:33:28 +0000 (12:33 -0700)]
Add test for Begin/EndInvoke throwing PlatformNotSupportedException.