Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Andreenko <seandree@microsoft.com>2021-01-22 00:37:42 +0300
committerGitHub <noreply@github.com>2021-01-22 00:37:42 +0300
commit648437b1b4db6536ae33763b6c9178287c0a52bd (patch)
tree5bf1bad563b8a080154d14da93ef3d23a437e751 /src/coreclr/gcinfo
parentbf573c7e2dec65f2db36994436f8396c76789df5 (diff)
Arm64 apple vm fixes for arg alignment. (#46665)
* Add `MarshalInfo::IsValueClass`. * Add `TypeHandle* pTypeHandle` to `SizeOf`. * Add a few asserts/start using inline function instead of macro. * use TARGET_POINTER_SIZE instead of STACK_ELEM_SIZE. * Use `m_curOfs` instead of `m_idxStack` in `ArgIteratorBase` on all platforms. Before some platforms were using stackSlots, some curOfs in bytes. * Use byte sizes and offsets in `ArgLocDesc`. Fix arm32. x86 fixes. use StackSize on ArgSizes Add `GetStackArgumentByteIndexFromOffset` and return back the old values for asserts. another fix * Stop using `#define STACK_ELEM_SIZE` * Add `isFloatHfa`. * delete checking code. because it won't pass on arm64 apple. * arm64 apple fixes. * roundUp the stack size. * Add a reflection test. * Return byte offset from `GetNextOfs`. It is not a complete fix for arm64 apple, but covers most cases. * Add `FLOAT_REGISTER_SIZE` * Use StackElemSize for ` pLoc->m_byteStackSize`. * replace `assert` with `_ASSERTE`. * Use `ALIGN_UP` in the code that I have changed. * rename `m_curOfs` as `m_ofsStack`. * delete "ceremony " from `StackElemSize`. * Delete `cSlots` and don't call `StackElemSize` on `GetArgSize`. * Fix an assert. * Fix nit. * fix wrong return for hfa<float>. * fix nit. * Fix crossgen job.
Diffstat (limited to 'src/coreclr/gcinfo')
-rw-r--r--src/coreclr/gcinfo/gcinfoencoder.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/coreclr/gcinfo/gcinfoencoder.cpp b/src/coreclr/gcinfo/gcinfoencoder.cpp
index b906c3e147a..8f56607e22b 100644
--- a/src/coreclr/gcinfo/gcinfoencoder.cpp
+++ b/src/coreclr/gcinfo/gcinfoencoder.cpp
@@ -577,8 +577,10 @@ GcSlotId GcInfoEncoder::GetStackSlotId( INT32 spOffset, GcSlotFlags flags, GcSta
_ASSERTE( (flags & (GC_SLOT_IS_REGISTER | GC_SLOT_IS_DELETED)) == 0 );
+#if !defined(OSX_ARM64_ABI)
// the spOffset for the stack slot is required to be pointer size aligned
_ASSERTE((spOffset % TARGET_POINTER_SIZE) == 0);
+#endif
m_SlotTable[ m_NumSlots ].Slot.Stack.SpOffset = spOffset;
m_SlotTable[ m_NumSlots ].Slot.Stack.Base = spBase;