diff options
Diffstat (limited to 'src/vm/precode.h')
-rw-r--r-- | src/vm/precode.h | 31 |
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__ |