summaryrefslogtreecommitdiff
path: root/src/vm/method.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/method.cpp')
-rw-r--r--src/vm/method.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/vm/method.cpp b/src/vm/method.cpp
index e4a75d6a4c..923cfc1a1c 100644
--- a/src/vm/method.cpp
+++ b/src/vm/method.cpp
@@ -5747,7 +5747,16 @@ PrecodeType MethodDesc::GetPrecodeType()
if (!RequiresMethodDescCallingConvention())
{
// Use the more efficient fixup precode if possible
- precodeType = PRECODE_FIXUP;
+#ifdef HAS_RELATIVE_FIXUP_PRECODE
+ if (IsZapped())
+ {
+ precodeType = PRECODE_RELATIVE_FIXUP;
+ }
+ else
+#endif // HAS_RELATIVE_FIXUP_PRECODE
+ {
+ precodeType = PRECODE_FIXUP;
+ }
}
else
#endif // HAS_FIXUP_PRECODE