summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/compiler/test-code-assembler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/compiler/test-code-assembler.cc')
-rw-r--r--deps/v8/test/cctest/compiler/test-code-assembler.cc124
1 files changed, 59 insertions, 65 deletions
diff --git a/deps/v8/test/cctest/compiler/test-code-assembler.cc b/deps/v8/test/cctest/compiler/test-code-assembler.cc
index 9e6318ee88..56628ffde4 100644
--- a/deps/v8/test/cctest/compiler/test-code-assembler.cc
+++ b/deps/v8/test/cctest/compiler/test-code-assembler.cc
@@ -18,38 +18,33 @@ namespace compiler {
namespace {
-using Label = CodeAssemblerLabel;
using Variable = CodeAssemblerVariable;
-Node* SmiTag(CodeAssembler& m, // NOLINT(runtime/references)
- Node* value) {
+Node* SmiTag(CodeAssembler* m, Node* value) {
int32_t constant_value;
- if (m.ToInt32Constant(value, &constant_value) &&
+ if (m->ToInt32Constant(value, &constant_value) &&
Smi::IsValid(constant_value)) {
- return m.SmiConstant(Smi::FromInt(constant_value));
+ return m->SmiConstant(Smi::FromInt(constant_value));
}
- return m.WordShl(value, m.IntPtrConstant(kSmiShiftSize + kSmiTagSize));
+ return m->WordShl(value, m->IntPtrConstant(kSmiShiftSize + kSmiTagSize));
}
-Node* UndefinedConstant(CodeAssembler& m) { // NOLINT(runtime/references)
- return m.LoadRoot(RootIndex::kUndefinedValue);
+Node* UndefinedConstant(CodeAssembler* m) {
+ return m->LoadRoot(RootIndex::kUndefinedValue);
}
-Node* SmiFromInt32(CodeAssembler& m, // NOLINT(runtime/references)
- Node* value) {
- value = m.ChangeInt32ToIntPtr(value);
- return m.BitcastWordToTaggedSigned(
- m.WordShl(value, kSmiShiftSize + kSmiTagSize));
+Node* SmiFromInt32(CodeAssembler* m, Node* value) {
+ value = m->ChangeInt32ToIntPtr(value);
+ return m->BitcastWordToTaggedSigned(
+ m->WordShl(value, kSmiShiftSize + kSmiTagSize));
}
-Node* LoadObjectField(CodeAssembler& m, // NOLINT(runtime/references)
- Node* object, int offset,
+Node* LoadObjectField(CodeAssembler* m, Node* object, int offset,
MachineType type = MachineType::AnyTagged()) {
- return m.Load(type, object, m.IntPtrConstant(offset - kHeapObjectTag));
+ return m->Load(type, object, m->IntPtrConstant(offset - kHeapObjectTag));
}
-Node* LoadMap(CodeAssembler& m, // NOLINT(runtime/references)
- Node* object) {
+Node* LoadMap(CodeAssembler* m, Node* object) {
return LoadObjectField(m, object, JSObject::kMapOffset);
}
@@ -59,7 +54,7 @@ TEST(SimpleSmiReturn) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
- m.Return(SmiTag(m, m.Int32Constant(37)));
+ m.Return(SmiTag(&m, m.Int32Constant(37)));
FunctionTester ft(asm_tester.GenerateCode());
CHECK_EQ(37, ft.CallChecked<Smi>()->value());
}
@@ -91,7 +86,7 @@ TEST(SimpleCallRuntime1Arg) {
CodeAssembler m(asm_tester.state());
TNode<Context> context =
m.HeapConstant(Handle<Context>(isolate->native_context()));
- Node* b = SmiTag(m, m.Int32Constant(0));
+ Node* b = SmiTag(&m, m.Int32Constant(0));
m.Return(m.CallRuntime(Runtime::kIsSmi, context, b));
FunctionTester ft(asm_tester.GenerateCode());
CHECK(ft.CallChecked<Oddball>().is_identical_to(
@@ -104,7 +99,7 @@ TEST(SimpleTailCallRuntime1Arg) {
CodeAssembler m(asm_tester.state());
TNode<Context> context =
m.HeapConstant(Handle<Context>(isolate->native_context()));
- Node* b = SmiTag(m, m.Int32Constant(0));
+ Node* b = SmiTag(&m, m.Int32Constant(0));
m.TailCallRuntime(Runtime::kIsSmi, context, b);
FunctionTester ft(asm_tester.GenerateCode());
CHECK(ft.CallChecked<Oddball>().is_identical_to(
@@ -117,8 +112,8 @@ TEST(SimpleCallRuntime2Arg) {
CodeAssembler m(asm_tester.state());
TNode<Context> context =
m.HeapConstant(Handle<Context>(isolate->native_context()));
- Node* a = SmiTag(m, m.Int32Constant(2));
- Node* b = SmiTag(m, m.Int32Constant(4));
+ Node* a = SmiTag(&m, m.Int32Constant(2));
+ Node* b = SmiTag(&m, m.Int32Constant(4));
m.Return(m.CallRuntime(Runtime::kAdd, context, a, b));
FunctionTester ft(asm_tester.GenerateCode());
CHECK_EQ(6, ft.CallChecked<Smi>()->value());
@@ -130,8 +125,8 @@ TEST(SimpleTailCallRuntime2Arg) {
CodeAssembler m(asm_tester.state());
TNode<Context> context =
m.HeapConstant(Handle<Context>(isolate->native_context()));
- Node* a = SmiTag(m, m.Int32Constant(2));
- Node* b = SmiTag(m, m.Int32Constant(4));
+ Node* a = SmiTag(&m, m.Int32Constant(2));
+ Node* b = SmiTag(&m, m.Int32Constant(4));
m.TailCallRuntime(Runtime::kAdd, context, a, b);
FunctionTester ft(asm_tester.GenerateCode());
CHECK_EQ(6, ft.CallChecked<Smi>()->value());
@@ -139,8 +134,7 @@ TEST(SimpleTailCallRuntime2Arg) {
namespace {
-Handle<JSFunction> CreateSumAllArgumentsFunction(
- FunctionTester& ft) { // NOLINT(runtime/references)
+Handle<JSFunction> CreateSumAllArgumentsFunction(FunctionTester* ft) {
const char* source =
"(function() {\n"
" var sum = 0 + this;\n"
@@ -149,7 +143,7 @@ Handle<JSFunction> CreateSumAllArgumentsFunction(
" }\n"
" return sum;\n"
"})";
- return ft.NewFunction(source);
+ return ft->NewFunction(source);
}
} // namespace
@@ -163,7 +157,7 @@ TEST(SimpleCallJSFunction0Arg) {
Node* function = m.Parameter(0);
Node* context = m.Parameter(kNumParams + 2);
- Node* receiver = SmiTag(m, m.Int32Constant(42));
+ Node* receiver = SmiTag(&m, m.Int32Constant(42));
Callable callable = CodeFactory::Call(isolate);
Node* result = m.CallJS(callable, context, function, receiver);
@@ -171,7 +165,7 @@ TEST(SimpleCallJSFunction0Arg) {
}
FunctionTester ft(asm_tester.GenerateCode(), kNumParams);
- Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+ Handle<JSFunction> sum = CreateSumAllArgumentsFunction(&ft);
MaybeHandle<Object> result = ft.Call(sum);
CHECK_EQ(Smi::FromInt(42), *result.ToHandleChecked());
}
@@ -185,8 +179,8 @@ TEST(SimpleCallJSFunction1Arg) {
Node* function = m.Parameter(0);
Node* context = m.Parameter(1);
- Node* receiver = SmiTag(m, m.Int32Constant(42));
- Node* a = SmiTag(m, m.Int32Constant(13));
+ Node* receiver = SmiTag(&m, m.Int32Constant(42));
+ Node* a = SmiTag(&m, m.Int32Constant(13));
Callable callable = CodeFactory::Call(isolate);
Node* result = m.CallJS(callable, context, function, receiver, a);
@@ -194,7 +188,7 @@ TEST(SimpleCallJSFunction1Arg) {
}
FunctionTester ft(asm_tester.GenerateCode(), kNumParams);
- Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+ Handle<JSFunction> sum = CreateSumAllArgumentsFunction(&ft);
MaybeHandle<Object> result = ft.Call(sum);
CHECK_EQ(Smi::FromInt(55), *result.ToHandleChecked());
}
@@ -208,9 +202,9 @@ TEST(SimpleCallJSFunction2Arg) {
Node* function = m.Parameter(0);
Node* context = m.Parameter(1);
- Node* receiver = SmiTag(m, m.Int32Constant(42));
- Node* a = SmiTag(m, m.Int32Constant(13));
- Node* b = SmiTag(m, m.Int32Constant(153));
+ Node* receiver = SmiTag(&m, m.Int32Constant(42));
+ Node* a = SmiTag(&m, m.Int32Constant(13));
+ Node* b = SmiTag(&m, m.Int32Constant(153));
Callable callable = CodeFactory::Call(isolate);
Node* result = m.CallJS(callable, context, function, receiver, a, b);
@@ -218,7 +212,7 @@ TEST(SimpleCallJSFunction2Arg) {
}
FunctionTester ft(asm_tester.GenerateCode(), kNumParams);
- Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+ Handle<JSFunction> sum = CreateSumAllArgumentsFunction(&ft);
MaybeHandle<Object> result = ft.Call(sum);
CHECK_EQ(Smi::FromInt(208), *result.ToHandleChecked());
}
@@ -228,7 +222,7 @@ TEST(VariableMerge1) {
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
Variable var1(&m, MachineRepresentation::kTagged);
- Label l1(&m), l2(&m), merge(&m);
+ CodeAssemblerLabel l1(&m), l2(&m), merge(&m);
TNode<Int32T> temp = m.Int32Constant(0);
var1.Bind(temp);
m.Branch(m.Int32Constant(1), &l1, &l2);
@@ -247,7 +241,7 @@ TEST(VariableMerge2) {
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
Variable var1(&m, MachineRepresentation::kTagged);
- Label l1(&m), l2(&m), merge(&m);
+ CodeAssemblerLabel l1(&m), l2(&m), merge(&m);
TNode<Int32T> temp = m.Int32Constant(0);
var1.Bind(temp);
m.Branch(m.Int32Constant(1), &l1, &l2);
@@ -269,7 +263,7 @@ TEST(VariableMerge3) {
CodeAssembler m(asm_tester.state());
Variable var1(&m, MachineRepresentation::kTagged);
Variable var2(&m, MachineRepresentation::kTagged);
- Label l1(&m), l2(&m), merge(&m);
+ CodeAssemblerLabel l1(&m), l2(&m), merge(&m);
TNode<Int32T> temp = m.Int32Constant(0);
var1.Bind(temp);
var2.Bind(temp);
@@ -293,7 +287,7 @@ TEST(VariableMergeBindFirst) {
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
Variable var1(&m, MachineRepresentation::kTagged);
- Label l1(&m), l2(&m), merge(&m, &var1), end(&m);
+ CodeAssemblerLabel l1(&m), l2(&m), merge(&m, &var1), end(&m);
TNode<Int32T> temp = m.Int32Constant(0);
var1.Bind(temp);
m.Branch(m.Int32Constant(1), &l1, &l2);
@@ -319,8 +313,8 @@ TEST(VariableMergeSwitch) {
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
Variable var1(&m, MachineRepresentation::kTagged);
- Label l1(&m), l2(&m), default_label(&m);
- Label* labels[] = {&l1, &l2};
+ CodeAssemblerLabel l1(&m), l2(&m), default_label(&m);
+ CodeAssemblerLabel* labels[] = {&l1, &l2};
int32_t values[] = {1, 2};
TNode<Smi> temp1 = m.SmiConstant(0);
var1.Bind(temp1);
@@ -345,7 +339,7 @@ TEST(SplitEdgeBranchMerge) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
- Label l1(&m), merge(&m);
+ CodeAssemblerLabel l1(&m), merge(&m);
m.Branch(m.Int32Constant(1), &l1, &merge);
m.Bind(&l1);
m.Goto(&merge);
@@ -357,8 +351,8 @@ TEST(SplitEdgeSwitchMerge) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
- Label l1(&m), l2(&m), l3(&m), default_label(&m);
- Label* labels[] = {&l1, &l2};
+ CodeAssemblerLabel l1(&m), l2(&m), l3(&m), default_label(&m);
+ CodeAssemblerLabel* labels[] = {&l1, &l2};
int32_t values[] = {1, 2};
m.Branch(m.Int32Constant(1), &l3, &l1);
m.Bind(&l3);
@@ -389,11 +383,11 @@ TEST(TestToConstant) {
CHECK(m.ToInt32Constant(a, &value32));
CHECK(m.ToInt64Constant(a, &value64));
- a = UndefinedConstant(m);
+ a = UndefinedConstant(&m);
CHECK(!m.ToInt32Constant(a, &value32));
CHECK(!m.ToInt64Constant(a, &value64));
- a = UndefinedConstant(m);
+ a = UndefinedConstant(&m);
CHECK(!m.ToInt32Constant(a, &value32));
CHECK(!m.ToInt64Constant(a, &value64));
}
@@ -402,17 +396,17 @@ TEST(DeferredCodePhiHints) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
- Label block1(&m, Label::kDeferred);
+ CodeAssemblerLabel block1(&m, CodeAssemblerLabel::kDeferred);
m.Goto(&block1);
m.Bind(&block1);
{
Variable var_object(&m, MachineRepresentation::kTagged);
- Label loop(&m, &var_object);
+ CodeAssemblerLabel loop(&m, &var_object);
var_object.Bind(m.SmiConstant(0));
m.Goto(&loop);
m.Bind(&loop);
{
- Node* map = LoadMap(m, var_object.value());
+ Node* map = LoadMap(&m, var_object.value());
var_object.Bind(map);
m.Goto(&loop);
}
@@ -424,10 +418,10 @@ TEST(TestOutOfScopeVariable) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate);
CodeAssembler m(asm_tester.state());
- Label block1(&m);
- Label block2(&m);
- Label block3(&m);
- Label block4(&m);
+ CodeAssemblerLabel block1(&m);
+ CodeAssemblerLabel block2(&m);
+ CodeAssemblerLabel block3(&m);
+ CodeAssemblerLabel block4(&m);
m.Branch(m.WordEqual(m.UncheckedCast<IntPtrT>(m.Parameter(0)),
m.IntPtrConstant(0)),
&block1, &block4);
@@ -463,7 +457,7 @@ TEST(GotoIfException) {
m.HeapConstant(isolate->factory()->to_string_tag_symbol());
Variable exception(&m, MachineRepresentation::kTagged);
- Label exception_handler(&m);
+ CodeAssemblerLabel exception_handler(&m);
Callable to_string = Builtins::CallableFor(isolate, Builtins::kToString);
TNode<Object> string = m.CallStub(to_string, context, to_string_tag);
m.GotoIfException(string, &exception_handler, &exception);
@@ -498,9 +492,9 @@ TEST(GotoIfExceptionMultiple) {
Node* second_value = m.Parameter(1);
Node* third_value = m.Parameter(2);
- Label exception_handler1(&m);
- Label exception_handler2(&m);
- Label exception_handler3(&m);
+ CodeAssemblerLabel exception_handler1(&m);
+ CodeAssemblerLabel exception_handler2(&m);
+ CodeAssemblerLabel exception_handler3(&m);
Variable return_value(&m, MachineRepresentation::kWord32);
Variable error(&m, MachineRepresentation::kTagged);
@@ -515,20 +509,20 @@ TEST(GotoIfExceptionMultiple) {
// try { ToString(param2); return 7 } catch (e) { ... }
m.Bind(&exception_handler1);
return_value.Bind(m.Int32Constant(7));
- error.Bind(UndefinedConstant(m));
+ error.Bind(UndefinedConstant(&m));
string = m.CallStub(to_string, context, second_value);
m.GotoIfException(string, &exception_handler2, &error);
- m.Return(SmiFromInt32(m, return_value.value()));
+ m.Return(SmiFromInt32(&m, return_value.value()));
// try { ToString(param3); return 7 & ~2; } catch (e) { return e; }
m.Bind(&exception_handler2);
// Return returnValue & ~2
- error.Bind(UndefinedConstant(m));
+ error.Bind(UndefinedConstant(&m));
string = m.CallStub(to_string, context, third_value);
m.GotoIfException(string, &exception_handler3, &error);
m.Return(SmiFromInt32(
- m, m.Word32And(return_value.value(),
- m.Word32Xor(m.Int32Constant(2), m.Int32Constant(-1)))));
+ &m, m.Word32And(return_value.value(),
+ m.Word32Xor(m.Int32Constant(2), m.Int32Constant(-1)))));
m.Bind(&exception_handler3);
m.Return(error.value());
@@ -578,7 +572,7 @@ TEST(ExceptionHandler) {
CodeAssembler m(asm_tester.state());
CodeAssembler::TVariable<Object> var(m.SmiConstant(0), &m);
- Label exception(&m, {&var}, Label::kDeferred);
+ CodeAssemblerLabel exception(&m, {&var}, CodeAssemblerLabel::kDeferred);
{
CodeAssemblerScopedExceptionHandler handler(&m, &exception, &var);
TNode<Context> context =