Граф коммитов

7959 Коммитов

Автор SHA1 Сообщение Дата
Jan Kotas 44e8e5136f Revert "Add explicit references to nuget packages in desktop.csproj" 2015-10-20 20:13:19 -07:00
Michal Strehovský 1223b48e7a Merge pull request #80 from jkotas/system-console
Use fixed version of System.Console nuget package
2015-10-20 17:41:12 -07:00
Senthil 3685123912 Merge pull request #75 from schellap/master
Emit PInvoke stub to jump to statically linked methods
2015-10-20 17:33:56 -07:00
schellap 20b54c3437 Emit PInvoke stub to jump to static linked symbols 2015-10-20 17:27:58 -07:00
Jan Kotas 11f839206d Use fixed version of System.Console nuget package 2015-10-20 17:10:03 -07:00
Jan Kotas a88d5db95b Merge pull request #79 from jkotas/references
Add explicit references to nuget packages in desktop.csproj
2015-10-20 09:21:27 -07:00
Jan Kotas 245579389b Add explicit references to OOB packages in desktop.csproj 2015-10-20 08:48:25 -07:00
Jan Kotas c16f6bc1c4 Merge pull request #78 from jkotas/mrt
Switch reproNative to use MRT
2015-10-20 08:43:25 -07:00
Jan Kotas d1829a02d6 Switch reproNative to use MRT 2015-10-20 07:18:09 -07:00
Tarek Mahmoud Sayed fa23204b7d Merge pull request #77 from tarekgh/corelib
Porting System.Private.Corelib code
2015-10-19 18:43:21 -07:00
dotnet-bot bb8bdd8dd9 Update the csproj according to Michal advise 2015-10-19 18:05:55 -07:00
dotnet-bot 1b883015ea Porting System.Private.Corelib code
This changes should include all corelib code and also should compile fine.
Still there is some cleanup need to be done like defining the right conditional
compilation variables, sync up the changes here with the porting code source
2015-10-19 17:19:53 -07:00
Michal Strehovský 49072fb834 Merge pull request #69 from MichalStrehovsky/cctorsupport
Add support for running class constructors
2015-10-19 16:39:32 -07:00
Michal Strehovský fb05bab838 Hook up class constructors to the dependency analyzer
* Make the cctor context structure part of the NonGCStaticsNode
* Change the way how
HasStaticConstructor/GetStaticConstructor/IsStaticConstructor work per
CR feedback
* Introduce the concept of well known entrypoints
* Get the ReadyToRunHelper to call the actual managed cctor runner

Note that this requires an updated test mscorlib where the CctorHelper
class is uncommented and MemoryBarrier is implemented to do nothing.

Note the calli intrinsic is not implemented yet, so this won't actually
call the cctor anyway.
2015-10-19 16:08:57 -07:00
Michal Strehovský a59634746c Add support for running class constructors
Similarly to .NET Native, the non-GC static region of a type should be prefixed
by a small structure ("static class construction context") that has a pointer
to the class constructor and a field indicating whether the class constructor
already executed.

This change includes the required JitInterface implementation that decides
whether a class constructor check should be injected by the JIT and a change
in the AsmWriter that emits the extra block and helper call implementation.

I'm sending it for review now, but don't expect to merge it as I want to
wait for David's change. Note that we currently don't set/check the bit indicating
whether the class constructor ran because I don't want to spend time figuring
out how to do it in AT&T assembly syntax.

While this is in review and while David's change is not merged, I'll be looking
into how to hook this up into the managed class constructor runner. CoreLib in
.NET Native has a (commented out) simple version of the runner from the .NET
Native bringup days we could likely successfully use once I implement the
necessary MCG intrinsic.
2015-10-19 16:08:56 -07:00
Michal Strehovský 4fa5f2ab90 Merge pull request #73 from MichalStrehovsky/master
Add support for Call intrinsic
2015-10-19 10:33:26 -07:00
Michal Strehovský fd6135517e Add support for Call intrinsic
The concept of Call intrinsic is used in the .NET Native compiler when
C# code needs to perform an indirect call to an address. Since calli is
not exposed in the language, the C# code calls a special method that
will be transformed by the compiler to perform a calli.

