@@ -737,6 +737,19 @@ regMaskTP Compiler::compNoGCHelperCallKillSet(CorInfoHelpFunc helper)
737
737
738
738
switch (helper)
739
739
{
740
+ case CORINFO_HELP_ASSIGN_BYREF:
741
+ #if defined(_TARGET_X86_)
742
+ // This helper only trashes ECX.
743
+ return RBM_ECX;
744
+ #elif defined(_TARGET_AMD64_)
745
+ // This uses and defs RDI and RSI.
746
+ return RBM_CALLEE_TRASH_NOGC & ~(RBM_RDI | RBM_RSI);
747
+ #elif defined(_TARGET_ARMARCH_)
748
+ return RBM_CALLEE_GCTRASH_WRITEBARRIER_BYREF;
749
+ #else
750
+ assert(!"unknown arch");
751
+ #endif
752
+
740
753
#if defined(_TARGET_XARCH_)
741
754
case CORINFO_HELP_PROF_FCN_ENTER:
742
755
return RBM_PROFILER_ENTER_TRASH;
@@ -748,16 +761,7 @@ regMaskTP Compiler::compNoGCHelperCallKillSet(CorInfoHelpFunc helper)
748
761
return RBM_PROFILER_TAILCALL_TRASH;
749
762
#endif // defined(_TARGET_XARCH_)
750
763
751
- #if defined(_TARGET_X86_)
752
- case CORINFO_HELP_ASSIGN_BYREF:
753
- // This helper only trashes ECX.
754
- return RBM_ECX;
755
- #endif // defined(_TARGET_X86_)
756
-
757
764
#if defined(_TARGET_ARMARCH_)
758
- case CORINFO_HELP_ASSIGN_BYREF:
759
- return RBM_CALLEE_GCTRASH_WRITEBARRIER_BYREF;
760
-
761
765
case CORINFO_HELP_ASSIGN_REF:
762
766
case CORINFO_HELP_CHECKED_ASSIGN_REF:
763
767
return RBM_CALLEE_GCTRASH_WRITEBARRIER;
0 commit comments