Eric Mellino [Fri, 16 Sep 2016 21:54:50 +0000 (14:54 -0700)]
Add an Ubuntu 16.10 badge to README.md
Eric Mellino [Fri, 16 Sep 2016 21:38:12 +0000 (14:38 -0700)]
Merge pull request #7233 from mellinoe/ubuntu1610-ci
Add Ubuntu 16.10 to CI
Sepideh Khoshnood [Fri, 16 Sep 2016 20:12:56 +0000 (13:12 -0700)]
Add few System.Reflection APIs (#7193)
* Add few remaining exposable System.Reflection APIs
Eric Mellino [Fri, 16 Sep 2016 19:11:29 +0000 (12:11 -0700)]
Add Ubuntu 16.10 to CI
Peter Kukol [Fri, 16 Sep 2016 05:59:05 +0000 (23:59 -0600)]
Option for reporting GenTree operator bashing stats (#7152)
* Add option (off by default) to report GenTree operator bashing stats.
Wes Haggard [Fri, 16 Sep 2016 03:16:01 +0000 (20:16 -0700)]
Merge pull request #7212 from joperezr/FixmscorlibRef
Remove unwanted String.Split methods from Reference assembly
Pat Gavlin [Fri, 16 Sep 2016 02:11:30 +0000 (19:11 -0700)]
Merge pull request #7170 from pgavlin/gh7144
Refactor call arg table updates.
Sivarv [Fri, 16 Sep 2016 00:55:43 +0000 (17:55 -0700)]
Merge pull request #7194 from sivarv/jitstressregs1or8Fix
Fix to issues #7167, 7094 and 7143
Aditya Mandaleeka [Thu, 15 Sep 2016 23:56:26 +0000 (16:56 -0700)]
Minor fix in GC section of BOTR
Pat Gavlin [Tue, 13 Sep 2016 20:42:14 +0000 (13:42 -0700)]
Refactor call arg table updates.
When a call argument is replaced by a new node, the corresponding entry
in the call's argument table must be replaced. Managing this replacement
was a bit ad-hoc: there were a (small) number of places throughout the
compiler that needed to do so, and each determined whether or not to
call the udpate method (`fgFixupArgTabEntryPtr`) independently. The
update method has been removed and its functionality replaced with a
new method, `GenTree::ReplaceOperand`, which will update the call
argument table iff the replaced node is a call argument.
Jose Perez Rodriguez [Thu, 15 Sep 2016 23:19:50 +0000 (16:19 -0700)]
Adding new Split members with defaults
sivarv [Thu, 15 Sep 2016 18:30:48 +0000 (11:30 -0700)]
Fix LSRA stress modes not to constrain candidates to below the
required limit.
Gaurav Khanna [Thu, 15 Sep 2016 22:40:27 +0000 (15:40 -0700)]
Merge pull request #7213 from dotnet/revert-7123-WinArm32CI
Revert "Enable Win32Arm CI support"
Gaurav Khanna [Thu, 15 Sep 2016 22:30:32 +0000 (15:30 -0700)]
Revert "Enable Win32Arm CI support"
Jose Perez Rodriguez [Thu, 15 Sep 2016 21:49:47 +0000 (14:49 -0700)]
Remove unwanted String.Split methods from Reference assembly
Joseph Tremoulet [Thu, 15 Sep 2016 20:32:13 +0000 (16:32 -0400)]
Merge pull request #7159 from JosephTremoulet/HelperHoist
Recognize mod-free helper calls in loop hoisting
Sean Gillespie [Thu, 15 Sep 2016 20:05:03 +0000 (13:05 -0700)]
Update the GC from CoreRT (#7207)
Gaurav Khanna [Thu, 15 Sep 2016 18:08:27 +0000 (11:08 -0700)]
Merge pull request #7123 from gkhanna79/WinArm32CI
Enable Win32Arm CI support
Joseph Tremoulet [Thu, 25 Aug 2016 17:45:20 +0000 (13:45 -0400)]
Recognize mod-free helper calls in loop hoisting
Update the code in `optHoistLoopExprsForTree` that identifies exprs with
memory side-effects to recognize helper calls that don't mutate the heap;
this allows hoisting invariant exprs past such helper calls.
Fixes #6901.
Joseph Tremoulet [Thu, 15 Sep 2016 17:48:20 +0000 (13:48 -0400)]
Merge pull request #7162 from JosephTremoulet/VolatileTest
Add missing volatile annotation to test
Joseph Tremoulet [Tue, 13 Sep 2016 17:01:15 +0000 (13:01 -0400)]
Harden test against JIT optimizations
Declare static field `finalizerCompletedOnce` volatile -- this test has a
side-effect-free busy-loop which checks that static variable for a change it
expects a finalizer to make to it; this static field must be volatile to
ensure the jit doesn't hoist the load from the loop.
Call GC.KeepAlive on the objects constructed in the various allocation
loops in this test, to make sure that the entire allocation isn't
optimized away.
Joseph Tremoulet [Thu, 15 Sep 2016 15:37:43 +0000 (11:37 -0400)]
Merge pull request #7201 from JosephTremoulet/MscVer
Update _MSC_FULL_VER check for constexpr handling
Gaurav Khanna [Thu, 15 Sep 2016 14:36:06 +0000 (07:36 -0700)]
Merge pull request #7179 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx, External to beta-24515-02, beta-24514-06, beta-24514-00, respectively (master)
Joseph Tremoulet [Thu, 15 Sep 2016 01:08:04 +0000 (21:08 -0400)]
Update _MSC_FULL_VER check for constexpr handling
Previously the code was comparing against
190024210 (VS2015 Update 3).
Update it to instead compare against
190024315, the last pre-release build
before C++14 constexpr support got added; this fixes compilation using
pre-release MSVC compilers between 24210 and 24315.
Fixes #6642.
James Ko [Thu, 15 Sep 2016 11:37:41 +0000 (07:37 -0400)]
Override CopyTo in MemoryStream (#7131)
* Cache some virtual method calls in Stream.ValidateCopyToArguments
* Add override of Stream.CopyTo to MemoryStream
dotnet-bot [Thu, 15 Sep 2016 08:13:44 +0000 (08:13 +0000)]
Update CoreClr, CoreFx, External to beta-24515-02, beta-24514-06, beta-24514-00, respectively
Justin Van Patten [Thu, 15 Sep 2016 00:48:51 +0000 (17:48 -0700)]
Minor String.Split cleanup to align more closely with CoreRT (#7185)
Pat Gavlin [Wed, 14 Sep 2016 23:40:41 +0000 (16:40 -0700)]
Merge pull request #7189 from pgavlin/x86-cmp-long
Implement long compare lowering for x86.
Carol Eidt [Wed, 14 Sep 2016 23:37:33 +0000 (16:37 -0700)]
Merge pull request #7188 from CarolEidt/Fix7160
Allow GT_OBJ for Arm64
Vance Morrison [Wed, 14 Sep 2016 22:45:58 +0000 (15:45 -0700)]
Merge pull request #6892 from jamesqo/list-optimizations
Copy directly to the internal buffer in List.InsertRange
Pat Gavlin [Wed, 14 Sep 2016 21:22:52 +0000 (14:22 -0700)]
Address more PR feedback.
Pat Gavlin [Wed, 14 Sep 2016 20:18:06 +0000 (13:18 -0700)]
Address PR feedback.
Swaroop Sridhar [Wed, 14 Sep 2016 19:26:20 +0000 (12:26 -0700)]
Merge pull request #6974 from swaroop-sridhar/gc86
Implement GcInfo v2 for X86
Michelle McDaniel [Wed, 14 Sep 2016 18:20:01 +0000 (11:20 -0700)]
Merge pull request #7187 from adiaaida/rotate
Remove NYI for x86 long rotate
SaeHie Park [Wed, 14 Sep 2016 18:00:54 +0000 (03:00 +0900)]
ARM/Linux: Add codename xenial (#7158)
Add Ubuntu 16.04 code name Xenial to cross rootfs option
Pat Gavlin [Wed, 14 Sep 2016 02:32:57 +0000 (19:32 -0700)]
Introduce GT_JCC.
This node represents a jump that is conditional upon the value stored in
the target's condition code register. It is only valid in the backend.
No formal modeling of the CCR is performed, so its use must be
constrained such that instructions that def the CCR are not inserted
between the JCC node and the node that it expected to def the CCR.
This is currently only used when lowering compares of long-typed
values for x86.
Mike Danes [Thu, 8 Sep 2016 11:54:14 +0000 (14:54 +0300)]
Implement long compare lowering for x86.
Comparisons between long-typed values on x86 require at least two and
at most three separate branches: one or two to compare the high 32
bits and one to compare the low 32 bits. In essence, each long
compare introduces two additional basic blocks into the flow graph,
but these blocks were not reified until code generation. Furthermore,
code generation of a long comparison used by a JTRUE was deferred
until the JTRUE itself without marking the inputs to the compare as
live at the JTRUE. Taken together, these representational issues
caused bugs like the one seen in the the following assembly:
33DB xor ebx, ebx
BE03000000 mov esi, 3
33FF xor edi, edi
8B75F0 mov esi, dword ptr [ebp-10H] ; these 2 are reloads inserted by LSRA
8B7DEC mov edi, dword ptr [ebp-14H] ; between the compare and the branch
3BDF cmp ebx, edi
72D6 jb SHORT G_M51005_IG03
7704 ja SHORT G_M51005_IG04
3BC6 cmp eax, esi
72D0 jb SHORT G_M51005_IG03
The reloads that LSRA has inserted have killed the registers assigned
to the inputs to the compare, thus causing the compare instructions
to read unexpected values (GH #7038).
Although a number of alternatives were discussed, the best solution
seems to be to expose the control flow via the flow graph rather than
leaving it until code generation; this commit implements that approach.
Swaroop Sridhar [Mon, 22 Aug 2016 22:06:44 +0000 (15:06 -0700)]
Implement GcInfo v2 for X86
This commit includes the following changes:
1) Thread GcInfo version through X86 specific APIs
2) Add ReturnKind and ReversePinvokeOffset fields to InfoHdr structure
GcInfo v1 and v2 use the same InfoHdr structures, because:
InfoHdrSmall: ReturnKind is encoded within previously unused bits.
InfoHdr: revPInvokeOffset will never be written to the image,
since ReversePinvokeOffset==INVALID_REV_PINVOKE_OFFSET for V1.
3) Update the Pre-computed header table to include bits for the above
[The default setting of ReturnKind=RT_Scalar is used for all entries in the table.
Optimizing this table based in most frequent usage scenarios is to be done separately]
4) Change the GC encoder/decoder to handle the above two fields
5) Use the ReturnKind in the GCInfo from thread-suspension code.
GcInfo version is changed for CoreCLR X86 only, not for Desktop JIT
Fixes #4379
Michelle McDaniel [Wed, 14 Sep 2016 16:39:16 +0000 (09:39 -0700)]
Remove NYI for x86 long rotate
For x86 rotate a long by a variable amount, we will just default to what
legacy backend does, which ultimately will generate two helper calls. In
the future, we may want to write a helper function for rotate for these
cases to eliminate one of the helper calls.
Jan Vorlicek [Wed, 14 Sep 2016 14:59:28 +0000 (16:59 +0200)]
Fix Unix issue with string address below 64kB (#7183)
This change fixes a problem that has started to occur in the ARM32 Linux CI
tests. A string located below 64KB in the address space is passed to the
StringObject::StringInitCharHelper and the code throws an exception since
on Windows, values below 64kB represent atoms and not strings.
This check should not be done for FEATURE_PAL though.
Kyungwoo Lee [Wed, 14 Sep 2016 14:54:59 +0000 (08:54 -0600)]
Merge pull request #7012 from kyulee1/fix6844
X86: Fix inline assertion
Justin Van Patten [Wed, 14 Sep 2016 13:55:39 +0000 (06:55 -0700)]
Update new String.Split methods to use optional params (#7175)
The new `Split(string)` overload broke source compat with uses of
`Split(null)`, which is documented to split based on white space,
because it makes the call ambiguous between `Split(char[])` and
`Split(string)`.
To maintain source compatibilty, `Split(string)` has been removed,
leaving just the overloads with `StringSplitOptions` parameters, which
are now optional. Making `StringSplitOptions` optional allows calls
to `Split(string)` while maintaining source compat with calls to
`Split(null)` which still binds to `Split(char[])` in C#, VB, and F#.
The new `Split(char)` overloads get the same changes for consistency
with `Split(string)`.
Swaroop Sridhar [Wed, 14 Sep 2016 08:06:08 +0000 (01:06 -0700)]
Use the correct HijackHelper for X86 FP (#7182)
On X86, the helper OnHijackFPTripThread must be used for hijacking
methods returning a float value.
Carol Eidt [Tue, 13 Sep 2016 23:56:41 +0000 (16:56 -0700)]
Allow GT_OBJ for Arm64
GT_OBJ is used on Arm64 for struct passing, but was inadvertently flagged
as an illegal node in Lowering.
Fix #7160
smile21prc [Tue, 13 Sep 2016 23:47:15 +0000 (16:47 -0700)]
Merge pull request #7177 from smile21prc/coreclr-perf
Extend the coreclr Windows perf run result lifetime
Smile Wei [Tue, 13 Sep 2016 23:21:13 +0000 (16:21 -0700)]
For perf, we need to keep the run results longer for analysis.
dotnet bot [Tue, 13 Sep 2016 22:33:31 +0000 (15:33 -0700)]
Update CoreClr, CoreFx, External to beta-24513-04, beta-24513-02, beta-24513-00, respectively (#7006)
Kyungwoo Lee [Wed, 31 Aug 2016 21:18:31 +0000 (14:18 -0700)]
X86: Fix inline assertion
Inline assertion occurred since we didn't bail out the inline fail case
early.
During the test, I got another assertion about debug flag where #7173 is
filed with x86 legacy back-end.
With x86 ryujit back-end, there is an infinite loop from #7038.
Fixes #6844
Bruce Forstall [Tue, 13 Sep 2016 21:18:12 +0000 (14:18 -0700)]
Merge pull request #7164 from BruceForstall/FixTestExclusions
Add issue comments to excluded tests
smile21prc [Tue, 13 Sep 2016 21:14:12 +0000 (14:14 -0700)]
Merge pull request #7172 from smile21prc/coreclr-perf
Enable archive for coreclr perf Linux runs, and fix a few bugs.
Smile Wei [Thu, 8 Sep 2016 19:25:54 +0000 (12:25 -0700)]
List all generated perf .xml files.
Michelle McDaniel [Tue, 13 Sep 2016 20:36:51 +0000 (13:36 -0700)]
Merge pull request #7166 from adiaaida/removeNYIs
Remove unnecessary NYIs in Decompose
Michelle McDaniel [Tue, 13 Sep 2016 18:21:37 +0000 (11:21 -0700)]
Remove unnecessary NYIs in Decompose
GT_DIV, GT_MOD, GT_UDIV, GT_ROL, GT_ROR, and GT_MULHI will never make it
to decompose, so remove the case statements for those operations. They
will fall through to the default case, which noway_asserts that we haven't
gotten to decompose with an oper that we don't recognize.
Sivarv [Tue, 13 Sep 2016 17:55:51 +0000 (10:55 -0700)]
Merge pull request #7145 from sivarv/JitStressRegs8Fix
Fix to #7091 - Assert failure 'currentInterval && (currentInterval->isLocalVar || currentRefPosition->isFixedRegRef || currentInterval->hasConflictingDefUse)'
Bruce Forstall [Tue, 13 Sep 2016 17:34:46 +0000 (10:34 -0700)]
Add issue comments to excluded tests
Justin Van Patten [Tue, 13 Sep 2016 17:25:13 +0000 (10:25 -0700)]
Add Array.Reverse<T> (#7132)
* Add Array.Reverse<T>
Add generic `Reverse<T>` methods to `Array`.
* Change List<T>.Reverse to use Array.Reverse<T>
Implement `List<T>.Reverse` using `Array.Reverse<T>`.
Stephen Toub [Tue, 13 Sep 2016 16:36:44 +0000 (12:36 -0400)]
Remove a field from the CopyToAsync async state machine (#7157)
The compiler is lifting the local ```bytesRead``` into a field on the async state machine, even though its value need not be preserved across any await.
Dmitri-Botcharnikov [Tue, 13 Sep 2016 16:25:33 +0000 (20:25 +0400)]
Enable Debian Jessie for ARM rootfs build (#7140)
chrisaut [Tue, 13 Sep 2016 14:58:06 +0000 (21:58 +0700)]
Replace % inside loop of Random ctor (#7156)
Mike McLaughlin [Tue, 13 Sep 2016 12:48:27 +0000 (05:48 -0700)]
Fix funceval for enregistered value types arguments. (#7149)
Issue #7115.
MethodDescCallSide.CallTargetWorker used by funceval needed to deal with
enregistered 16 byte value types arguments not just return values.
Jan Kotas [Tue, 13 Sep 2016 10:42:29 +0000 (03:42 -0700)]
Merge pull request #7153 from dotnet-bot/from-tfs
Merge changes from TFS
Bruce Forstall [Tue, 13 Sep 2016 05:47:50 +0000 (22:47 -0700)]
Fix uninitialized local build break
[tfs-changeset: 1626936]
Bruce Forstall [Tue, 13 Sep 2016 05:26:47 +0000 (22:26 -0700)]
Merge pull request #7130 from BruceForstall/Fix7086
RyuJIT x86: Implement GS cookie check for functions with tailcall
Peter Kukol [Tue, 13 Sep 2016 04:35:54 +0000 (22:35 -0600)]
Clean up COMPlus_JitMemStats / MEASURE_MEM_ALLOC (#7119)
Clean up COMPlus_JitMemStats / MEASURE_MEM_ALLOC (all of it is off by default for non-DEBUG builds).
Michelle McDaniel [Tue, 13 Sep 2016 04:18:59 +0000 (21:18 -0700)]
Merge pull request #7105 from adiaaida/umodLong
Implement DecomposeUMod
Michelle McDaniel [Thu, 8 Sep 2016 15:52:37 +0000 (08:52 -0700)]
Implement DecomposeUMod
This change implements DecomposeUMod for x86 RyuJIT. The only GT_UMOD
nodes that make it to decompose are ones where op2 is a cast from a
constant int to long. Because op2 is an int, we can guarantee that the
result will be an int. Therefore, in decompose, we change the type of the
GT_UMOD to be TYP_INT, and replace op2 with its lo part. We set the high
part of the GT_LONG to be 0, since the divisor < 0x3fffffff. In lower, we need
to make sure that loOp1 is in RAX and hiOp1 is in RDX, which is where
idiv expects them to be. We also increase the number of sources since
there are now three sources. In codegen, we need to make sure that the hi
and lo parts of the dividend are in the correct registers for idiv, then
we can just use the normal logic for GT_UMOD.
Pat Gavlin [Tue, 13 Sep 2016 00:34:49 +0000 (17:34 -0700)]
Merge pull request #7126 from mikedn/x86-cast-long-int-overflow
Implement long to int casts with overflow for x86
Bruce Forstall [Sat, 10 Sep 2016 00:07:30 +0000 (17:07 -0700)]
RyuJIT x86: Implement GS cookie check for functions with tailcall
Fixes #7086, one of the most common asserts in stress runs.
I moved some helper code from the legacy codegen to codegencommon
so it could be used. I also added the code to generate the GS
cookie check for tailcall via helper code (on x64, we never
generate GS cookie checks when there are tailcalls).
Bruce Forstall [Mon, 12 Sep 2016 22:36:29 +0000 (15:36 -0700)]
Merge pull request #7148 from BruceForstall/Fix7127
Restrict x86 legacy JIT struct promotion
Pat Gavlin [Mon, 12 Sep 2016 22:28:26 +0000 (15:28 -0700)]
Merge pull request #7133 from mikedn/x86-cast-long-float
Implement long to float cast for x86
Vance Morrison [Mon, 12 Sep 2016 22:16:59 +0000 (15:16 -0700)]
Merge pull request #7102 from vancem/ETWGCDumpFix.9-7-16
Fix Issue dumping GC heap with ETW more than once
Bruce Forstall [Mon, 12 Sep 2016 21:19:12 +0000 (14:19 -0700)]
Restrict x86 legacy JIT struct promotion
Don't allow struct promotion for custom layout structs. RyuJIT started
supporting this, but the legacy x86 JIT doesn't properly push such promoted
structs as arguments for calls.
Fixes the assert in #7127, but the test fails with a crash in a later test case.
Jan Kotas [Mon, 12 Sep 2016 20:39:11 +0000 (13:39 -0700)]
Merge pull request #7136 from benaadams/enviro
Updated formatted GetResourceString code reduction
Jose Perez Rodriguez [Mon, 12 Sep 2016 18:42:46 +0000 (11:42 -0700)]
Merge pull request #7142 from joperezr/FillOutMissingStringMembers
Adding missing String members to coreclr
sivarv [Mon, 12 Sep 2016 18:29:53 +0000 (11:29 -0700)]
Fix to #7091.
Davis Goodin [Mon, 12 Sep 2016 18:15:48 +0000 (13:15 -0500)]
Merge pull request #6791 from dagood/upgrade-xunit-runner
Upgrade xunit runner to 2.2.0-beta2-build3300
Jose Perez Rodriguez [Mon, 12 Sep 2016 17:10:22 +0000 (10:10 -0700)]
Removing one String member to avoid depending on ArgIterator
Jose Perez Rodriguez [Mon, 12 Sep 2016 16:44:39 +0000 (09:44 -0700)]
Adding missing String members to coreclr
Mike Danes [Sun, 11 Sep 2016 12:49:12 +0000 (15:49 +0300)]
Implement long to float cast for x86
Convert long to float/double casts to helper calls. Despite the call this version is 2x faster than JIT32's FILD implementation which suffers a significant store forwarding stall penalty.
Ben Adams [Sun, 11 Sep 2016 21:26:19 +0000 (22:26 +0100)]
Fix Environment no-inlining for mscorlib
James Ko [Wed, 31 Aug 2016 15:12:13 +0000 (11:12 -0400)]
Reduce code bloat around formatted GetResourceString calls
Peter Kukol [Sat, 10 Sep 2016 00:27:19 +0000 (18:27 -0600)]
Merge pull request #7067 from pkukol/timing_bit_rot
Fix some timing code bit rot, plus minor cleanup.
Pat Gavlin [Fri, 9 Sep 2016 23:22:07 +0000 (16:22 -0700)]
Merge pull request #7125 from pgavlin/ModelAssignByRefKillSet
Model the kill set for ASSIGN_BYREF and stop generating movsq on x86.
Bruce Forstall [Fri, 9 Sep 2016 22:02:29 +0000 (15:02 -0700)]
Merge pull request #7122 from BruceForstall/Fix7092
Fix #7092
Bruce Forstall [Fri, 9 Sep 2016 21:59:09 +0000 (14:59 -0700)]
Merge pull request #7120 from BruceForstall/Fix7093
Fix #7093
Bruce Forstall [Fri, 9 Sep 2016 21:58:08 +0000 (14:58 -0700)]
Merge pull request #7114 from BruceForstall/Fix7100
Fix #7100
Mike Danes [Fri, 9 Sep 2016 20:44:29 +0000 (23:44 +0300)]
Implement long to int casts with overflow for x86
Bruce Forstall [Fri, 9 Sep 2016 17:47:45 +0000 (10:47 -0700)]
Fix #7092
The problem is genCodeForInitBlkUnroll() is trying to generate:
```
mov byte ptr [edi], si
```
which is not legal: ebp/esi/edi/esp don't have byte register versions on x86.
This change requires the source register to be an x86 byteable register in
this case.
Note that legacy JIT generates stosb for this test.
Pat Gavlin [Fri, 9 Sep 2016 19:26:44 +0000 (12:26 -0700)]
Do not use movsq on x86.
This instruction is only available when targeting amd64.
Pat Gavlin [Fri, 9 Sep 2016 18:04:19 +0000 (11:04 -0700)]
Model the kill set for ASSIGN_BYREF on x86.
This helper kills esi, edi, and ecx.
Gaurav Khanna [Fri, 9 Sep 2016 17:56:15 +0000 (10:56 -0700)]
Enable Win32Arm CI support
Sivarv [Fri, 9 Sep 2016 17:16:16 +0000 (10:16 -0700)]
Merge pull request #7111 from sivarv/jitstressregs2Fix
Fix to #7087 - x86 RyuJIT JitstressRegs=2 assert failure
Kyungwoo Lee [Fri, 9 Sep 2016 16:32:39 +0000 (10:32 -0600)]
Merge pull request #7108 from kyulee1/igmeta
ILDAMS: Ignore Metadata flag for CoreCLR
Sean Gillespie [Fri, 9 Sep 2016 16:32:24 +0000 (09:32 -0700)]
Merge pull request #7121 from swgillespie/request-build-break
Only reference IGCHeap::gcHeapType when FEATURE_SVR_GC is defined
Sean Gillespie [Fri, 9 Sep 2016 13:53:48 +0000 (06:53 -0700)]
Only reference IGCHeap::gcHeapType when FEATURE_SVR_GC is defined
Jan Vorlicek [Fri, 9 Sep 2016 08:57:45 +0000 (10:57 +0200)]
Fix enregistered max size constants on Unix AMD64 (#7117)
This change fixes ENREGISTERED_PARAMTYPE_MAXSIZE and ENREGISTERED_RETURNTYPE_INTEGER_MAXSIZE
constants that were not updated properly for the Unix AMD64 ABI. The values are used
for Unix/AMD64 for marshalling and typedbyref parameters and our tests probably don't
execute those code paths with structs larger than 8 bytes.
Jan Kotas [Fri, 9 Sep 2016 02:35:16 +0000 (19:35 -0700)]
Merge pull request #7118 from dotnet/revert-6889-StaticField
Revert "Fix IMGREL32 static field addr value-num blindspot"
Bruce Forstall [Fri, 9 Sep 2016 01:09:34 +0000 (18:09 -0700)]
Fix #7093
This is an assert due to how STRESS_64RSLT_MUL is implemented. This
stress mode converts:
```
/--* lclVar int V01 loc0
* * int
\--* lclVar int V01 loc0
```
to:
```
* cast int <- long
| /--* cast long <- int
| | \--* lclVar int V01 loc0
\--* * long
\--* cast long <- long
\--* nop long
\--* lclVar int V01 loc0
```
Thus, the long 'nop' node is above an 'int' operand node. This led to an assert
in genCodeForTreeLng() that the lclVar was type long, which is isn't.
I added yet another cast under the 'nop' to fix this typing problem:
```
* cast int <- long
| /--* cast long <- int
| | \--* lclVar int V01 loc0
\--* * long
\--* cast long <- long
\--* nop long
\--* cast long <- int
\--* lclVar int V01 loc0
```
Jan Kotas [Fri, 9 Sep 2016 00:58:55 +0000 (17:58 -0700)]
Revert "Fix IMGREL32 static field addr value-num blindspot"
Sean Gillespie [Fri, 9 Sep 2016 00:45:58 +0000 (17:45 -0700)]
Merge pull request #7116 from dotnet-bot/from-tfs
Merge changes from TFS