summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2016-05-04Merge pull request #4723 from kyulee1/tailcallKyungwoo Lee10-67/+110
ARM64: Enable Tail Call with Vararg
2016-05-04Merge pull request #4727 from adiaaida/overflowLongArithmeticMichelle McDaniel3-0/+27
Set overflow flag for add/sub hi on x86 TYP_LONG
2016-05-04Merge pull request #4760 from dotnet-bot/from-tfsBruce Forstall11-32/+160
Merge changes from TFS
2016-05-04ARM64: Enable Tail Call with VarargKyungwoo Lee10-67/+110
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.
2016-05-03Merge pull request #4478 from pgavlin/JitPackagingPat Gavlin10-0/+292
Create JIT packages during the build.
2016-05-03Merge pull request #4740 from yizhang82/interop_x86_testYi Zhang (CLR)1-5/+0
Fix interop x86 tests by fixing mismatching calling convention, and enable [NativeCallable] for every architecture
2016-05-03Merge pull request #4753 from AndyAyersMS/InlineForSizeAndy Ayers4-6/+118
Inliner: initial version of SizePolicy
2016-05-04ARM: fix stack frame management (#4641)MyungJoo Ham3-21/+37
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.
2016-05-03Merge pull request #4693 from adityamandaleeka/delegateinvoke_platnotsupAditya Mandaleeka1-3/+3
Make Delegate BeginInvoke/EndInvoke throw PlatformNotSupportedException
2016-05-03Merge pull request #4738 from dotnet-bot/from-tfsBruce Forstall1-2/+2
Merge changes from TFS
2016-05-03Create JIT packages during the build.Pat Gavlin10-0/+292
2016-05-03Set overflow flag for add/sub hi on x86 TYP_LONGMichelle McDaniel3-0/+27
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.
2016-05-03Remove SEH interactions between the JIT and the EE.Pat Gavlin11-32/+160
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]
2016-05-03Inliner: initial version of SizePolicyAndy Ayers4-6/+118
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.
2016-05-03Merge pull request #4728 from pgavlin/FixTRTContractsPat Gavlin1-6/+11
Fix contracts in `tryResolveToken`.
2016-05-03Fix calling convention mismatch in 7 interop tests and enable ↵Yi Zhang (CLR)1-5/+0
[NativeCallable] in all architectures.
2016-05-03Merge pull request #4732 from BruceForstall/SignedIntToLongCastNYIBruce Forstall1-3/+10
Convert signed int=>long cast SBCG to NYI
2016-05-03Convert signed int=>long cast SBCG to NYIBruce Forstall1-3/+10
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.
2016-05-03Fix contracts in `tryResolveToken` et. al.Pat Gavlin1-6/+11
`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`.
2016-05-03Merge pull request #4726 from adityamandaleeka/array_alloc_bounds_checkJan Vorlicek1-2/+17
Fix array allocation bounds checking on Unix
2016-05-03Generalize Buffer.BlockCopy optimization for either src or dst (#4736)James Ko1-11/+23
* Generalize Buffer.BlockCopy optimization for either src or dst
2016-05-02Fix for http://buildstatus/Issues/Issues.aspx?iid=797159Gaurav Khanna1-2/+2
[tfs-changeset: 1601059]
2016-05-02Fix handling of FP args on stack in the ArgIterator (#4729)Jan Vorlicek1-1/+2
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.
2016-05-02Merge pull request #4694 from ramarag/thisptrretRama krishnan Raghupathy3-17/+38
Arm64:Implemeting ThisPtrRetBufPrecode:
2016-05-02Merge pull request #4616 from LLITCHEV/MultiCoreJit-1Lubomir Litchev1-2/+8
Add ability to AutoStartProfiling for CoreCLR.
2016-05-02Arm64:Implemeting ThisPtrRetBufPrecode:Rama Krishnan Raghupathy3-17/+38
Precode to shuffle this and retbuf for closed delegates over static methods with return buffer
2016-05-02Fix array allocation bounds checking.Aditya Mandaleeka1-2/+17
2016-05-02Merge pull request #4719 from dotnet-bot/from-tfsBruce Forstall1-1/+1
Merge changes from TFS
2016-05-02Merge pull request #4684 from gkhanna79/CrossgenJITGaurav Khanna3-13/+69
Load JIT from custom location for Crossgen
2016-05-02Merge pull request #4718 from kyulee1/nativevarargKyungwoo Lee1-2/+2
ARM64: NativeVarArg
2016-05-02Merge pull request #4637 from adityamandaleeka/synch_cleanupAditya Mandaleeka4-1153/+665
Remove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager
2016-05-02Add ability to AutoStartProfiling for CoreCLR.Lubomir Litchev1-2/+8
Add ability to do MultiCoreJit profiling in the CoreCLR. This is used for testing of the MultiCoreJit functionality.
2016-05-02Merge pull request #4688 from dotnet-bot/from-tfsJan Kotas8-93/+273
Merge changes from TFS
2016-05-02Merge pull request #4543 from krytarowski/netbsd-support-73Mike McLaughlin1-14/+41
NetBSD limits name of a semaphore to 15 characters (inc. null)
2016-05-02ARM64: NativeVarArgKyungwoo Lee1-2/+2
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.
2016-05-02Merge pull request #4621 from kyulee1/floatargKyungwoo Lee3-20/+28
ARM64: Enable Varargs with float argument.
2016-05-02ARM64: Enable Varargs with float argument.Kyungwoo Lee3-20/+28
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.
2016-05-02Merge pull request #4689 from AndyAyersMS/NoInlineRangeAndy Ayers9-71/+258
Implement JitNoInlineRange
2016-05-02Enable crossgen to load JIT from a custom locationGaurav Khanna3-13/+69
Continue to link the JIT in for Windows Arm64 builds until 4717 is fixed.
2016-05-01Fix #4496 (#4503)Jonghyun Park1-1/+6
* 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.
2016-04-30Support generic methods without generic dictionaryJohn Chen (CLR)19-110/+533
2016-04-30Merge pull request #4653 from mikem8361/shimraceMike McLaughlin10-61/+138
Fix issue #4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"
2016-04-30Merge pull request #4687 from kyulee1/zapKyungwoo Lee14-37/+340
ARM64: Enabling Crossgen End-to-End Mscorlib
2016-04-29Merge pull request #4691 from adiaaida/longOperatorsMichelle McDaniel1-1/+15
Separate NYIs for arithmetic operators on longs
2016-04-29Implement JitNoInlineRangeAndy Ayers9-71/+258
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.
2016-04-29Fix desktop build break introduced by CS#1600134Bruce Forstall1-1/+1
[tfs-changeset: 1600494]
2016-04-29Make Delegate BeginInvoke/EndInvoke throw PlatformNotSupportedException.Aditya Mandaleeka1-3/+3
2016-04-29Separate NYIs for arithmetic operators on longsMichelle McDaniel1-1/+15
To make it more obvious which long operators are causing the NYI to hit, split out the different operators with their own NYI.
2016-04-29ARM64: Enabling Crossgen End-to-End MscorlibKyungwoo Lee14-37/+340
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.
2016-04-29Treat NetBSD like FreeBSD and OSX in PAL_VirtualUnwind() (#4551)Kamil Rytarowski1-4/+4
This fixes hangs in the runtime observed while running CoreFX managed tests. Thanks @janvorli and @myungjoo Fix #4380