9219b369de
AssembleCode used CcTest::i_isolate() to load the isolate, however this might not be the isolate that should be used. Therefore take the isolate as an explicit argument. Note that this changes behavior of ExecuteMemoryAccess in test-sync-primitives-arm.cc. I think this test inadvertently created the assembly code in the isolate of another thread, while it didn't use the isolate it sets the handle scope up for. This change is required for relanding https://crrev.com/c/2543399. Bug: v8:10315 Change-Id: I754f4b45cec93727309fa73723011afe976f3689 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2546682 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71257}
34 lines
865 B
C++
34 lines
865 B
C++
// Copyright 2017 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "test/cctest/assembler-helper-arm.h"
|
|
|
|
#include "src/codegen/macro-assembler.h"
|
|
#include "src/execution/isolate-inl.h"
|
|
#include "src/init/v8.h"
|
|
#include "test/cctest/cctest.h"
|
|
|
|
namespace v8 {
|
|
namespace internal {
|
|
|
|
Handle<Code> AssembleCodeImpl(Isolate* isolate,
|
|
std::function<void(MacroAssembler&)> assemble) {
|
|
MacroAssembler assm(isolate, CodeObjectRequired::kYes);
|
|
|
|
assemble(assm);
|
|
assm.bx(lr);
|
|
|
|
CodeDesc desc;
|
|
assm.GetCode(isolate, &desc);
|
|
Handle<Code> code =
|
|
Factory::CodeBuilder(isolate, desc, CodeKind::FOR_TESTING).Build();
|
|
if (FLAG_print_code) {
|
|
code->Print();
|
|
}
|
|
return code;
|
|
}
|
|
|
|
} // namespace internal
|
|
} // namespace v8
|