platform/upstream/coreclr.git
9 years agoEnable the Windows x86 build
Mike Danes [Sat, 1 Aug 2015 08:04:16 +0000 (11:04 +0300)]
Enable the Windows x86 build
This allows building the Windows x86 version of CoreCLR by using "x86" for the BuildArch parameter of build.cmd. Note that CMAKE_SYSTEM_PROCESSOR is no longer used in Windows builds to set IS_64BIT_BUILD.
This change is enough to get CoreCLR to build but more changes are required for it to actually run correctly. In particular, the JIT compiler support for x86 is pretty limited at this point.

9 years agoMerge pull request #1339 from dotnet-bot/from-tfs
Jan Kotas [Tue, 4 Aug 2015 04:49:18 +0000 (21:49 -0700)]
Merge pull request #1339 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoAllow x86 version of prebuilt mscoree.h to be used for all architectures
Jan Kotas [Tue, 4 Aug 2015 03:27:34 +0000 (20:27 -0700)]
Allow x86 version of prebuilt mscoree.h to be used for all architectures

[tfs-changeset: 1509924]

9 years agoMerge pull request #1332 from benpye/arm-regression-fix
Jan Kotas [Tue, 4 Aug 2015 03:20:57 +0000 (20:20 -0700)]
Merge pull request #1332 from benpye/arm-regression-fix

Fix ARM build regression

9 years agoMerge pull request #1338 from dotnet-bot/from-tfs
Jan Kotas [Tue, 4 Aug 2015 03:15:56 +0000 (20:15 -0700)]
Merge pull request #1338 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoFix build break on Windows ARM
Jan Kotas [Mon, 3 Aug 2015 23:22:44 +0000 (16:22 -0700)]
Fix build break on Windows ARM

[tfs-changeset: 1509827]

9 years agoMerge pull request #1337 from dotnet/revert-1334-from-tfs
Jan Kotas [Mon, 3 Aug 2015 23:14:58 +0000 (16:14 -0700)]
Merge pull request #1337 from dotnet/revert-1334-from-tfs

Revert "Merge changes from TFS"

9 years agoRevert "Merge changes from TFS"
Jan Kotas [Mon, 3 Aug 2015 21:48:35 +0000 (14:48 -0700)]
Revert "Merge changes from TFS"

9 years agoMerge pull request #1334 from dotnet-bot/from-tfs
Jan Kotas [Mon, 3 Aug 2015 19:18:31 +0000 (12:18 -0700)]
Merge pull request #1334 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoFix ARM build regression
Ben Pye [Mon, 3 Aug 2015 17:25:25 +0000 (17:25 +0000)]
Fix ARM build regression

9 years agoMerge pull request #1331 from justinvp/streamreader_cachedencodings
Jan Kotas [Mon, 3 Aug 2015 18:24:37 +0000 (11:24 -0700)]
Merge pull request #1331 from justinvp/streamreader_cachedencodings

StreamReader: Use the static cached Encoding instances

9 years agoMerge pull request #1333 from dotnet-bot/from-tfs
Jan Kotas [Mon, 3 Aug 2015 18:24:06 +0000 (11:24 -0700)]
Merge pull request #1333 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoUse x86 version of prebuilt mscoree.h
Jan Kotas [Mon, 3 Aug 2015 18:16:18 +0000 (11:16 -0700)]
Use x86 version of prebuilt mscoree.h

It matches what we do in the legacy build environment. The x64 version of the header file is causing build breaks on x86 as @mikedn found out.

[tfs-changeset: 1509675]

9 years agoMerge pull request #1330 from dobe/master
Stephen Toub [Mon, 3 Aug 2015 14:39:27 +0000 (10:39 -0400)]
Merge pull request #1330 from dobe/master

fixed typo

9 years agofixed typo
dobe [Mon, 3 Aug 2015 14:03:29 +0000 (16:03 +0200)]
fixed typo

9 years agoMerge pull request #1320 from ganeshran/1313-GitSetupSection
Jan Kotas [Fri, 31 Jul 2015 21:22:47 +0000 (14:22 -0700)]
Merge pull request #1320 from ganeshran/1313-GitSetupSection

Adding instructions to clone both corefx and coreclr in the Git Setup…

9 years agoMerge pull request #1285 from benpye/linux-arm-stack-unwinding
Jan Vorlicek [Fri, 31 Jul 2015 19:48:05 +0000 (21:48 +0200)]
Merge pull request #1285 from benpye/linux-arm-stack-unwinding

