Mark EDX as trashed by the no-gc helper calls
authorBruce Forstall <brucefo@microsoft.com>
Thu, 5 May 2016 23:35:44 +0000 (16:35 -0700)
committerBruce Forstall <brucefo@microsoft.com>
Thu, 5 May 2016 23:35:44 +0000 (16:35 -0700)
Fixes dotnet/coreclr#4666

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

src/coreclr/src/jit/target.h
src/coreclr/tests/issues.targets

index 5c3936d..6955a27 100644 (file)
@@ -558,7 +558,7 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
   // We don't allow using ebp as a source register. Maybe we should only prevent this for ETW_EBP_FRAMED (but that is always set right now).
   #define RBM_WRITE_BARRIER_SRC    (RBM_EAX|RBM_ECX|RBM_EBX|RBM_ESI|RBM_EDI)
 
-  #define RBM_CALLEE_TRASH_NOGC    RBM_NONE
+  #define RBM_CALLEE_TRASH_NOGC    RBM_EDX
 #endif // NOGC_WRITE_BARRIERS
 
   // IL stub's secret parameter (CORJIT_FLG_PUBLISH_SECRET_PARAM)
index 4c05a0c..cb37b70 100644 (file)
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\stringintern\test1-xassem\test1-xassem.cmd">
              <Issue>3554</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Linq\Linq\Linq.cmd">
-             <Issue>4666</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Serialization\Serialize\Serialize.cmd">
              <Issue>3597</Issue>
         </ExcludeList>