summaryrefslogtreecommitdiff
path: root/src/vm/precode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/precode.h')
-rw-r--r--src/vm/precode.h31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/vm/precode.h b/src/vm/precode.h
index fe55d6f954..ba51f22256 100644
--- a/src/vm/precode.h
+++ b/src/vm/precode.h
@@ -25,6 +25,9 @@ enum PrecodeType {
#ifdef HAS_FIXUP_PRECODE
PRECODE_FIXUP = FixupPrecode::Type,
#endif // HAS_FIXUP_PRECODE
+#ifdef HAS_RELATIVE_FIXUP_PRECODE
+ PRECODE_RELATIVE_FIXUP = RelativeFixupPrecode::Type,
+#endif // HAS_RELATIVE_FIXUP_PRECODE
#ifdef HAS_THISPTR_RETBUF_PRECODE
PRECODE_THISPTR_RETBUF = ThisPtrRetBufPrecode::Type,
#endif // HAS_THISPTR_RETBUF_PRECODE
@@ -70,6 +73,16 @@ private:
}
#endif // HAS_FIXUP_PRECODE
+#ifdef HAS_RELATIVE_FIXUP_PRECODE
+ RelativeFixupPrecode* AsRelativeFixupPrecode()
+ {
+ LIMITED_METHOD_CONTRACT;
+ SUPPORTS_DAC;
+
+ return dac_cast<PTR_RelativeFixupPrecode>(this);
+ }
+#endif // HAS_RELATIVE_FIXUP_PRECODE
+
#ifdef HAS_THISPTR_RETBUF_PRECODE
ThisPtrRetBufPrecode* AsThisPtrRetBufPrecode()
{
@@ -293,6 +306,9 @@ public:
#ifdef HAS_FIXUP_PRECODE_CHUNKS
_ASSERTE(t != PRECODE_FIXUP);
#endif
+#ifdef HAS_RELATIVE_FIXUP_PRECODE
+ _ASSERTE(t != PRECODE_RELATIVE_FIXUP);
+#endif // HAS_RELATIVE_FIXUP_PRECODE
return ALIGN_UP(SizeOf(t), AlignOf(t));
}
@@ -331,21 +347,6 @@ public:
#ifdef DACCESS_COMPILE
void EnumMemoryRegions(CLRDataEnumMemoryFlags flags);
#endif
-
-#ifdef HAS_FIXUP_PRECODE_CHUNKS
- static DWORD GetOffsetOfBase(PrecodeType t, DWORD count)
- {
- assert(t == PRECODE_FIXUP);
- return (DWORD)(count * sizeof(FixupPrecode));
- }
-
- static DWORD GetOffset(PrecodeType t, DWORD index, DWORD count)
- {
- assert(t == PRECODE_FIXUP);
- assert(index < count);
- return (DWORD)((count - index - 1)* sizeof(FixupPrecode));
- }
-#endif
};
#endif // __PRECODE_H__