Add unwinding for the ARM Linux platform

9 years agoModify unwinder to provide RtlVirtualUnwind.
Ben Pye [Tue, 14 Jul 2015 20:52:13 +0000 (21:52 +0100)]
Modify unwinder to provide RtlVirtualUnwind.

Use PAL_VirtualUnwind on Linux ARM

Add assembler annotation for unwinding

9 years agoAdding instructions to clone both corefx and coreclr in the Git Setup section for...
Ganesh Ranganathan [Fri, 31 Jul 2015 08:08:10 +0000 (13:38 +0530)]
Adding instructions to clone both corefx and coreclr in the Git Setup section for Linux and FreeBSD. The corefx clone is needed on Linux/FreeBSD to build the native components. Ref #1313

9 years agoMerge pull request #1319 from kangaroo/aarch64-hfa-fix
Jan Kotas [Fri, 31 Jul 2015 05:44:18 +0000 (22:44 -0700)]
Merge pull request #1319 from kangaroo/aarch64-hfa-fix

[aarch64] Correct the checking of return class type to check against CORINFO_TYPE_FLOAT

9 years ago[aarch64] Correct the checking of return class type to check against CORINFO_TYPE_FLOAT
Geoff Norton [Fri, 31 Jul 2015 05:13:10 +0000 (05:13 +0000)]
[aarch64] Correct the checking of return class type to check against CORINFO_TYPE_FLOAT

9 years agoFix more build breaks on Windows arm64
Jan Kotas [Fri, 31 Jul 2015 02:01:02 +0000 (19:01 -0700)]
Fix more build breaks on Windows arm64

[tfs-changeset: 1508010]

9 years agoFix build break on Windows arm64
Jan Kotas [Thu, 30 Jul 2015 23:53:52 +0000 (16:53 -0700)]
Fix build break on Windows arm64

[tfs-changeset: 1507960]

9 years agoMerge pull request #1317 from nguerrera/corefx-native-docs
Nick Guerrera [Thu, 30 Jul 2015 21:50:52 +0000 (14:50 -0700)]
Merge pull request #1317 from nguerrera/corefx-native-docs

Add instructions for building corefx native components

9 years agoAdd instructions for building corefx native components
Nick Guerrera [Thu, 30 Jul 2015 21:11:11 +0000 (14:11 -0700)]
Add instructions for building corefx native components

Fix #1313

9 years agoMerge pull request #1292 from kangaroo/aarch64
Jan Kotas [Thu, 30 Jul 2015 20:16:34 +0000 (13:16 -0700)]
Merge pull request #1292 from kangaroo/aarch64

Initial aarch64/linux support

9 years agoMerge pull request #1314 from dotnet-bot/from-tfs
Jan Kotas [Thu, 30 Jul 2015 20:15:22 +0000 (13:15 -0700)]
Merge pull request #1314 from dotnet-bot/from-tfs

Merge changes from TFS

9 years ago[aarch64] Address code review feedback and disable EmitGetThreadInlined on PAL for now
Geoff Norton [Thu, 30 Jul 2015 17:20:55 +0000 (17:20 +0000)]
[aarch64] Address code review feedback and disable EmitGetThreadInlined on PAL for now

9 years agoMerge pull request #1309 from schellap/copyprop
Matt Mitchell [Thu, 30 Jul 2015 04:44:22 +0000 (21:44 -0700)]
Merge pull request #1309 from schellap/copyprop

Conservatively mark variable as killed if there is an embedded comma …

9 years agoFix prefast warnings in CLR code
Eugene Zemtsov [Wed, 29 Jul 2015 23:38:07 +0000 (16:38 -0700)]
Fix prefast warnings in CLR code

[tfs-changeset: 1507366]

9 years agoConservatively mark variable as killed if there is an embedded comma assignment
schellap [Wed, 29 Jul 2015 20:08:16 +0000 (13:08 -0700)]
Conservatively mark variable as killed if there is an embedded comma assignment

GitHub Issue: Another RyuJIT optimization bug #1299
https://github.com/dotnet/coreclr/issues/1299

The underlying problem is there are two loops:

The first loop does copy prop
The second loop updates the stack of live definitions in the currently
traversed CFG path.

