Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(532)

Side by Side Diff: test/cctest/compiler/test-run-machops.cc

Issue 1423923003: Removed the dependency of the test RunComputedCodeObject from RawMachineAssemblerTester. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: GraphBuilderTester is used now instead of copying the code from RawMachineAssemblerTester Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/cctest/compiler/graph-builder-tester.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved. Use of this
2 // Use of this source code is governed by a BSD-style license that can be 2 // source code is governed by a BSD-style license that can be found in the
3 // found in the LICENSE file. 3 // LICENSE file.
4 4
5 #include <cmath> 5 #include <cmath>
6 #include <functional> 6 #include <functional>
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/base/utils/random-number-generator.h" 10 #include "src/base/utils/random-number-generator.h"
11 #include "src/codegen.h" 11 #include "src/codegen.h"
12 #include "test/cctest/cctest.h" 12 #include "test/cctest/cctest.h"
13 #include "test/cctest/compiler/codegen-tester.h" 13 #include "test/cctest/compiler/codegen-tester.h"
14 #include "test/cctest/compiler/graph-builder-tester.h"
14 #include "test/cctest/compiler/value-helper.h" 15 #include "test/cctest/compiler/value-helper.h"
15 16
16 using namespace v8::base; 17 using namespace v8::base;
17 using namespace v8::internal; 18 using namespace v8::internal;
18 using namespace v8::internal::compiler; 19 using namespace v8::internal::compiler;
19 20
20 typedef RawMachineAssembler::Label MLabel; 21 typedef RawMachineAssembler::Label MLabel;
21 22
22 TEST(RunInt32Add) { 23 TEST(RunInt32Add) {
23 RawMachineAssemblerTester<int32_t> m; 24 RawMachineAssemblerTester<int32_t> m;
(...skipping 5475 matching lines...) Expand 10 before | Expand all | Expand 10 after
5499 FOR_INT32_INPUTS(i) { 5500 FOR_INT32_INPUTS(i) {
5500 input = *i; 5501 input = *i;
5501 CHECK_EQ(11, m.Call()); 5502 CHECK_EQ(11, m.Call());
5502 float expected = bit_cast<float>(input); 5503 float expected = bit_cast<float>(input);
5503 CHECK_EQ(bit_cast<int32_t>(expected), bit_cast<int32_t>(output)); 5504 CHECK_EQ(bit_cast<int32_t>(expected), bit_cast<int32_t>(output));
5504 } 5505 }
5505 } 5506 }
5506 5507
5507 5508
5508 TEST(RunComputedCodeObject) { 5509 TEST(RunComputedCodeObject) {
5509 RawMachineAssemblerTester<int32_t> a; 5510 GraphBuilderTester<int32_t> a;
5510 a.Return(a.Int32Constant(33)); 5511 a.Return(a.Int32Constant(33));
5511 CHECK_EQ(33, a.Call()); 5512 a.End();
5513 Handle<Code> code_a = a.GetCode();
5512 5514
5513 RawMachineAssemblerTester<int32_t> b; 5515 GraphBuilderTester<int32_t> b;
5514 b.Return(b.Int32Constant(44)); 5516 b.Return(b.Int32Constant(44));
5515 CHECK_EQ(44, b.Call()); 5517 b.End();
5518 Handle<Code> code_b = b.GetCode();
5516 5519
5517 RawMachineAssemblerTester<int32_t> r(kMachInt32); 5520 RawMachineAssemblerTester<int32_t> r(kMachInt32);
5518 RawMachineAssembler::Label tlabel; 5521 RawMachineAssembler::Label tlabel;
5519 RawMachineAssembler::Label flabel; 5522 RawMachineAssembler::Label flabel;
5520 RawMachineAssembler::Label merge; 5523 RawMachineAssembler::Label merge;
5521 r.Branch(r.Parameter(0), &tlabel, &flabel); 5524 r.Branch(r.Parameter(0), &tlabel, &flabel);
5522 r.Bind(&tlabel); 5525 r.Bind(&tlabel);
5523 Node* fa = r.HeapConstant(a.GetCode()); 5526 Node* fa = r.HeapConstant(code_a);
5524 r.Goto(&merge); 5527 r.Goto(&merge);
5525 r.Bind(&flabel); 5528 r.Bind(&flabel);
5526 Node* fb = r.HeapConstant(b.GetCode()); 5529 Node* fb = r.HeapConstant(code_b);
5527 r.Goto(&merge); 5530 r.Goto(&merge);
5528 r.Bind(&merge); 5531 r.Bind(&merge);
5529 Node* phi = r.Phi(kMachInt32, fa, fb); 5532 Node* phi = r.Phi(kMachInt32, fa, fb);
5530 5533
5531 // TODO(titzer): all this descriptor hackery is just to call the above 5534 // TODO(titzer): all this descriptor hackery is just to call the above
5532 // functions as code objects instead of direct addresses. 5535 // functions as code objects instead of direct addresses.
5533 CSignature0<int32_t> sig; 5536 CSignature0<int32_t> sig;
5534 CallDescriptor* c = Linkage::GetSimplifiedCDescriptor(r.zone(), &sig); 5537 CallDescriptor* c = Linkage::GetSimplifiedCDescriptor(r.zone(), &sig);
5535 LinkageLocation ret[] = {c->GetReturnLocation(0)}; 5538 LinkageLocation ret[] = {c->GetReturnLocation(0)};
5536 Signature<LinkageLocation> loc(1, 0, ret); 5539 Signature<LinkageLocation> loc(1, 0, ret);
5537 CallDescriptor* desc = new (r.zone()) CallDescriptor( // -- 5540 CallDescriptor* desc = new (r.zone()) CallDescriptor( // --
5538 CallDescriptor::kCallCodeObject, // kind 5541 CallDescriptor::kCallCodeObject, // kind
5539 kMachAnyTagged, // target_type 5542 kMachAnyTagged, // target_type
5540 c->GetInputLocation(0), // target_loc 5543 c->GetInputLocation(0), // target_loc
5541 &sig, // machine_sig 5544 &sig, // machine_sig
5542 &loc, // location_sig 5545 &loc, // location_sig
5543 0, // stack count 5546 0, // stack count
5544 Operator::kNoProperties, // properties 5547 Operator::kNoProperties, // properties
5545 c->CalleeSavedRegisters(), // callee saved 5548 c->CalleeSavedRegisters(), // callee saved
5546 c->CalleeSavedFPRegisters(), // callee saved FP 5549 c->CalleeSavedFPRegisters(), // callee saved FP
5547 CallDescriptor::kNoFlags, // flags 5550 CallDescriptor::kNoFlags, // flags
5548 "c-call-as-code"); 5551 "c-call-as-code");
5549 Node* call = r.AddNode(r.common()->Call(desc), phi); 5552 Node* call = r.AddNode(r.common()->Call(desc), phi);
5550 r.Return(call); 5553 r.Return(call);
5551 5554
5552 CHECK_EQ(33, r.Call(1)); 5555 CHECK_EQ(33, r.Call(1));
5553 CHECK_EQ(44, r.Call(0)); 5556 CHECK_EQ(44, r.Call(0));
5554 } 5557 }
OLDNEW
« no previous file with comments | « test/cctest/compiler/graph-builder-tester.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698