summaryrefslogtreecommitdiff
path: root/src/vm/argdestination.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/argdestination.h')
-rw-r--r--src/vm/argdestination.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/vm/argdestination.h b/src/vm/argdestination.h
index d8f6c854b2..8a3fb4fdf2 100644
--- a/src/vm/argdestination.h
+++ b/src/vm/argdestination.h
@@ -176,8 +176,10 @@ public:
{
LIMITED_METHOD_CONTRACT;
+ // SPAN-TODO: GC reporting - https://github.com/dotnet/coreclr/issues/8517
+
_ASSERTE(IsStructPassedInRegs());
-
+
TADDR genRegDest = dac_cast<TADDR>(GetStructGenRegDestinationAddress());
INDEBUG(int remainingBytes = fieldBytes;)
@@ -199,7 +201,8 @@ public:
_ASSERTE(eightByteSize == 8);
_ASSERTE(IS_ALIGNED((SIZE_T)genRegDest, 8));
- (*fn)(dac_cast<PTR_PTR_Object>(genRegDest), sc, 0);
+ uint32_t flags = eightByteClassification == SystemVClassificationTypeIntegerByRef ? GC_CALL_INTERIOR : 0;
+ (*fn)(dac_cast<PTR_PTR_Object>(genRegDest), sc, flags);
}
genRegDest += eightByteSize;