This approach works fine only if assignments are atomic statements, but
when there is an assignment embedded using a comma in a statement:
The first loop does nothing about this and continues to propagate
copies, i.e., without updating the liveness stack. This leads to using a
stale VN for comparison rather than using an updated VN due to this
definition.

Only when the second loop runs, this live definition is added to the
stack.

The right fix is to merge the two loops into a single loop that does
copy prop on the tree and at the same time updates the liveness on the
stack right after the call. But this is causing a lot of ASM diffs which
would affect stability.

I am making a conservative fix of temporarily marking the variables that
have embedded intervening defs as "killed", until the second loop runs
to update liveness.

There are no SuperASM diffs with this change.

9 years agoMerge pull request #1298 from mmitche/tail-call-fix
Matt Mitchell [Wed, 29 Jul 2015 15:10:13 +0000 (08:10 -0700)]
Merge pull request #1298 from mmitche/tail-call-fix

Fix for potential bad tailcall code generation

9 years agoFix for potential bad tailcall code generation
Matt Mitchell [Mon, 27 Jul 2015 19:02:28 +0000 (12:02 -0700)]
Fix for potential bad tailcall code generation

The JIT can potentially pass an incorrect parameter to a callee when optimizing a tail call.  While updating a GT_LCL* node with lcl var num of temp passed to the tail call, we also need to change its opererand to GT_LCL_VAR.

9 years ago[aarch64] lsra wa not properly setting the killMask for initBlk, copyBlk or copyObj
Geoff Norton [Tue, 28 Jul 2015 23:03:51 +0000 (23:03 +0000)]
[aarch64] lsra wa not properly setting the killMask for initBlk, copyBlk or copyObj

9 years ago[pal] PAL_printf_arg_remover was not properly handling formats like %*s
Geoff Norton [Tue, 28 Jul 2015 20:17:52 +0000 (20:17 +0000)]
[pal] PAL_printf_arg_remover was not properly handling formats like %*s

9 years agoMerge pull request #1269 from Sridhar-MS/osx-tickcount
Sridhar Periyasamy [Tue, 28 Jul 2015 16:43:37 +0000 (09:43 -0700)]
Merge pull request #1269 from Sridhar-MS/osx-tickcount

Fix to get the correct value for Environment.TickCount in OSX

9 years ago[aarch64] Enable the interpreter on linux as well
Geoff Norton [Tue, 28 Jul 2015 15:40:23 +0000 (15:40 +0000)]
[aarch64] Enable the interpreter on linux as well

9 years agoMerge pull request #1302 from dotnet-bot/from-tfs
Jan Kotas [Tue, 28 Jul 2015 11:52:29 +0000 (04:52 -0700)]
Merge pull request #1302 from dotnet-bot/from-tfs

Merge changes from TFS

9 years ago[aarch64] Initial aarch64/linux bring up
Geoff Norton [Sat, 25 Jul 2015 05:48:20 +0000 (14:48 +0900)]
[aarch64] Initial aarch64/linux bring up

9 years agoFix to bad codegen issue while tail calling virtual stub dispatched call that require...
Venkata Sivaramakrishna Ramadugu [Tue, 28 Jul 2015 00:09:33 +0000 (17:09 -0700)]
Fix to bad codegen issue while tail calling virtual stub dispatched call that requires runtime lookup.

This is a case of Virtual Stub Dispatch (VSD) call that requires runtime lookup.  For such a call JIT needs to pass the address of the indirection cell in R11 (which is a callee trash register).  For the F# repro, VSD call is marked with ".tail" prefix and a result RyuJIT attempted to dispatch through a tail call helper.  But CLR tail call helper implementation doesn't preserve R11 nor make any such guarantees and a result indirection cell address passed in R11 gets trashed leading to an AV in VM during call dispatch.  In fact all of the calls that have non-standard args passed in callee trash registers cannot be tail called via helper for the same reason.  Note that it is fine to fast tail call though.

     Fix: During call morphing reject tail calls with non-stand args to be dispatched via tail-call helper.

[tfs-changeset: 1506345]

9 years agoMerge pull request #1301 from dotnet-bot/from-tfs
Jan Kotas [Mon, 27 Jul 2015 21:41:44 +0000 (14:41 -0700)]
Merge pull request #1301 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoAdd new file to the old msbuild makefiles
Jan Kotas [Mon, 27 Jul 2015 20:44:33 +0000 (13:44 -0700)]
Add new file to the old msbuild makefiles

