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.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vm/precode.h b/src/vm/precode.h
index ba51f22256..e8a0d5d01e 100644
--- a/src/vm/precode.h
+++ b/src/vm/precode.h
@@ -19,6 +19,9 @@ typedef DPTR(class Precode) PTR_Precode;
enum PrecodeType {
PRECODE_INVALID = InvalidPrecode::Type,
PRECODE_STUB = StubPrecode::Type,
+#ifdef HAS_RELATIVE_STUB_PRECODE
+ PRECODE_RELATIVE_STUB = RelativeStubPrecode::Type,
+#endif // HAS_RELATIVE_STUB_PRECODE
#ifdef HAS_NDIRECT_IMPORT_PRECODE
PRECODE_NDIRECT_IMPORT = NDirectImportPrecode::Type,
#endif // HAS_NDIRECT_IMPORT_PRECODE
@@ -49,6 +52,16 @@ class Precode {
return dac_cast<PTR_StubPrecode>(this);
}
+#ifdef HAS_RELATIVE_STUB_PRECODE
+ RelativeStubPrecode* AsRelativeStubPrecode()
+ {
+ LIMITED_METHOD_CONTRACT;
+ SUPPORTS_DAC;
+
+ return dac_cast<PTR_RelativeStubPrecode>(this);
+ }
+#endif // HAS_RELATIVE_STUB_PRECODE
+
#ifdef HAS_NDIRECT_IMPORT_PRECODE
public:
// Fake precodes has to be exposed
@@ -309,6 +322,9 @@ public:
#ifdef HAS_RELATIVE_FIXUP_PRECODE
_ASSERTE(t != PRECODE_RELATIVE_FIXUP);
#endif // HAS_RELATIVE_FIXUP_PRECODE
+#ifdef HAS_RELATIVE_STUB_PRECODE
+ _ASSERTE(t != PRECODE_RELATIVE_STUB);
+#endif // HAS_RELATIVE_STUB_PRECODE
return ALIGN_UP(SizeOf(t), AlignOf(t));
}