[VM] Ensure the start of the entrypoints is also 2-byte aligned

Fixes https://github.com/dart-lang/sdk/issues/35419

Change-Id: I1e4478573c6fc032485ad7c1ec3069e4fa946733
Reviewed-on: https://dart-review.googlesource.com/c/87404
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This commit is contained in:
Martin Kustermann 2018-12-17 12:45:35 +00:00 committed by commit-bot@chromium.org
parent 93306f5ec0
commit 52f7e9ed71
2 changed files with 7 additions and 3 deletions

View file

@ -3650,6 +3650,13 @@ LocationSummary* FunctionEntryInstr::MakeLocationSummary(
}
void FunctionEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
#if defined(TARGET_ARCH_X64)
// Ensure the start of the monomorphic checked entry is 2-byte aligned (see
// also Assembler::MonomorphicCheckedEntry()).
if (__ CodeSize() % 2 == 1) {
__ nop();
}
#endif
__ Bind(compiler->GetJumpLabel(this));
// In the AOT compiler we want to reduce code size, so generate no

View file

@ -240,9 +240,6 @@ vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test usi
vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 30273.
[ $arch == x64 && $compiler == dartkp && $mode == debug ]
statement_test: Crash # Issue 35419
[ $builder_tag == obfuscated && $compiler == dartkp ]
generic_function_dcall_test/01: SkipByDesign # Prints type names
invocation_mirror_test: RuntimeError # Issue 34911