[tfs-changeset: 1506251]

9 years agoFix to return the right frequency (in ticks per second) and counter (in terms of...
Sridhar Periyasamy [Mon, 27 Jul 2015 20:01:56 +0000 (13:01 -0700)]
Fix to return the right frequency (in ticks per second) and counter (in terms of ticks) in OSX.

Reference: https://developer.apple.com/library/ios/qa/qa1643/_index.html

9 years agoMerge pull request #1295 from benpye/windows-unix-hosting-api
Jan Kotas [Mon, 27 Jul 2015 16:23:28 +0000 (09:23 -0700)]
Merge pull request #1295 from benpye/windows-unix-hosting-api

Expose Unix hosting API on Windows

9 years agoExpose Unix hosting API on Windows
Ben Pye [Mon, 27 Jul 2015 12:48:31 +0000 (13:48 +0100)]
Expose Unix hosting API on Windows

9 years agoMerge pull request #1293 from dotnet-bot/from-tfs
Jan Kotas [Mon, 27 Jul 2015 05:31:44 +0000 (22:31 -0700)]
Merge pull request #1293 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoFix 1203471: Incorrect rationalization of unused SIMD localVar
Carol Eidt [Mon, 27 Jul 2015 03:14:03 +0000 (20:14 -0700)]
Fix 1203471: Incorrect rationalization of unused SIMD localVar

The Rationalizer was not correctly handling a case of an unused SIMD expression involving a localVar or temporary value, where the SIMD expression is returning a non-SIMD value, and the expression is sufficiently complex (e.g. a call to vector * scalar which is inlined but not an intrinsic).
The ldobj of the localVar is not eliminated, because it involves an indirection, and therefore appears potentially unsafe to eliminate. However, when we transform the ldobj into a plain localVar during the Rationalizer, we need to correctly handle the case where it has no parent.

[tfs-changeset: 1505976]

9 years agoMerge pull request #1239 from sergey-raevskiy/proftoeeinterfaceimpl-doc-update
Jan Kotas [Mon, 27 Jul 2015 03:49:21 +0000 (20:49 -0700)]
Merge pull request #1239 from sergey-raevskiy/proftoeeinterfaceimpl-doc-update

Update link to documentation

9 years agoUse the cached Encoding instances in StreamReader
Justin Van Patten [Sat, 25 Jul 2015 23:31:08 +0000 (16:31 -0700)]
Use the cached Encoding instances in StreamReader

The cached Encoding instances can be used instead of always creating
new instances. The same constructor arguments are used.

9 years agoMerge pull request #1262 from apanda/master
Jan Kotas [Sat, 25 Jul 2015 04:24:46 +0000 (21:24 -0700)]
Merge pull request #1262 from apanda/master

Fix build to work with binutils v2.25.0 on Linux

9 years agoBuild fails when using binutils version 2.25.0
Aurojit Panda [Sun, 19 Jul 2015 07:27:23 +0000 (00:27 -0700)]
Build fails when using binutils version 2.25.0

On Linux, when using binutils version 2.25.0, XMM instructions (e.g., movdqa) requires specifying the size of the
operand (e.g., specifying xmmword ptr). With the current code it gives an error: invalid operand for instruction.

This commit changes movdqa occurances to fix the problem.

9 years agoMove 's_TimebaseInfo' intialization to PAL intialization and nanosecond resolution...
Sridhar Periyasamy [Sat, 25 Jul 2015 01:04:24 +0000 (18:04 -0700)]
Move 's_TimebaseInfo' intialization to PAL intialization and nanosecond resolution support for StopWatch in OSX.

OSX provides nanosecond timer capabilities. But the PAL was not using it and falling back to microsecond-level resolution.

9 years agoMerge pull request #1278 from eerhardt/master
Eric Erhardt [Fri, 24 Jul 2015 22:52:25 +0000 (17:52 -0500)]
Merge pull request #1278 from eerhardt/master

Adding TimeZoneInfo.Local and FindSystemTimeZoneById support on Linux.

9 years agoAdding TimeZoneInfo.Local and FindSystemTimeZoneById support on Linux.
Eric Erhardt [Thu, 23 Jul 2015 03:43:29 +0000 (22:43 -0500)]
Adding TimeZoneInfo.Local and FindSystemTimeZoneById support on Linux.

The local time zone is found by using the TZ environment variable or the "localtime" files on the system.  I needed to add some code that searched through the zoneinfo directory to get the correct Id of the local time zone, since this information is only stored in the file name, and not in the file itself.

FindSystemTimeZoneById uses the id as a file path to find the correct tzfile on the system.

Also added a few #ifs of dead code on Linux.

9 years agoReplace the usage of MACH monotonic function 'clock_get_time' with 'mach_absolute_tim...
Sridhar Periyasamy [Fri, 24 Jul 2015 21:20:46 +0000 (14:20 -0700)]
Replace the usage of MACH monotonic function 'clock_get_time' with 'mach_absolute_time' in GetTickCount64.

Monotonic clock function 'clock_get_time' was causing perf regression in 'Environment.TickCount'. So replacing it with 'mach_absolute_time' which gives considerable performance gains. Here are the perf numbers
Using 'clock_get_time' (without caching host ports) - Average time 2.86 microseconds.
Using 'clock_get_time' (with caching host ports) - Average time 0.82 microseconds.
Using 'gettimeofday' (original implementation) - Average time 0.05 microseconds.
Using 'mach_absolute_time' - Average time 0.04 microseconds.

9 years agoMerge pull request #1277 from erozenfeld/RODataAlignment
Jan Kotas [Fri, 24 Jul 2015 20:59:04 +0000 (13:59 -0700)]
Merge pull request #1277 from erozenfeld/RODataAlignment

Add an option to request 16 bytes alignment for read-only data.

9 years agoMerge pull request #1283 from dotnet-bot/from-tfs
Jan Kotas [Fri, 24 Jul 2015 20:58:53 +0000 (13:58 -0700)]
Merge pull request #1283 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoAdd an option to request 16 bytes alignment for read-only data.
Eugene Rozenfeld [Thu, 23 Jul 2015 00:14:42 +0000 (17:14 -0700)]
Add an option to request 16 bytes alignment for read-only data.

llilc jit needs this to support LLVM floating-point constant pools.

9 years agoMerge pull request #1210 from benpye/linux-arm
Jan Kotas [Fri, 24 Jul 2015 17:02:44 +0000 (10:02 -0700)]
Merge pull request #1210 from benpye/linux-arm

CoreCLR building on ARM

9 years agoFix FILECanonicalizePath test.
Ben Pye [Sat, 11 Jul 2015 22:09:40 +0000 (23:09 +0100)]
Fix FILECanonicalizePath test.

The string buffer in the test did not allow for the null terminating
byte.

9 years agoAfter calls to vprintf (and similar) call va_end
Ben Pye [Wed, 22 Jul 2015 21:15:07 +0000 (22:15 +0100)]
After calls to vprintf (and similar) call va_end

Add the arg remover so that the arguments handled by the native vprintf
functions are removed from the arg list.

9 years agoAdd ARM target for CoreCLR on Linux.
Ben Pye [Wed, 1 Jul 2015 14:10:09 +0000 (15:10 +0100)]
Add ARM target for CoreCLR on Linux.

c_runtime/vprintf/test1 is disabled as casting NULL to va_list is
against the C specification.

Fix SetFilePointer tests on 32 bit platforms.

Define _FILE_OFFSET_BITS=64 so that we have long file support on 32 bit
platforms.

Implement context capture/restore for ARM.

Link libgcc_s before libunwind on ARM so C++ exceptions work.

Translate armasm to gas syntax.

Specify Thumb, VFPv3, ARMv7 for the ARM target.

Add ARM configuration to mscorlib build

Implement GetLogicalProcessorCacheSizeFromOS in PAL.

Set UNWIND_CONTEXT_IS_UCONTEXT_T from configure check.

9 years agoMerge pull request #1280 from nguerrera/remove-corefx-crypto
Nick Guerrera [Thu, 23 Jul 2015 23:07:53 +0000 (16:07 -0700)]
Merge pull request #1280 from nguerrera/remove-corefx-crypto

Remove System.Security.Cryptography.Native from coreclr build

9 years agoUpdate ETW allocation sampling shutdown method contract.
Brian Robbins [Wed, 22 Jul 2015 22:55:10 +0000 (15:55 -0700)]
Update ETW allocation sampling shutdown method contract.

[tfs-changeset: 1504772]

9 years agoMerge pull request #1274 from dotnet-bot/from-tfs
Jan Kotas [Wed, 22 Jul 2015 21:08:47 +0000 (14:08 -0700)]
Merge pull request #1274 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoFix recursive assert in utilcode/debug.cpp when VM code, etc. hits an assert.
Mike McLaughlin [Wed, 22 Jul 2015 21:01:57 +0000 (14:01 -0700)]
Fix recursive assert in utilcode/debug.cpp when VM code, etc. hits an assert.

The fix was to rearrange the code so the assert isn't necessary and removed it. Fixes TFS bug 1199569.

[tfs-changeset: 1504713]

9 years agoMerge pull request #1242 from david-mitchell/update-osx-instructions
Aditya Mandaleeka [Wed, 22 Jul 2015 20:37:50 +0000 (13:37 -0700)]
Merge pull request #1242 from david-mitchell/update-osx-instructions

Update OS X build instructions.

9 years agoFix Mach host port leaks in OSX
Sridhar Periyasamy [Wed, 22 Jul 2015 19:49:25 +0000 (12:49 -0700)]
Fix Mach host port leaks in OSX

- Add return value check for "host_get_clock_service".
- Fix host port leaks in GetTickCount64 and GlobalMemoryStatusEx.

9 years agoRemove System.Security.Cryptography.Native from coreclr build
Nick Guerrera [Wed, 22 Jul 2015 19:20:54 +0000 (12:20 -0700)]
Remove System.Security.Cryptography.Native from coreclr build

This library now builds in corefx. The coreclr/src/corefx folder
is left behind with an empty project list to leave room for
Sytem.Globalization.Native which will need to stay in coreclr
due to being depended upon by mscorlib.

9 years agoRemove the SecuritySafeCritical from the ParseTargetFrameworkName.
Alex Ghiondea [Wed, 22 Jul 2015 17:19:57 +0000 (10:19 -0700)]
Remove the SecuritySafeCritical from the ParseTargetFrameworkName.

This attribute was added as part of the initial implementation and is no longer needed in the current version. What this attribute does it allows us to call SecurityCritical methods from our code. However, we no longer have the need to do that. Additionally, having this attribute prevents libraries that are explicity SecurityTransparent from compiling this code in their assembly (SecAnnotate would complain).

[tfs-changeset: 1504639]

9 years agoFix to get the correct value for Environment.TickCount in OSX
Sridhar Periyasamy [Wed, 22 Jul 2015 01:48:36 +0000 (18:48 -0700)]
Fix to get the correct value for Environment.TickCount in OSX

On linux monotonic clock API clock_gettime is available. But on OSX the PAL implementation falls back to gettimeofday. This always retured the time elapsed since Unix Epoch (1970/01/01). I fixed it by using the mach API clock_get_time on OSX to get the time elapsed since system start.

Fixes #2441
https://github.com/dotnet/corefx/issues/2441

9 years agoMerge pull request #1263 from adityamandaleeka/contextAlignment
Aditya Mandaleeka [Tue, 21 Jul 2015 17:59:08 +0000 (10:59 -0700)]
Merge pull request #1263 from adityamandaleeka/contextAlignment

Fix alignment issue when converting to/from native context.

9 years agoMerge pull request #1266 from mikem8361/debugdoc
Mike McLaughlin [Tue, 21 Jul 2015 07:24:57 +0000 (00:24 -0700)]
Merge pull request #1266 from mikem8361/debugdoc

Add directions for debugging CoreClr on Linux

9 years agoAdd directions for debugging CoreClr on Linux.
Mike McLaughlin [Mon, 20 Jul 2015 22:57:23 +0000 (15:57 -0700)]
Add directions for debugging CoreClr on Linux.

9 years agoFix alignment issue when converting to/from native context.
Aditya Mandaleeka [Mon, 20 Jul 2015 00:24:17 +0000 (17:24 -0700)]
Fix alignment issue when converting to/from native context.

When building in release mode, the code in CONTEXTFromNativeContext and
CONTEXTToNativeContext was using the movaps instruction to move the float
and XMM register values to/from the native context. This is because the
macros FPREG_St and FPREG_Xmm were casting unaligned pointers to an
aligned struct type (M128A). This change adds a type M128U which is the
same as M128A but without the alignment guarantee. Using this type in
those macros prevents the compiler from trying to use movaps on
potentially unaligned memory. This bug manifested when trying to call
these functions with native contexts that were passed into a real-time
signal handler.

9 years agoMerge pull request #1247 from mmitche/skip-tests-option
Matt Mitchell [Mon, 20 Jul 2015 16:21:58 +0000 (09:21 -0700)]
Merge pull request #1247 from mmitche/skip-tests-option

Add option to skip test build in build.cmd

9 years agoAdd option to skip test build in build.cmd
Matt Mitchell [Thu, 16 Jul 2015 14:59:05 +0000 (07:59 -0700)]
Add option to skip test build in build.cmd

Add help information regarding skiptestbuild option

9 years agoMerge pull request #1255 from benpye/coreconsole-crash-fix
Jan Kotas [Mon, 20 Jul 2015 13:54:29 +0000 (06:54 -0700)]
Merge pull request #1255 from benpye/coreconsole-crash-fix

Allow coreconsole to be called without extension

9 years agoAllow coreconsole to be called without extension.
Ben Pye [Fri, 17 Jul 2015 07:48:14 +0000 (08:48 +0100)]
Allow coreconsole to be called without extension.

9 years agoMerge pull request #1199 from judemelancon/patch-1
Jan Kotas [Sun, 19 Jul 2015 14:46:25 +0000 (07:46 -0700)]
Merge pull request #1199 from judemelancon/patch-1

Remove incorrectly duplicated comment

9 years agoMerge pull request #1227 from mikedn/shrdis
Jan Kotas [Sun, 19 Jul 2015 14:30:49 +0000 (07:30 -0700)]
Merge pull request #1227 from mikedn/shrdis

Fix SHR operand diassembly in RyuJIT

9 years agoMerge pull request #1250 from david-mitchell/fix-locals
Sergiy Kuryata [Sun, 19 Jul 2015 06:26:16 +0000 (23:26 -0700)]
Merge pull request #1250 from david-mitchell/fix-locals

Declare locals in correct order.

9 years agoMerge pull request #1245 from janvorli/hosting-api-extension
Jan Vorlicek [Fri, 17 Jul 2015 10:07:58 +0000 (12:07 +0200)]
Merge pull request #1245 from janvorli/hosting-api-extension

Extend the Unix hosting API

9 years agoMerge pull request #1251 from dotnet-bot/from-tfs
Jan Kotas [Fri, 17 Jul 2015 06:11:30 +0000 (23:11 -0700)]
Merge pull request #1251 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #1252 from ViIvanov/fix/assert-in-lazy-value/issue-1186
Jan Kotas [Fri, 17 Jul 2015 06:10:57 +0000 (23:10 -0700)]
Merge pull request #1252 from ViIvanov/fix/assert-in-lazy-value/issue-1186

Fix #1186: wrong Contract.Assert in Lazy<>::Value getter.

9 years agoMerge pull request #1248 from stephentoub/dllimport_prefix_suffix
Stephen Toub [Fri, 17 Jul 2015 01:26:01 +0000 (21:26 -0400)]
Merge pull request #1248 from stephentoub/dllimport_prefix_suffix

Update DllImport name logic to support lack of "lib" prefix

9 years agoUpdate DllImport logic to support lack of "lib" prefix
stephentoub [Thu, 16 Jul 2015 13:10:56 +0000 (09:10 -0400)]
Update DllImport logic to support lack of "lib" prefix

Today the runtime supports automatically appending an appropriate
suffix (e.g. ".so", ".dylib", etc.) for the library name provided
to DllImport.  This commit adds support for also prepending the
standard library prefix "lib".

9 years agoFix #1186: incorrect Contract.Assert in Lazy<>::Value getter.
Viacheslav Ivanov [Thu, 16 Jul 2015 22:18:02 +0000 (01:18 +0300)]
Fix #1186: incorrect Contract.Assert in Lazy<>::Value getter.

9 years agoExtend the Unix hosting API
Jan Vorlicek [Wed, 15 Jul 2015 21:08:09 +0000 (23:08 +0200)]
Extend the Unix hosting API

This change modifies the Unix hosting API so that the hosting app can create
as many managed delegates as it needs and execute them as many times it wants.
The new API contains separate functions to initialize and shutdown CoreCLR
and a function to create a delegate.
The current ExecuteAssembly function behavior stays unmodified for now to
ensure that dnx that uses that API and that pulls the binary libcoreclr
is not broken.
After the dnx is updated to use the new coreclr_create_delegate API, I'll remove
the ExecuteAssembly.

Also done:
1) Added support for comments and skipping empty lines in the mscorwks_unixexports.src.
2) Restructured the mscorwks_unixexports.src
3) Added coreclr_execute_assembly to the unixinterface.cpp / exports
4) Modified coreruncommon.cpp to use the new hosting API

