summaryrefslogtreecommitdiff
path: root/src/vm/methodtablebuilder.cpp
diff options
context:
space:
mode:
authorEgor Chesakov <Egor.Chesakov@microsoft.com>2018-06-04 10:08:22 -0700
committerGitHub <noreply@github.com>2018-06-04 10:08:22 -0700
commitde586767f51432e5d89f6fcffee07c488fdeeb7b (patch)
treebb6306408eb17be4e7b9e799f15829d750c108d5 /src/vm/methodtablebuilder.cpp
parentda0a05431913dd5e3d65c5d3c74d7f12cf3f9ebb (diff)
downloadcoreclr-de586767f51432e5d89f6fcffee07c488fdeeb7b.tar.gz
coreclr-de586767f51432e5d89f6fcffee07c488fdeeb7b.tar.bz2
coreclr-de586767f51432e5d89f6fcffee07c488fdeeb7b.zip
Work in VM towards cross-bitness crossgen (#18245)
* Replace sizeof expressions with target-specific constants: * sizeof(ObjHeader) -> OBJHEADER_SIZE * sizeof(Object) -> OBJECT_SIZE * ObjSizeOf(Object) -> OBJECT_BASESIZE * sizeof(ArrayBase) -> ARRAYBASE_SIZE * ObjSizeOf(ArrayBase) -> ARRAYBASE_BASESIZE * Remove ObjSizeOf macro * Use OBJECT_SIZE in ArrayBase::GetBoundsOffset * Cast ppObj to CORCOMPILE_GCREFMAP_TOKENS* before dereferencing in FakePromote * LOG2_PTRSIZE should depend on _TARGET_64BIT_
Diffstat (limited to 'src/vm/methodtablebuilder.cpp')
-rw-r--r--src/vm/methodtablebuilder.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/vm/methodtablebuilder.cpp b/src/vm/methodtablebuilder.cpp
index 8b507bf633..0c1302eda1 100644
--- a/src/vm/methodtablebuilder.cpp
+++ b/src/vm/methodtablebuilder.cpp
@@ -8358,7 +8358,7 @@ MethodTableBuilder::HandleExplicitLayout(
if (CorTypeInfo::IsObjRef(pFD->GetFieldType()))
{
// Check that the ref offset is pointer aligned
- if ((pFD->GetOffset_NoLogging() & ((ULONG)sizeof(OBJECTREF) - 1)) != 0)
+ if ((pFD->GetOffset_NoLogging() & ((ULONG)TARGET_POINTER_SIZE - 1)) != 0)
{
badOffset = pFD->GetOffset_NoLogging();
fieldTrust.SetTrust(ExplicitFieldTrust::kNone);
@@ -8596,7 +8596,7 @@ MethodTableBuilder::HandleExplicitLayout(
{
CONSISTENCY_CHECK(pSeries <= map->GetHighestSeries());
- memset((void*)&vcLayout[pSeries->GetSeriesOffset()-sizeof(Object)], oref, pSeries->GetSeriesSize() + pMT->GetBaseSize());
+ memset((void*)&vcLayout[pSeries->GetSeriesOffset() - OBJECT_SIZE], oref, pSeries->GetSeriesSize() + pMT->GetBaseSize());
pSeries++;
}
@@ -8678,8 +8678,8 @@ void MethodTableBuilder::FindPointerSeriesExplicit(UINT instanceSliceSize,
// ref-non-ref-non, and since only ref series are recorded and non-ref series
// are skipped, the max number of series is total instance size / 2 / sizeof(ref).
// But watch out for the case where we have e.g. an instanceSlizeSize of 4.
- DWORD sz = (instanceSliceSize + (2 * sizeof(OBJECTREF)) - 1);
- bmtGCSeries->pSeries = new bmtGCSeriesInfo::Series[sz/2/sizeof(OBJECTREF)];
+ DWORD sz = (instanceSliceSize + (2 * TARGET_POINTER_SIZE) - 1);
+ bmtGCSeries->pSeries = new bmtGCSeriesInfo::Series[sz/2/ TARGET_POINTER_SIZE];
BYTE *loc = pFieldLayout;
BYTE *layoutEnd = pFieldLayout + instanceSliceSize;
@@ -8732,7 +8732,7 @@ MethodTableBuilder::HandleGCForExplicitLayout()
CGCDesc::Init( (PVOID) pMT, 1);
pSeries = ((CGCDesc*)pMT)->GetLowestSeries();
pSeries->SetSeriesSize( (size_t) (0) - (size_t) pMT->GetBaseSize());
- pSeries->SetSeriesOffset(sizeof(Object));
+ pSeries->SetSeriesOffset(OBJECT_SIZE);
}
else
#endif // FEATURE_COLLECTIBLE_TYPES
@@ -8758,7 +8758,7 @@ MethodTableBuilder::HandleGCForExplicitLayout()
BAD_FORMAT_NOTHROW_ASSERT(pSeries <= CGCDesc::GetCGCDescFromMT(pMT)->GetHighestSeries());
pSeries->SetSeriesSize( (size_t) bmtGCSeries->pSeries[i].len - (size_t) pMT->GetBaseSize() );
- pSeries->SetSeriesOffset(bmtGCSeries->pSeries[i].offset + sizeof(Object) + dwInstanceSliceOffset);
+ pSeries->SetSeriesOffset(bmtGCSeries->pSeries[i].offset + OBJECT_SIZE + dwInstanceSliceOffset);
pSeries++;
}
}
@@ -10308,7 +10308,7 @@ MethodTableBuilder::SetupMethodTable2(
// when the instance is in its "boxed" state.
if (!IsInterface())
{
- DWORD baseSize = Max<DWORD>(bmtFP->NumInstanceFieldBytes + ObjSizeOf(Object), MIN_OBJECT_SIZE);
+ DWORD baseSize = Max<DWORD>(bmtFP->NumInstanceFieldBytes + OBJECT_BASESIZE, MIN_OBJECT_SIZE);
baseSize = (baseSize + ALLOC_ALIGN_CONSTANT) & ~ALLOC_ALIGN_CONSTANT; // m_BaseSize must be aligned
pMT->SetBaseSize(baseSize);
@@ -11308,7 +11308,7 @@ VOID MethodTableBuilder::HandleGCForValueClasses(MethodTable ** pByValueClassCac
CGCDesc::Init( (PVOID) pMT, 1);
pSeries = ((CGCDesc*)pMT)->GetLowestSeries();
pSeries->SetSeriesSize( (size_t) (0) - (size_t) pMT->GetBaseSize());
- pSeries->SetSeriesOffset(sizeof(Object));
+ pSeries->SetSeriesOffset(OBJECT_SIZE);
}
else
#endif // FEATURE_COLLECTIBLE_TYPES
@@ -11336,8 +11336,8 @@ VOID MethodTableBuilder::HandleGCForValueClasses(MethodTable ** pByValueClassCac
if (bmtFP->NumInstanceGCPointerFields)
{
// See gcdesc.h for an explanation of why we adjust by subtracting BaseSize
- pSeries->SetSeriesSize( (size_t) (bmtFP->NumInstanceGCPointerFields * sizeof(OBJECTREF)) - (size_t) pMT->GetBaseSize());
- pSeries->SetSeriesOffset(bmtFP->GCPointerFieldStart+sizeof(Object));
+ pSeries->SetSeriesSize( (size_t) (bmtFP->NumInstanceGCPointerFields * TARGET_POINTER_SIZE) - (size_t) pMT->GetBaseSize());
+ pSeries->SetSeriesOffset(bmtFP->GCPointerFieldStart + OBJECT_SIZE);
pSeries++;
}