The method has shape T Call<T>(IntPtr address, X arg0,... Z argN). The
generated method body loads arguments arg0...argN and performs a calli
to the address given in the first argument.
2015-10-19 10:27:21 -07:00
Jan Kotas c43496215e Merge pull request #70 from MichalStrehovsky/master
Implement JitInterface support for stackalloc
2015-10-18 06:08:41 -07:00
Michal Strehovský 19f2aac7bf Implement JitInterface support for stackalloc
* Placeholder implementation for GS cookies
* FailFast JitHelper
2015-10-17 22:54:12 -07:00
David Wrighton 1c32fc79df Merge pull request #64 from davidwrighton/use_daf_update
Use dependency graph to drive compilation and prep for object file emission
2015-10-16 20:45:30 -07:00
David Wrighton e628f263d0 Use dependency graph to drive compilation and prep for object file emission
- Abstraction for symbols
- Abstraction for individual contents of the object file
- Abstraction for generation of assembly stubs
- Nodes for EETypes, non-gc statics, ready to run helpers, method code
- Abstraction for careful expansion of virtual methods
- New asmwriter based on object nodes from dependency graph
- Refactor code generator based compilation to use new graph. (Old logic is still in place for the Cpp code generator, and for ease of merging in changes as they occur. Once this change is merged, I'll work to get rid of the old asm emission path, and work with Jan to change over Cpp emission)
- Dependency graph can be logged to a dgml file and viewed in visual studio.
- New assembly emitter helper library for use by stubs
- Make ReadyToRunHelper class hash table friendly, and use in node table for lookup.
- Add node naming function GetName to force all non-abstract nodes to implement it
- Add concept of ObjectNodes which aren't actually emitted in the end. Use to only emit 1 eetype even if both constructed and non-constructed ones are in the graph.
- Target specific items are (mostly) in a target specific directory

DependencyAnalysisFramework changes
- Make the OnMarked override take a context parameter
- Simplify ISymbolNode
2015-10-16 20:40:38 -07:00
Jan Kotas e54eceec38 Merge pull request #67 from jkotas/jitee-fixes
JIT-EE interface fixes
2015-10-16 17:01:20 -07:00
Jan Kotas 5da8e59a46 JIT-EE interface fixes
- Replace methods that fail to compile with call to DebugBreak
- Implement a couple of more methods on JIT-EE interface
- Add stubs for some not-yet-implemented intrinsics and PInvokes
2015-10-16 16:30:13 -07:00
John Chen e04f3085e8 Merge pull request #66 from jkotas/jitee-fixes
Miscellaneous JITInterface fixes
2015-10-16 09:43:55 -07:00
Jan Kotas 400c7ba119 Miscellaneous JITInterface fixes 2015-10-16 09:23:04 -07:00
Jan Kotas 0be9b35629 Merge pull request #65 from jkotas/demo-fixes
Fix or workaround bugs for libuv demo
2015-10-16 08:44:33 -07:00
Jan Kotas ab892fca2d Fix or workaround bugs for libuv demo
- Add missing forwarders for IsVirtual and IsNewSlot to generic method specializations
- Extend workaround for infinite recursion in virtual method resolution
- Fill implementation of several runtime helpers
2015-10-16 08:10:24 -07:00
Michal Strehovský 123d08d066 Merge pull request #63 from MichalStrehovsky/pointerType
Complete asCorInfoType implementation
2015-10-15 18:10:35 -07:00
Michal Strehovský 0eb24b0da4 Complete asCorInfoType implementation
We were missing pointer type handling.
2015-10-15 17:18:30 -07:00
Jan Vorlicek cca0bfd5ae Merge pull request #62 from janvorli/windows-native-build
Enable building Native via cmake on Windows
2015-10-15 16:33:47 +02:00
Jan Vorlicek 3138498cf6 Response to PR feedback
Moved the buildnative functionality to the build.cmd
Fixed few minor details
2015-10-15 15:48:09 +02:00
Jan Vorlicek 2fb41950fa Enable building Native via cmake on Windows
This change enables building everything under src/Native using cmake.
To build it, run the nativebuild.cmd in the root of the enlistment.
2015-10-15 14:28:01 +02:00
Jan Kotas 1df8671def Merge pull request #61 from jkotas/field-mangling
Sanitize field and locals names for CppCodeGen
2015-10-14 22:38:19 -07:00
Jan Kotas a345623fce Sanitize field and locals names for CppCodeGen 2015-10-14 21:20:39 -07:00
Jan Kotas bf7cb7c788 Merge pull request #60 from jkotas/update-gc
Update GC from the coreclr repo
2015-10-14 18:34:46 -07:00
Jan Kotas 093b0dcaf0 Update GC from the coreclr repo
https://github.com/dotnet/coreclr/tree/master/src/gc commit label ff328b606c4edad13e9a211a8d89288340952f4c
2015-10-14 18:31:24 -07:00
Jan Kotas 8a423c4976 Merge pull request #59 from jkotas/fix-stringliterals
Reference string literals via GC handle
2015-10-14 17:57:48 -07:00
Jan Kotas f9f550b1fe Reference string literals via GC handle 2015-10-14 17:40:10 -07:00
Jan Kotas 9657cf382f Merge pull request #58 from jkotas/fix-cppcodegen
Fixes and workaround for hello.exe using CppCodeGen
2015-10-14 17:37:32 -07:00
Jan Kotas d5b7be7499 Fix reproNative build breaks 2015-10-14 17:10:46 -07:00
Jan Kotas ec2a9c5214 Fix GCSample build breaks 2015-10-14 16:56:42 -07:00
Jan Kotas 3ac8fe9e9d Workaround infinite recursion in virtual function resolution (#48) 2015-10-14 15:21:55 -07:00
Scott Mosier 92dad291b6 Merge pull request #35 from smosier/integrate-gc
Initial hookup of GC code to MRT code
2015-10-14 11:37:42 -07:00
Scott Mosier 015b60a6ae Additional GC-to-EE hookup.
Provide specialized gcenv.h for CoreRT.
Some refactoring of related gcenv stuff.
Wire up finalizer code.
Add runtime-specific scanning code.
2015-10-14 10:50:33 -07:00
Scott Mosier 9ceafad81f Partially hooked up GC sources to Runtime sources. Finalizer code is not yet hooked up. 2015-10-14 10:50:31 -07:00
Senthil 7f6ab60a6a Merge pull request #46 from schellap/master
Get static string literal loads to work

Allocate reloc fixup pointers in the image for the JIT indirection to work.
Emit strings as compressed int lengths and characters in the data section.
Use Windows APIs to convert these UTF8 encoded strings to UTF16.
Patch the pointers at runtime initialization with GCHandles to static strings and set it in the fixup locations.
2015-10-13 16:58:21 -07:00
schellap baa75f98ac Get static string literal loads to work 2015-10-13 16:51:36 -07:00
Jan Kotas 27fa501f10 Merge pull request #57 from gkhanna79/MacNativeBuild
Build CoreRT GCSample for Mac
2015-10-13 13:42:25 -07:00
David Wrighton e81956036c Merge pull request #42 from davidwrighton/dependency_analysis_framework_update
Dependency Analysis Framework
2015-10-13 12:18:05 -07:00
Gaurav Khanna c1bd701e78 Build CoreRT GCSample for Mac
Add check for Darwin OS to enable building the same for Mac
2015-10-13 12:17:43 -07:00