[embed handlers] Avoid jump tables in bytecode handlers
Since jump tables cannot be embedded, prevent their generation for bytecode handlers. This allows the remaining 7 bytecode handlers to be marked isolate independent. Bug: v8:8068 Change-Id: I3a4a6e6530fd1c585558a0d44bd429f572318b57 Reviewed-on: https://chromium-review.googlesource.com/1196509 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55523}
This commit is contained in:
parent
2616df737d
commit
ab37324c52
@ -316,18 +316,6 @@ bool Builtins::IsIsolateIndependent(int index) {
|
||||
DCHECK(IsBuiltinId(index));
|
||||
#ifndef V8_TARGET_ARCH_IA32
|
||||
switch (index) {
|
||||
// The following bytecode handlers do not yet support being embedded as they
|
||||
// use internal references.
|
||||
#ifdef V8_EMBEDDED_BYTECODE_HANDLERS
|
||||
case kInvokeIntrinsicHandler:
|
||||
case kInvokeIntrinsicWideHandler:
|
||||
case kInvokeIntrinsicExtraWideHandler:
|
||||
case kTestInHandler:
|
||||
case kTestInWideHandler:
|
||||
case kTestInExtraWideHandler:
|
||||
case kTestTypeOfHandler:
|
||||
#endif // V8_EMBEDDED_BYTECODE_HANDLERS
|
||||
|
||||
// TODO(jgruber): There's currently two blockers for moving
|
||||
// InterpreterEntryTrampoline into the binary:
|
||||
// 1. InterpreterEnterBytecode calculates a pointer into the middle of
|
||||
|
@ -61,7 +61,7 @@ OptimizedCompilationInfo::OptimizedCompilationInfo(
|
||||
PassesFilter(debug_name, CStrVector(FLAG_trace_turbo_filter)));
|
||||
// Embedded builtins don't support embedded absolute code addresses, so we
|
||||
// cannot use jump tables.
|
||||
if (code_kind != Code::BUILTIN) {
|
||||
if (code_kind != Code::BUILTIN && code_kind != Code::BYTECODE_HANDLER) {
|
||||
SetFlag(kSwitchJumpTableEnabled);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user