9 years agoPort CS#1495515 to ProjectK branch: Add a JIT-EE interface method for use by the...
Bruce Forstall [Thu, 16 Jul 2015 16:36:40 +0000 (09:36 -0700)]
Port CS#1495515 to ProjectK branch: Add a JIT-EE interface method for use by the System V struct passing ABI change

NOTE: This is a breaking JIT-EE interface change, and requires a matching rebuild of JIT and VM.

[tfs-changeset: 1502218]

9 years agoDeclare locals in correct order.
David Mitchell [Thu, 16 Jul 2015 15:46:48 +0000 (08:46 -0700)]
Declare locals in correct order.

The order of declaration doesn't matter when the call to CreateInstance
succeeds because the call to unload the DLL is suppressed. However, if
CreateInstance fails, we do unload the DLL, and this needs to happen after the
call to Release on the class factory.

9 years agoMerge pull request #1246 from stephentoub/fix_unix_etw
Stephen Toub [Thu, 16 Jul 2015 02:50:22 +0000 (22:50 -0400)]
Merge pull request #1246 from stephentoub/fix_unix_etw

Ensure FEATURE_MANAGED_ETW isn't set for TargetsUnix

9 years agoEnsure FEATURE_MANAGED_ETW isn't set for TargetsUnix
stephentoub [Thu, 16 Jul 2015 02:14:57 +0000 (22:14 -0400)]
Ensure FEATURE_MANAGED_ETW isn't set for TargetsUnix

