Initial implementation of generic dictionary access for R2R. (#4519)
authorFadi Hanna <fadim@microsoft.com>
Sat, 14 May 2016 03:35:54 +0000 (20:35 -0700)
committerFadi Hanna <fadim@microsoft.com>
Sat, 14 May 2016 03:35:54 +0000 (20:35 -0700)
commit97b4ff0b438261ba11b357008630076054a6f25d
tree320c32b25b556124cb354ab06a86c8f6ae806d98
parent5b065284dc57bc3a9eaee9f86b0df258b1d3d7af
Initial implementation of generic dictionary access for R2R. (#4519)

For now, only TypeHandle dictionary entry slots are supported and encoded in a R2R version resilient format (the rest to come soon).
Support is only limited for x64 Windows platforms (rest is still TODO)

The basic idea: each dictionary access is initally a call to a DynamicHelper R2R cell that computes the dictionary signature, and patches the R2R cell address with an assembly stub that performs the dictionary lookup.
19 files changed:
src/inc/corcompile.h
src/inc/corinfo.h
src/inc/readytorun.h
src/inc/readytorunhelpers.h
src/jit/compiler.h
src/jit/importer.cpp
src/vm/amd64/cgenamd64.cpp
src/vm/i386/cgenx86.cpp
src/vm/jitinterface.cpp
src/vm/jitinterface.h
src/vm/prestub.cpp
src/vm/readytoruninfo.h
src/vm/zapsig.cpp
src/zap/zapimage.cpp
src/zap/zapimport.cpp
src/zap/zapimport.h
src/zap/zapinfo.cpp
src/zap/zapinfo.h
src/zap/zapreadytorun.cpp