platform/upstream/dotnet/runtime.git
8 years agoHandle mscorwks_unixexports.src with better regexp operator for compatibility
Geunsik Lim [Mon, 4 Apr 2016 10:35:06 +0000 (19:35 +0900)]
Handle mscorwks_unixexports.src with better regexp operator for compatibility

ver3:
According to the gawk manual, The '\S' operator (as shorthand for '[^[:space:]]')
matches any character that is not whitespace. However, '[ \t]' is better than
'\S' for Mac OSX.
(source - https://www.gnu.org/software/gawk/manual/html_node/GNU-Regexp-Operators.html )

ver2:
With ver1, the build-break is caused by different awk versions (by @jkotas).
(Revert PR - https://github.com/dotnet/coreclr/pull/4005)
To resolve the limitation of the ver1, @janvorli proposed that the
\S expression is better than [:space:] for the most compatible solution.

There are a lot of different AWK software (e.g. awk, gawk, mawk, nawk, etc)
and versions among the popular Linux distributions. This patch is a simply
way to handle 'mscorwks_unixexports.src' file with \S operator for more
compatibility amon the different awk versions.

ver1:
It's must be modified by gawk implementation that check it exactly
as a plain character (e.g., space, alnum) within the bracket expression
at ./coreclr/generateversionscript.awk. The [[:space:]] is more appropriate than
the [:space:]]. (PR - https://github.com/dotnet/coreclr/pull/3943)

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/6d7701c198590f8d727f038e1ba40b1e57c95ef6

8 years agoMerge pull request dotnet/coreclr#4021 from dotnet-bot/from-tfs
Jan Kotas [Thu, 31 Mar 2016 07:44:55 +0000 (00:44 -0700)]
Merge pull request dotnet/coreclr#4021 from dotnet-bot/from-tfs

Merge changes from TFS

Commit migrated from https://github.com/dotnet/coreclr/commit/d3502c29c511292d0c6046b1aafe87295d2372d9

8 years agoMerge pull request dotnet/coreclr#4008 from leemgs/upstream-typo-build-mode
Jan Kotas [Thu, 31 Mar 2016 06:29:23 +0000 (23:29 -0700)]
Merge pull request dotnet/coreclr#4008 from leemgs/upstream-typo-build-mode

Improve description of build type spelling for consistency

Commit migrated from https://github.com/dotnet/coreclr/commit/0cce34c8976fd887bee0cf877c36b9abfa555635

8 years agoMerge pull request dotnet/coreclr#4020 from JohnChen0/master
Jan Kotas [Thu, 31 Mar 2016 06:28:38 +0000 (23:28 -0700)]
Merge pull request dotnet/coreclr#4020 from JohnChen0/master

Fix CrossGen documentation error

Commit migrated from https://github.com/dotnet/coreclr/commit/255c421c4a21e2f603c49d8233bfb77c7bb1cbdc

8 years agoMerge pull request dotnet/coreclr#3944 from leemgs/upstream-cross-arm-stripping-symbols
Jan Kotas [Thu, 31 Mar 2016 06:25:21 +0000 (23:25 -0700)]
Merge pull request dotnet/coreclr#3944 from leemgs/upstream-cross-arm-stripping-symbols

[Linux/ARM32] objcopy: Support cross-build  for stripping symbols.

Commit migrated from https://github.com/dotnet/coreclr/commit/2d67d180baf9b8a5cbcb10dd49dd02e38bd684d8

8 years agoMerge pull request dotnet/coreclr#3989 from bbowyersmyth/StringEquals
Jan Kotas [Thu, 31 Mar 2016 06:24:29 +0000 (23:24 -0700)]
Merge pull request dotnet/coreclr#3989 from bbowyersmyth/StringEquals

Port String.Equals from CoreRT

Commit migrated from https://github.com/dotnet/coreclr/commit/7b8fc40b13a1000a8b8617ec8be7ec0456a37573

8 years agoMerge pull request dotnet/coreclr#3981 from manu-silicon/context
Jan Kotas [Thu, 31 Mar 2016 06:22:44 +0000 (23:22 -0700)]
Merge pull request dotnet/coreclr#3981 from manu-silicon/context

Fix RtlRestoreContext

Commit migrated from https://github.com/dotnet/coreclr/commit/3be49cd4b6f25ad315ad0c48e53dd46c4e9f39ba

8 years agoFix CrossGen documentation error
John Chen [Thu, 31 Mar 2016 05:35:03 +0000 (22:35 -0700)]
Fix CrossGen documentation error

Commit migrated from https://github.com/dotnet/coreclr/commit/79d8f0478049271c370c2b2feb99df4b466717d8

8 years agoFix RtlRestoreContext
Manu [Wed, 30 Mar 2016 01:56:40 +0000 (10:56 +0900)]
Fix RtlRestoreContext

Due to macro expansion, the previous computed offsets to restore Lr and Pc
were incorrect, causing a memory corruption (see Issue dotnet/coreclr#3856 for C# code
reproducing that problem).
Made assembly more obvious when just restoring Sp, Lr and Pc.

Commit migrated from https://github.com/dotnet/coreclr/commit/8b37a203524b88c9b003e9779822fb8fdf77e119

8 years agoMerge pull request dotnet/coreclr#4016 from dotnet/revert-3960-check_runtime_to_pull_...
Jan Kotas [Thu, 31 Mar 2016 04:31:02 +0000 (21:31 -0700)]
Merge pull request dotnet/coreclr#4016 from dotnet/revert-3960-check_runtime_to_pull_coredistools

Revert "Add architeture information to a script downloading coredistools"

Commit migrated from https://github.com/dotnet/coreclr/commit/99329c67db66a4def852a681c240569553026e19

8 years agoFix R2R fixups for delegate ctors
Jan Kotas [Thu, 31 Mar 2016 03:49:26 +0000 (20:49 -0700)]
Fix R2R fixups for delegate ctors

- Add getReadyToRunDelegateHelper to JIT-EE interface. This method has an extra argument describing the type of the delegate. This argument is required to emit correct fixups.
- Call the new method in both JIT and JIT32
- Add the new method to superpmi
- Bump minor version of R2R file format
- Add regression test for dotnet/coreclr#3975 to R2R unit test

Fixes https://github.com/dotnet/coreclr/issues/3975

[tfs-changeset: 1591698]

Commit migrated from https://github.com/dotnet/coreclr/commit/c4378e7f0773577e9924ff4ebad0cc3af43fb3a8

8 years agoMerge pull request dotnet/coreclr#4017 from mikem8361/issue3987
Mike McLaughlin [Thu, 31 Mar 2016 03:34:15 +0000 (20:34 -0700)]
Merge pull request dotnet/coreclr#4017 from mikem8361/issue3987

Fixed issue dotnet/coreclr#3987 "Debugger fails to stop on entry due to stack walk failure"

Commit migrated from https://github.com/dotnet/coreclr/commit/184a61dd82d7da989d630dcdbcecdb1b9c3e316e

8 years agoFixed issue dotnet/coreclr#3987 "Debugger fails to stop on entry due to stack walk...
Mike McLaughlin [Thu, 31 Mar 2016 03:30:13 +0000 (20:30 -0700)]
Fixed issue dotnet/coreclr#3987 "Debugger fails to stop on entry due to stack walk failure"

By initializing m_rgHijackFunction to NULL.

Commit migrated from https://github.com/dotnet/coreclr/commit/3cd2f88c398cfba986202a9766047b8fc231602d

8 years agoMerge pull request dotnet/coreclr#3982 from mikem8361/readmemoryav2
Mike McLaughlin [Thu, 31 Mar 2016 03:24:31 +0000 (20:24 -0700)]
Merge pull request dotnet/coreclr#3982 from mikem8361/readmemoryav2

Fix ReadMemory AV.

Commit migrated from https://github.com/dotnet/coreclr/commit/1bc24d14dce4876197492211f4989b656f08aedb

8 years agoRevert "Add architeture information to a script downloading coredistools"
Jan Kotas [Thu, 31 Mar 2016 03:20:42 +0000 (20:20 -0700)]
Revert "Add architeture information to a script downloading coredistools"

Commit migrated from https://github.com/dotnet/coreclr/commit/72c2da31f0f4136daa5be81ef24e1b7289b781fb

8 years agoMerge pull request dotnet/coreclr#4002 from kyulee1/fixcmd
Kyungwoo Lee [Thu, 31 Mar 2016 03:06:01 +0000 (20:06 -0700)]
Merge pull request dotnet/coreclr#4002 from kyulee1/fixcmd

ARM64: Running cmd instead of exe

Commit migrated from https://github.com/dotnet/coreclr/commit/7b5202380fd78006592564d954f445c63495fb97

8 years agoGetting SOS to work on ARm64:
Rama Krishnan Raghupathy [Thu, 31 Mar 2016 03:00:57 +0000 (20:00 -0700)]
Getting SOS to work on ARm64:

     This mainly involved DACizing the VM code.
      A bulk edit for changing RUNTIME_FUNCTION to T_RUNTIME_FUNCTION

[tfs-changeset: 1591667]

Commit migrated from https://github.com/dotnet/coreclr/commit/6a2e3b34c3c9ac32456d38567b9f44ab6aea2f63

8 years agoARM64: Running cmd instead of exe
Kyungwoo Lee [Wed, 30 Mar 2016 22:02:21 +0000 (15:02 -0700)]
ARM64: Running cmd instead of exe

Our test framework (smarty) directly runs test executable on corerun.exe.
But some of tests expect arguments via environment variable specified in .cmd.
The fix is to change the test list file to run .cmd. So the expected pass
value is also updated to 0 instead of 100. Now we don't need to pass /host
that specifies corerun.exe.
3 additional tests are now passed:
 InterlockedAddLongWithSubtract/CompareExchangeTString/Polyrec

Commit migrated from https://github.com/dotnet/coreclr/commit/cc5518a491dd31a308b205bc52de31e834b47e72

8 years agoChange spelling of build type for consistenty
Geunsik Lim [Wed, 30 Mar 2016 22:47:42 +0000 (07:47 +0900)]
Change spelling of build type for consistenty

This is trivial patch.
Let's display a help manual with lower case for better consistency
when the developers run "./build.sh --help".

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/91aef995434cbe1646b2661cc4111ecfc1e6b487

8 years agoMerge pull request dotnet/coreclr#4003 from briansull/update-tests-lst
Brian Sullivan [Wed, 30 Mar 2016 21:54:40 +0000 (14:54 -0700)]
Merge pull request dotnet/coreclr#4003 from briansull/update-tests-lst

Update with 10 additional passing tests, and two moved to unstable

Commit migrated from https://github.com/dotnet/coreclr/commit/531de762ff569f52049e35cb69032b9c3da22238

8 years agoMerge pull request dotnet/coreclr#4005 from dotnet/revert-3943-upstream-gawk-char...
Jan Kotas [Wed, 30 Mar 2016 21:34:59 +0000 (14:34 -0700)]
Merge pull request dotnet/coreclr#4005 from dotnet/revert-3943-upstream-gawk-char-class

Revert "Fix bracket expression matches a character at gawk"

Commit migrated from https://github.com/dotnet/coreclr/commit/ef38b9d88463c427896457f7f03b3c2976c9b307

8 years agoRevert "Fix bracket expression matches a character at gawk"
Jan Kotas [Wed, 30 Mar 2016 21:32:52 +0000 (14:32 -0700)]
Revert "Fix bracket expression matches a character at gawk"

Commit migrated from https://github.com/dotnet/coreclr/commit/e65dcb5321a86f0d4e1cee92e2f36f8c84013904

8 years agoUpdate with 10 additional pasing tests, and two moved to unstable
Brian Sullivan [Wed, 30 Mar 2016 18:31:00 +0000 (11:31 -0700)]
Update with 10 additional pasing tests, and two moved to unstable

Commit migrated from https://github.com/dotnet/coreclr/commit/575eecb4ae0415f2be2196a0435c79ff6365eff9

8 years agoMerge pull request dotnet/coreclr#3955 from davmason/master
David Mason [Wed, 30 Mar 2016 20:15:29 +0000 (13:15 -0700)]
Merge pull request dotnet/coreclr#3955 from davmason/master

Fixing tracelogging on linux

Commit migrated from https://github.com/dotnet/coreclr/commit/d47a3984e4f3277337c710579407d3a5e1d94714

8 years agoMerge pull request dotnet/coreclr#3996 from kyulee1/fixconv
Kyungwoo Lee [Wed, 30 Mar 2016 18:01:52 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#3996 from kyulee1/fixconv

ARM64: Fix conversion double to unsigned int

Commit migrated from https://github.com/dotnet/coreclr/commit/831ce3c7db6b532420dcb778918a7554a6fc2965

8 years agoARM64: Fix conversion double to unsigned int
Kyungwoo Lee [Wed, 30 Mar 2016 16:16:26 +0000 (09:16 -0700)]
ARM64: Fix conversion double to unsigned int

For ARM/ARM64, converting negative double to unsigned int is 0, which aligns with all native compilers.
I also removed the part of tests that depends on architecture specific values.
Since ARM64 tests were prepopulated, I just updated the tag so that we can update the tests later.

Commit migrated from https://github.com/dotnet/coreclr/commit/bbfdcebb6bed3ed646bb5e17028166bcc9404653

8 years agoMerge pull request dotnet/coreclr#3960 from sejongoh/check_runtime_to_pull_coredistools
Sejong Oh [Wed, 30 Mar 2016 17:33:31 +0000 (10:33 -0700)]
Merge pull request dotnet/coreclr#3960 from sejongoh/check_runtime_to_pull_coredistools

Add architeture information to a script downloading coredistools

Commit migrated from https://github.com/dotnet/coreclr/commit/debff19365d06a66fc3cd50342ded48518a25f01

8 years agoMerge pull request dotnet/coreclr#3983 from svick/getresourcestring-culture
Jan Kotas [Wed, 30 Mar 2016 17:26:28 +0000 (10:26 -0700)]
Merge pull request dotnet/coreclr#3983 from svick/getresourcestring-culture

Remove unused CultureInfo from GetResourceString

Commit migrated from https://github.com/dotnet/coreclr/commit/918bb2e8bfb46d44291507d4b0d017f8aba5b0d8

8 years agoFixing contracts violations, and adding missing contracts to some APIs.
Fadi Hanna [Wed, 30 Mar 2016 16:27:04 +0000 (09:27 -0700)]
Fixing contracts violations, and adding missing contracts to some APIs.
Changing native format reader failure mode to fail fast instead of throwing and exception.

[tfs-changeset: 1591477]

Commit migrated from https://github.com/dotnet/coreclr/commit/a62cb372fb7edf1cf7d7b783bfa653f58dc68a7a

8 years agoMerge pull request dotnet/coreclr#3994 from dagood/upgrade-cli
Davis Goodin [Wed, 30 Mar 2016 16:10:54 +0000 (11:10 -0500)]
Merge pull request dotnet/coreclr#3994 from dagood/upgrade-cli

Apply dotnet cli upgrade also to tests\dir.props

Commit migrated from https://github.com/dotnet/coreclr/commit/72f6c4e1d552474f80b1814288eeb79e09e5760f

8 years agoApply dotnet cli upgrade also to tests\dir.props.
Davis Goodin [Wed, 30 Mar 2016 16:07:30 +0000 (11:07 -0500)]
Apply dotnet cli upgrade also to tests\dir.props.

Commit migrated from https://github.com/dotnet/coreclr/commit/f9fc3284d2c864aff5b685548470813359a07d02

8 years agoMerge pull request dotnet/coreclr#3993 from dagood/upgrade-cli
Stephen Toub [Wed, 30 Mar 2016 16:02:24 +0000 (12:02 -0400)]
Merge pull request dotnet/coreclr#3993 from dagood/upgrade-cli

Upgrade dotnet cli version

Commit migrated from https://github.com/dotnet/coreclr/commit/a4bb869f1091f2514f5cd705a5e3548d0d28b62a

8 years agoUpgrade dotnet cli version.
Davis Goodin [Wed, 30 Mar 2016 15:03:53 +0000 (10:03 -0500)]
Upgrade dotnet cli version.

Commit migrated from https://github.com/dotnet/coreclr/commit/e2aa428f40d85b84f7de4a13124dcd96ec600a1c

8 years agoMerge pull request dotnet/coreclr#3943 from leemgs/upstream-gawk-char-class
Jan Kotas [Wed, 30 Mar 2016 07:10:26 +0000 (00:10 -0700)]
Merge pull request dotnet/coreclr#3943 from leemgs/upstream-gawk-char-class

Fix bracket expression matches a character at gawk

Commit migrated from https://github.com/dotnet/coreclr/commit/817fec1799d13c089b14ed168f8c691b00e4d5e9

8 years agoMerge pull request dotnet/coreclr#3984 from svick/patch-1
Jan Kotas [Wed, 30 Mar 2016 07:08:35 +0000 (00:08 -0700)]
Merge pull request dotnet/coreclr#3984 from svick/patch-1

Removed obsolete comment from Environment.GetResourceString

Commit migrated from https://github.com/dotnet/coreclr/commit/a88f97abc317021ac742a6409791b26fc98068c7

8 years agoPort String.Equals from CoreRT
Bruce Bowyer-Smyth [Wed, 30 Mar 2016 06:58:51 +0000 (16:58 +1000)]
Port String.Equals from CoreRT

Commit migrated from https://github.com/dotnet/coreclr/commit/c08d9b60badc7532d5ff408045976224157f35a9

8 years agoMerge pull request dotnet/coreclr#3985 from myungjoo/trivialfix/macro1
Jan Kotas [Wed, 30 Mar 2016 03:27:37 +0000 (20:27 -0700)]
Merge pull request dotnet/coreclr#3985 from myungjoo/trivialfix/macro1

Trivial fix: dangerous macro usage

Commit migrated from https://github.com/dotnet/coreclr/commit/5f5a98309136ec5693a87f5d5cb77c8f98012f90

8 years agoTrivial fix: dangerous macro usage
MyungJoo Ham [Wed, 30 Mar 2016 02:43:48 +0000 (11:43 +0900)]
Trivial fix: dangerous macro usage

Add parenthesis to make the macro safe.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/a7405648da7544d0bd1a6728986ced8b0f189638

8 years agoRemoved obsolete comment from Environment.GetResourceString
Petr Onderka [Wed, 30 Mar 2016 02:24:23 +0000 (04:24 +0200)]
Removed obsolete comment from Environment.GetResourceString

Fixes dotnet/coreclr#3979

Commit migrated from https://github.com/dotnet/coreclr/commit/0e3c5de2f004916e6cb640fe83e2781a6029500d

8 years agoremove unused CultureInfo from GetResourceString
Petr Onderka [Wed, 30 Mar 2016 02:08:50 +0000 (04:08 +0200)]
remove unused CultureInfo from GetResourceString

Commit migrated from https://github.com/dotnet/coreclr/commit/6408f73fed3864806f921f0175928efb1dfccab8

8 years agoFix ReadMemory AV.
Mike McLaughlin [Wed, 30 Mar 2016 01:06:25 +0000 (18:06 -0700)]
Fix ReadMemory AV.

Use simple probing to validate read/write memory with a try/catch and explicit h/w exception holder.

Put probing in separate noinline and optnone function for optimized builds.

Fix assert in exception code mapping in context.cpp by handling SIGSEGV subcode SI_KERNEL.

Commit migrated from https://github.com/dotnet/coreclr/commit/4a268f7141f7f2528a8f1c5437837046bd21664c

8 years agoMerge pull request dotnet/coreclr#3974 from briansull/update-tests-lst
Brian Sullivan [Wed, 30 Mar 2016 00:31:30 +0000 (17:31 -0700)]
Merge pull request dotnet/coreclr#3974 from briansull/update-tests-lst

Disabled 8 failing tests

Commit migrated from https://github.com/dotnet/coreclr/commit/f0638c5b6aecec87b3a8aac8c808152c86febe9d

8 years agoDisabled 8 failing tests
Brian Sullivan [Tue, 29 Mar 2016 21:50:53 +0000 (14:50 -0700)]
Disabled 8 failing tests

Issues filed: 3968, 3969, 3970, 3971 and 3973

Commit migrated from https://github.com/dotnet/coreclr/commit/176b2d6f5004b39a5ffe04ce99619c365122ef2b

8 years agoMerge pull request dotnet/coreclr#3966 from kyulee1/fixframe2
Kyungwoo Lee [Tue, 29 Mar 2016 21:14:42 +0000 (14:14 -0700)]
Merge pull request dotnet/coreclr#3966 from kyulee1/fixframe2

ARM64: Fix Frame with compLocallocUsed

Commit migrated from https://github.com/dotnet/coreclr/commit/e9426290b6525747a0cde96b7a4ebe89ec391dd0

8 years agoARM64: Fix Frame with compLocallocUsed
Kyungwoo Lee [Fri, 25 Mar 2016 18:19:25 +0000 (11:19 -0700)]
ARM64: Fix Frame with compLocallocUsed

When compLocallocUsed is true, stack pointer is changed during the run.
So, JIT should restore stack pointer from frame pointer in the epilog.
Previously, we simpliy copied fp to sp, which is only valid for frameType
= 1.
This implements a right restoring process for other frameTypes (2 and 3).
For frameType = 3, I also simplified creating prolog sequence to support
this feature consistently.

Commit migrated from https://github.com/dotnet/coreclr/commit/68c70fa6f7207ee4acfd7f6cf511e91d46bdcf53

8 years agoMerge pull request dotnet/coreclr#3963 from adityamandaleeka/statFileParse
Aditya Mandaleeka [Tue, 29 Mar 2016 18:59:33 +0000 (11:59 -0700)]
Merge pull request dotnet/coreclr#3963 from adityamandaleeka/statFileParse

Fix stat file parsing to handle executable names with spaces

Commit migrated from https://github.com/dotnet/coreclr/commit/ef8af95b971a79fa0714fbeb39653a7581b4373f

8 years agoMerge pull request dotnet/coreclr#3959 from briansull/safe-refactor
Brian Sullivan [Tue, 29 Mar 2016 18:07:42 +0000 (11:07 -0700)]
Merge pull request dotnet/coreclr#3959 from briansull/safe-refactor

Safe Refactor - Remove conditional definition and references to lvIsMultiRegArgOrRet

Commit migrated from https://github.com/dotnet/coreclr/commit/2a55928860a74bad0dc1947631e5657d64ebbf35

8 years agoMerge pull request dotnet/coreclr#2182 from justinvp/keyedcollection_enumallocs
Stephen Toub [Tue, 29 Mar 2016 16:38:00 +0000 (12:38 -0400)]
Merge pull request dotnet/coreclr#2182 from justinvp/keyedcollection_enumallocs

Avoid enumerator allocations inside KeyedCollection<TKey, TItem>

Commit migrated from https://github.com/dotnet/coreclr/commit/04569c541137efcdb84848555cbf038074a955d5

8 years agoMerge pull request dotnet/coreclr#2178 from justinvp/keyedcollection_nullchecks
Stephen Toub [Tue, 29 Mar 2016 14:25:56 +0000 (10:25 -0400)]
Merge pull request dotnet/coreclr#2178 from justinvp/keyedcollection_nullchecks

Remove unnecessary null checks from KeyedCollection<TKey,TItem>

Commit migrated from https://github.com/dotnet/coreclr/commit/587cbb77129c31e93c5b5ccbe03bb6c41dc5821c

8 years agoFix stat file parsing to handle executable names with spaces.
Aditya Mandaleeka [Tue, 29 Mar 2016 03:22:04 +0000 (20:22 -0700)]
Fix stat file parsing to handle executable names with spaces.

Commit migrated from https://github.com/dotnet/coreclr/commit/b66da08912d8b43c39f743e5a65515d3e74ec432

8 years agoAdd architeture information to a script downloading coredistools
Sejong Oh [Mon, 28 Mar 2016 20:41:42 +0000 (13:41 -0700)]
Add architeture information to a script downloading coredistools

Commit migrated from https://github.com/dotnet/coreclr/commit/b7f5398362e05e2ce6921af781ea4af7f3f75837

8 years agoSafe Refactor - Remove conditional definition and references to lvIsMultiRegArgOrRet
Brian Sullivan [Fri, 25 Mar 2016 22:39:37 +0000 (15:39 -0700)]
Safe Refactor - Remove conditional definition and references to lvIsMultiRegArgOrRet

Commit migrated from https://github.com/dotnet/coreclr/commit/344dba53965e61a971eea5cfcb3e8d4e5c688149

8 years agoMerge pull request dotnet/coreclr#3954 from leemgs/toolchain-name-unifyin-arm64
Jan Kotas [Mon, 28 Mar 2016 14:36:16 +0000 (07:36 -0700)]
Merge pull request dotnet/coreclr#3954 from leemgs/toolchain-name-unifyin-arm64

[Linux/ARM32/64] Unifying the redundant usages of cross-toolchain

Commit migrated from https://github.com/dotnet/coreclr/commit/e25eb2cc4e9fd8ea56364aad99c3be9f16f671d8

8 years agoobjcopy: Support cross-build for stripping symbols
Geunsik Lim [Sat, 26 Mar 2016 12:39:14 +0000 (21:39 +0900)]
objcopy: Support cross-build for stripping symbols

Currently, the 'objcopy' does only support native-build since
the commit number dotnet/coreclr@4efef62f0ead16b4f8ca2c6ccf0a77ce112f73b9
Let's add cross-build as well as native-build to strip symbols.

v3:
- support if statement for arm64

v2:
- Replace 'EQUAL' with 'DEFINED' for handling Other Linux distributions
  as well as Ubuntu 14.04 and for handling in case of native-build.

v2:
- support cross-build to strip debug symbols of native arm binaries

Signed-off-by: Geunsik Lim geunsik.lim@samsung.com
Signed-off-by: MyungJoo Ham myungjoo.ham@samsung.com
Signed-off-by: Prajwal A N an.prajwal@samsung.com
Commit migrated from https://github.com/dotnet/coreclr/commit/2df33a8de217f54330397a9101c51f2a9956ad18

8 years ago[Linux/ARM32/64] Unifying the redundant usages of cross-toolchain
Geunsik Lim [Mon, 28 Mar 2016 03:08:09 +0000 (12:08 +0900)]
[Linux/ARM32/64] Unifying the redundant usages of cross-toolchain

The name of toolchain name has been increasing gradually.
Let's unify the toolchain name of Linux/ARM{32|64} to prevent the
increase of the fragmentation, and to the manatainability.

Signed-off-by: Geunsik Lim geunsik.lim@samsung.com
Signed-off-by: MyungJoo Ham myungjoo.ham@samsung.com
Signed-off-by: Prajwal A N an.prajwal@samsung.com
Commit migrated from https://github.com/dotnet/coreclr/commit/4eb537dcf4d9780f70b3a68b6f0d1d61cd9a836b

8 years agoMerge pull request dotnet/coreclr#3946 from leemgs/toolchain-name-unifying
Jan Kotas [Sat, 26 Mar 2016 17:40:04 +0000 (10:40 -0700)]
Merge pull request dotnet/coreclr#3946 from leemgs/toolchain-name-unifying

[Linux/ARM32] Unifying the redundant usages of cross-toolchain

Commit migrated from https://github.com/dotnet/coreclr/commit/48ce56b9fcd1b5edf5ca28f83d7b623b71e5c925

8 years agoMerge pull request dotnet/coreclr#3902 from JosephTremoulet/ZeroExtend
Joseph Tremoulet [Sat, 26 Mar 2016 16:24:14 +0000 (12:24 -0400)]
Merge pull request dotnet/coreclr#3902 from JosephTremoulet/ZeroExtend

Unsuppress same-reg zero-extending mov (x64)

Commit migrated from https://github.com/dotnet/coreclr/commit/8d34c2f299cfbd26783e2deb7e982bf611885d0a

8 years ago[Linux/ARM32] Unifying the redundant usages of cross-toolchain
Geunsik Lim [Sat, 26 Mar 2016 12:53:08 +0000 (21:53 +0900)]
[Linux/ARM32] Unifying the redundant usages of cross-toolchain

The name of toolchain name has been increasing gradually.
Let's unify the toolchain name of Linux/ARM32 to prevent the
increase of the fragmentation, and to the manatainability.

Signed-off-by: Geunsik Lim geunsik.lim@samsung.com
Signed-off-by: MyungJoo Ham myungjoo.ham@samsung.com
Signed-off-by: Prajwal A N an.prajwal@samsung.com
Commit migrated from https://github.com/dotnet/coreclr/commit/12924be33d6d84a2e78e98291dfdd03cb621fc21

8 years agoFix: bracket expression matches a character at gawk
Geunsik Lim [Sat, 26 Mar 2016 10:04:31 +0000 (19:04 +0900)]
Fix: bracket expression matches a character at gawk

This is a trivial patch. However, It's must be modified by gawk.
Check it exactly as a plain character (e.g., space, alnum)
within the bracket expression at ./coreclr/generateversionscript.awk

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/1ecdf767806842e9d09db879d4fdd98cef7b9810

8 years agoMerge pull request dotnet/coreclr#3896 from adityamandaleeka/configvalues4
Aditya Mandaleeka [Sat, 26 Mar 2016 07:00:55 +0000 (00:00 -0700)]
Merge pull request dotnet/coreclr#3896 from adityamandaleeka/configvalues4

Add new configuration mechanism for CoreCLR.

Commit migrated from https://github.com/dotnet/coreclr/commit/775003a4c72f0acc37eab84628fcef541533ba4e

8 years agoMerge pull request dotnet/coreclr#3931 from Godin/fix-typos
Jan Kotas [Sat, 26 Mar 2016 04:06:26 +0000 (21:06 -0700)]
Merge pull request dotnet/coreclr#3931 from Godin/fix-typos

Fix copy-paste typos

Commit migrated from https://github.com/dotnet/coreclr/commit/4f1aef23dac7f26b048e8910dab42d948c9b9c9c

8 years agoMerge pull request dotnet/coreclr#3920 from CarolEidt/ChangeLdObjToObj
Carol Eidt [Sat, 26 Mar 2016 01:22:46 +0000 (18:22 -0700)]
Merge pull request dotnet/coreclr#3920 from CarolEidt/ChangeLdObjToObj

1stClassStructs: Replace GT_LDOBJ with GT_OBJ

Commit migrated from https://github.com/dotnet/coreclr/commit/9d8513352e858ad3b739626e062f0133698a7111

8 years agoMerge pull request dotnet/coreclr#3928 from manu-silicon/patch-3
Jan Kotas [Sat, 26 Mar 2016 01:11:44 +0000 (18:11 -0700)]
Merge pull request dotnet/coreclr#3928 from manu-silicon/patch-3

Fix invalid path to genXplatLttng.py

Commit migrated from https://github.com/dotnet/coreclr/commit/24cab6db08b1c7f0c297abefa7fa27bd88082505

8 years agoAdd new configuration mechanism for CoreCLR.
Aditya Mandaleeka [Sat, 12 Mar 2016 02:39:27 +0000 (18:39 -0800)]
Add new configuration mechanism for CoreCLR.

Commit migrated from https://github.com/dotnet/coreclr/commit/1aa1b8ba64365f8b93a505d4f6165c6eaad84a7a

8 years agoMerge pull request dotnet/coreclr#3934 from briansull/remove-lvaAdjustRefCnts
Brian Sullivan [Sat, 26 Mar 2016 00:34:50 +0000 (17:34 -0700)]
Merge pull request dotnet/coreclr#3934 from briansull/remove-lvaAdjustRefCnts

Remove empty phase lvaAdjustRefCnts

Commit migrated from https://github.com/dotnet/coreclr/commit/1378dbbb0baffc737018503adb0310859a46eb0c

8 years ago1stClassStructs: Replace GT_LDOBJ with GT_OBJ
Carol Eidt [Thu, 24 Mar 2016 20:29:39 +0000 (13:29 -0700)]
1stClassStructs: Replace GT_LDOBJ with GT_OBJ

In preparation for using block nodes in assignments, change GT_LDOBJ to GT_OBJ.
Also, eliminate gtFldTreeList, which was only
being used in a transitory fashion for x87
codegen - instead create the nodes on the fly as needed for stack fp codegen.
Additional minor cleanup.

Commit migrated from https://github.com/dotnet/coreclr/commit/3789f42252a2faf577f90841fb944256c637b4f2

8 years agoMerge pull request dotnet/coreclr#3933 from AndyAyersMS/RefactorPolicy
Andy Ayers [Fri, 25 Mar 2016 22:51:33 +0000 (15:51 -0700)]
Merge pull request dotnet/coreclr#3933 from AndyAyersMS/RefactorPolicy

Inliner: refactor policies to extract common legality portion

Commit migrated from https://github.com/dotnet/coreclr/commit/117825e88bb1c21f626938a8b101fcd175015319

8 years agoMerge pull request dotnet/coreclr#3924 from AndyAyersMS/Fix-VSO-205323
Andy Ayers [Fri, 25 Mar 2016 22:49:54 +0000 (15:49 -0700)]
Merge pull request dotnet/coreclr#3924 from AndyAyersMS/Fix-VSO-205323

Inliner: fix issue introduced by refactoring

Commit migrated from https://github.com/dotnet/coreclr/commit/4042556fe08e0eaac0ea8379b7f8e12dec60e5eb

8 years agoRemove empty phase lvaAdjustRefCnts
Brian Sullivan [Fri, 25 Mar 2016 22:22:46 +0000 (15:22 -0700)]
Remove empty phase lvaAdjustRefCnts

Commit migrated from https://github.com/dotnet/coreclr/commit/46460db255be36aeb52cb1df9156b7b0b06e380c

8 years agoMerge pull request dotnet/coreclr#3932 from kyulee1/arm64tool
Kyungwoo Lee [Fri, 25 Mar 2016 21:56:59 +0000 (14:56 -0700)]
Merge pull request dotnet/coreclr#3932 from kyulee1/arm64tool

Fix ARM64 lib toolchain

Commit migrated from https://github.com/dotnet/coreclr/commit/12870d860aebfeff0bd92d3919c88b3ed7519359

8 years agoUnsuppress same-reg zero-extending mov (x64)
Joseph Tremoulet [Thu, 24 Mar 2016 14:56:36 +0000 (10:56 -0400)]
Unsuppress same-reg zero-extending mov (x64)

Update CodeGen::genIntToIntCast to stop suppressing 32-bit same-register
`mov`s, and to stop assuming that 32-bit enregistered sources already have
the top half of their register clear.  This latter assumption is usually
true, but is not guaranteed across function boundaries by the ABI.  As it
happens, the runtime code that invokes custom attribute constructors can
pass garbage in the top half of such parameters; this change adds a
testcase that fails on that path without this fix.

Commit migrated from https://github.com/dotnet/coreclr/commit/e1c9e27795e49f05af417efe10c01c0774e28f32

8 years agoInliner: refactor policies to extract common legality portion
Andy Ayers [Fri, 25 Mar 2016 18:56:25 +0000 (11:56 -0700)]
Inliner: refactor policies to extract common legality portion

Now that we have multiple policies, refactor their implementation
to extract common elements. In particular all the existing
policies have the same legality and ability constraints, so this
logic is extracted to a partial `LegalPolicy` superclass.

Adresses relevant feedback on dotnet/coreclr#3697, where the number of policies
increased from one to two.

No changes in behavior.

Commit migrated from https://github.com/dotnet/coreclr/commit/da7c4410075f7211d077cb4e8c8ef368659dbb0c

8 years agoFixing tracelogging on linux
David Mason [Fri, 25 Mar 2016 18:26:33 +0000 (11:26 -0700)]
Fixing tracelogging on linux

Commit migrated from https://github.com/dotnet/coreclr/commit/c23c38d36c0fabb9ee861643dade9b4f56ff1e61

8 years agoFix ARM64 lib toolchain
Kyungwoo Lee [Fri, 25 Mar 2016 18:19:25 +0000 (11:19 -0700)]
Fix ARM64 lib toolchain

This fixes path for the right libs that are consistent with tools.
With this, crossgen.exe can run natively on arm64.

fix

Commit migrated from https://github.com/dotnet/coreclr/commit/8690b1f42331f2e859f5314c2f6a6dca8dfbcd19

8 years agoFix copy-paste typos
Evgeny Mandrikov [Fri, 25 Mar 2016 17:17:49 +0000 (18:17 +0100)]
Fix copy-paste typos

Commit migrated from https://github.com/dotnet/coreclr/commit/eaa2cf6470a57e6ba35c4d9c94b488ae6afad94d

8 years agoMerge pull request dotnet/coreclr#3907 from davmason/master
David Mason [Fri, 25 Mar 2016 17:14:26 +0000 (10:14 -0700)]
Merge pull request dotnet/coreclr#3907 from davmason/master

Fix spurious warning about parameter counts

Commit migrated from https://github.com/dotnet/coreclr/commit/764c9b52cfb7f631cc30ed23e7072c6eb04e195f

8 years agoMerge pull request dotnet/coreclr#3930 from dotnet-bot/from-tfs
Jan Kotas [Fri, 25 Mar 2016 16:55:49 +0000 (09:55 -0700)]
Merge pull request dotnet/coreclr#3930 from dotnet-bot/from-tfs

Merge changes from TFS

Commit migrated from https://github.com/dotnet/coreclr/commit/aedfba00f7977b2c00022df74d1bbe03e73260c8

8 years agoMerge pull request dotnet/coreclr#3908 from AndyAyersMS/JitTimeData
Andy Ayers [Fri, 25 Mar 2016 15:28:13 +0000 (08:28 -0700)]
Merge pull request dotnet/coreclr#3908 from AndyAyersMS/JitTimeData

Inliner: collect jit time data

Commit migrated from https://github.com/dotnet/coreclr/commit/e316b5571a34181e08d7f912fab96795ad2ee035

8 years agoFix build break on full framework
Jan Kotas [Fri, 25 Mar 2016 14:28:56 +0000 (07:28 -0700)]
Fix build break on full framework

[tfs-changeset: 1589984]

Commit migrated from https://github.com/dotnet/coreclr/commit/7b97c58fef96875e672ddc271ded8c11dc416c76

8 years agoFix invalid path to genXplatLttng.py
Emmanuel [Fri, 25 Mar 2016 06:29:08 +0000 (15:29 +0900)]
Fix invalid path to genXplatLttng.py

Commit migrated from https://github.com/dotnet/coreclr/commit/bec80abd245604aedbf9b89d7e4393e49a8056cf

8 years agoMerge pull request dotnet/coreclr#3900 from jkotas/legacynetcf
Jan Kotas [Fri, 25 Mar 2016 03:21:35 +0000 (20:21 -0700)]
Merge pull request dotnet/coreclr#3900 from jkotas/legacynetcf

Delete legacy netcf compat support (final part)

Commit migrated from https://github.com/dotnet/coreclr/commit/d6357b20ea0542f674fc323be172cd44d122318d

8 years agoMerge pull request dotnet/coreclr#3921 from myungjoo/fix/3859
Jan Kotas [Fri, 25 Mar 2016 03:21:10 +0000 (20:21 -0700)]
Merge pull request dotnet/coreclr#3921 from myungjoo/fix/3859

Fix dotnet/coreclr#3859 ARM/Unwind: explicitly mark the end of stack

Commit migrated from https://github.com/dotnet/coreclr/commit/db22f6be2ec9dcce076a5cb0bab5c33a031c88c9

8 years agoMerge pull request dotnet/coreclr#3923 from myungjoo/doc/arm_0001
Jan Kotas [Fri, 25 Mar 2016 03:20:56 +0000 (20:20 -0700)]
Merge pull request dotnet/coreclr#3923 from myungjoo/doc/arm_0001

Update Linux Build Instruction

Commit migrated from https://github.com/dotnet/coreclr/commit/58209afd48c6f0d2b7e9bc987b701f20480afb89

8 years agoMerge pull request dotnet/coreclr#3917 from jkotas/structinregs
Jan Kotas [Fri, 25 Mar 2016 03:15:24 +0000 (20:15 -0700)]
Merge pull request dotnet/coreclr#3917 from jkotas/structinregs

Add explicit calling convention modifiers for x86

Commit migrated from https://github.com/dotnet/coreclr/commit/6c0639cff22b0dbb48f3f2b5046dee23f22d29b4

8 years agoUpdate Linux Build Instruction
MyungJoo Ham [Fri, 25 Mar 2016 02:51:22 +0000 (11:51 +0900)]
Update Linux Build Instruction

For Linux/ARM, you need to update libunwind-arm
in order to avoid segmentation faults in libunwind-arm,
which is not included in major Linux distros, yet,
while it is already being addressed in upstreams.

This is realted with dotnet/coreclr#3898 Issue Comment 201098037:
https://github.com/dotnet/coreclr/issues/3898#issuecomment-201098037

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/25d01ddcec5e4e4296aef8b5f576a1db7914aa5a

8 years agoMerge pull request dotnet/coreclr#3919 from stephentoub/specialcase_emptystring
Stephen Toub [Fri, 25 Mar 2016 02:54:18 +0000 (22:54 -0400)]
Merge pull request dotnet/coreclr#3919 from stephentoub/specialcase_emptystring

Special-case hashcode of empty length string on Unix

Commit migrated from https://github.com/dotnet/coreclr/commit/c20480dfc56a18dec823bb15015e90e9a8da55c0

8 years agoInliner: fix issue introduced by refactoring
Andy Ayers [Thu, 24 Mar 2016 21:20:46 +0000 (14:20 -0700)]
Inliner: fix issue introduced by refactoring

Refactoring done in dotnet/coreclr#3799 inadvertently modified logic in
`fgFindJumpTargets` so that stored-to arguments might not be marked as
such in the `lvaTable' when crossgenning a root method. This lead to
asserts in internal test cases.

This change restores the logic to its prior state, and adds a test
case that will trigger an assert if the assembly is crossgenned and
this fix is not applied.

Commit migrated from https://github.com/dotnet/coreclr/commit/13ff9aef107018c26c8d255b20ced32a84be25cf

8 years agoInliner: collect jit time data
Andy Ayers [Tue, 22 Mar 2016 22:48:07 +0000 (15:48 -0700)]
Inliner: collect jit time data

This is an initial cut at collecting the time spent jitting a method
as part of observing the incremental impact of inlines.

It currently only measures the time after inlining has run, because there
are substantial interactions with the EE before this point and the time
spent in those calls is not always going to properly attribute to the
current method. We've had some good internal discussion on other
approaches to this and will likely revisit as time goes on. There was
already some timing support in place for SQM so I've generalized that
and shared it for this case too.

This also fixes an off-by-one issue with the method version which came
up when trying to back-correlate the inline data into the inline trees.
The data dumps now include root method data, and so we capture the IL
size and force inline state of the root method in the data dumps. This
allows us to investiage if observed inliner data is corrlated with the
current size of a method.

Data output is now also supported in RET builds. A custom build that
defines `INLINE_DATA` is required. Output is sent to stderr to work
around issues with crossgen.exe reopening stdout in a non-ascii mode.

Commit migrated from https://github.com/dotnet/coreclr/commit/56c4dd36829af89be9cef1d537e2d1998e2beb26

8 years agoFix ARM/Unwind: explicitly mark the end of stack
MyungJoo Ham [Fri, 25 Mar 2016 01:12:37 +0000 (10:12 +0900)]
Fix ARM/Unwind: explicitly mark the end of stack

Libunwind-arm unw_step returns 0 with unchanged PC
if it hits the bottom of the stack.

Thus, seh-unwind.cpp::PAL_VirtualUnwind should
explicitly mark that it has reached the bottom
as it does with ARM64, FreeBSD, or APPLE for
ARM/Linux.

Fix dotnet/coreclr#3859

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/95cad43adb26410a31adaa8f30908f07876bb742

8 years agoSpecial-case hashcode of empty length string on Unix
stephentoub [Thu, 24 Mar 2016 23:37:48 +0000 (19:37 -0400)]
Special-case hashcode of empty length string on Unix

This is special-cased in the Windows build, but not currently in the Unix build.

Commit migrated from https://github.com/dotnet/coreclr/commit/fb223894cc95c4269829dde874cc9ec7f65d3bce

8 years agoMerge pull request dotnet/coreclr#3885 from sejongoh/test_env_script
Sejong Oh [Thu, 24 Mar 2016 23:25:33 +0000 (16:25 -0700)]
Merge pull request dotnet/coreclr#3885 from sejongoh/test_env_script

Add --test-env option to tests/runtest.sh to set stress mode environm…

Commit migrated from https://github.com/dotnet/coreclr/commit/edb66eb76eaa046913c0de0d5c7f917f2cfc8465

8 years agoAdd explicit calling convention modifiers for x86
Jan Kotas [Thu, 24 Mar 2016 22:14:33 +0000 (15:14 -0700)]
Add explicit calling convention modifiers for x86

Commit migrated from https://github.com/dotnet/coreclr/commit/905046b8928716e050ab2c9b3f57518e604d4791

8 years agoMerge pull request dotnet/coreclr#3904 from kyulee1/NoMT
Kyungwoo Lee [Thu, 24 Mar 2016 20:48:22 +0000 (13:48 -0700)]
Merge pull request dotnet/coreclr#3904 from kyulee1/NoMT

Remove static lib dependency on CrossGen

Commit migrated from https://github.com/dotnet/coreclr/commit/e02c359a66219e4021ecb614cff87bb6a07bd68e

8 years agoMerge pull request dotnet/coreclr#3905 from kyulee1/arm64cross
Kyungwoo Lee [Thu, 24 Mar 2016 19:18:16 +0000 (12:18 -0700)]
Merge pull request dotnet/coreclr#3905 from kyulee1/arm64cross

Enable CrossGen Compilation for ARM64

Commit migrated from https://github.com/dotnet/coreclr/commit/5950613eff6684b20af4b49ee7a75e3951c3666e

8 years agoMerge pull request dotnet/coreclr#3814 from tijoytom/master
tijoytom [Thu, 24 Mar 2016 18:23:22 +0000 (11:23 -0700)]
Merge pull request dotnet/coreclr#3814 from tijoytom/master

Marshal tests for various scenarios.

Commit migrated from https://github.com/dotnet/coreclr/commit/64d8836e6ec00fe4cefb2b7e8a8059e53c7c45e2

8 years agoAdd --test-env option to tests/runtest.sh to set stress mode environment varibles...
Sejong OH [Wed, 23 Mar 2016 17:32:25 +0000 (10:32 -0700)]
Add --test-env option to tests/runtest.sh to set stress mode environment varibles just before tests run.

Commit migrated from https://github.com/dotnet/coreclr/commit/de0c3c3d5162581b8bda84169d53c42ec31ddf82

8 years agoFix spurious warning about parameter counts
David Mason [Thu, 24 Mar 2016 17:48:51 +0000 (10:48 -0700)]
Fix spurious warning about parameter counts

Commit migrated from https://github.com/dotnet/coreclr/commit/b45dbec2efcdc9713ddf50d57d8df3564874b345

8 years agoEnable CrossGen Compilation for ARM64
Kyungwoo Lee [Thu, 24 Mar 2016 17:51:36 +0000 (10:51 -0700)]
Enable CrossGen Compilation for ARM64

This simply removes the blocking code that prevents ARM64 crossgen
compilation. Otherwise, we got InvalidProgramExceptions for all methods.
I've validated this allows crossgen to compiles all mscorlib methods.
Toward the end, there is NYI assertion in Zap which is expected.

Commit migrated from https://github.com/dotnet/coreclr/commit/1a0a1c3542cc296035b8ef14e7520dfdb2ac5d93

8 years agoRemove static lib dependency on CrossGen
Kyungwoo Lee [Thu, 24 Mar 2016 17:36:18 +0000 (10:36 -0700)]
Remove static lib dependency on CrossGen

The motivation is for enabling ARM64 which does not have correct static
lib with the current toolset.
But looking at other console apps (ilasm/ildasm/coreconsole/corerun) or
coreclr.dll, they also have dependency on msvcrt for Windows.
So, I've decided to make crossgen.exe with the same flavor.
This changes reduces the binary size -- 10M -> 9M (Debug). Release binary
is slightly smaller.
I've validated this by comparing .ni.dll for all FX assemblies that we use for
tests (under CORE_ROOT), which are identical before and after.

Commit migrated from https://github.com/dotnet/coreclr/commit/9bc133dfd67980e9496c93bb08de9a03c33e12e3

8 years agoMerge pull request dotnet/coreclr#3891 from JohnChen0/r2r
Jan Kotas [Thu, 24 Mar 2016 17:19:13 +0000 (10:19 -0700)]
Merge pull request dotnet/coreclr#3891 from JohnChen0/r2r

Fix generic struct delegate in ReadyToRun (dotnet/coreclr#3690)

Commit migrated from https://github.com/dotnet/coreclr/commit/6633c0fce8182129544fca6301c09e3a7f646e54