Updated buildtools were brought in to coreclr, and the props file was
still using the $(OS) variable to control whether FEATURE_MANAGED_ETW was
set, but whereas that used to be used to mean what platform we were
targeting, updated buildtools use it to mean what platform we're building
on, with $(OSGroup) meaning what is the target platform.

9 years agoMerge pull request #1243 from dotnet-bot/from-tfs
Matt Ellis [Wed, 15 Jul 2015 23:27:53 +0000 (16:27 -0700)]
Merge pull request #1243 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoFix cross platform build break
Matt Ellis [Wed, 15 Jul 2015 22:56:36 +0000 (15:56 -0700)]
Fix cross platform build break

impAssignTempGen is used outside the translation unit and should not
be marked as inline.  Doing so causes link errors in release cross
platform builds.

9 years agoMerge pull request #1238 from dotnet-bot/from-tfs
Matt Ellis [Wed, 15 Jul 2015 18:37:38 +0000 (11:37 -0700)]
Merge pull request #1238 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoUpdate OS X build instructions.
David Mitchell [Wed, 15 Jul 2015 17:16:59 +0000 (10:16 -0700)]
Update OS X build instructions.

CoreFX can now be built without Windows.

9 years agoFix definition/initalization order build break
Matt Ellis [Wed, 15 Jul 2015 03:25:02 +0000 (20:25 -0700)]
Fix definition/initalization order build break

Clang is more strict about definition and intialization orders
matching than MSVC.

9 years agoUpdate documentation links
sergey-raevskiy [Tue, 14 Jul 2015 21:52:55 +0000 (00:52 +0300)]
Update documentation links

9 years agoFix to Unnecessary use of JIT_Stelem_Ref helper call when storing null in arrays.
Venkata Sivaramakrishna Ramadugu [Tue, 14 Jul 2015 23:15:18 +0000 (16:15 -0700)]
Fix to Unnecessary use of JIT_Stelem_Ref helper call when storing null in arrays.

Repro program:
     static T Dequeue<T>(T[] array, int index)
     {
         var head = array[index];
         array[index] = default(T);
         return head;
     }

     When Dequeue is instantiated over a ref type, the second line logically expands to

     object temp;
     initobj(&temp, null, 8)
     array[index] = temp

     The array store results in call to CORINFO_HELP_ARRADDR_ST helper call even though we are storing a null and a write barrier is not needed.

Fix:
     After the args of helper call are morphed, (i.e. after constant propagation is done), we can check to see whether the 3rd arg (value being assigned) is null and if so morph that into an array-indexed assignment so that a proper null and bounds check still take place.

Fix #1160

[tfs-changeset: 1501294]