| Index: test/cctest/compiler/test-run-machops.cc
|
| diff --git a/test/cctest/compiler/test-run-machops.cc b/test/cctest/compiler/test-run-machops.cc
|
| index 4fa2938bd6eb98874dc9ef2b4bf2b9e98778ef17..c660a7319d75325c81bdd1be69e32a36d4d36406 100644
|
| --- a/test/cctest/compiler/test-run-machops.cc
|
| +++ b/test/cctest/compiler/test-run-machops.cc
|
| @@ -3903,8 +3903,9 @@ TEST(RunInt32AddWithOverflowP) {
|
| int32_t actual_val = -1;
|
| RawMachineAssemblerTester<int32_t> m;
|
| Int32BinopTester bt(&m);
|
| - Node* val, *ovf;
|
| - m.Int32AddWithOverflow(bt.param0, bt.param1, &val, &ovf);
|
| + Node* add = m.Int32AddWithOverflow(bt.param0, bt.param1);
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| bt.AddReturn(ovf);
|
| FOR_INT32_INPUTS(i) {
|
| @@ -3923,8 +3924,9 @@ TEST(RunInt32AddWithOverflowImm) {
|
| FOR_INT32_INPUTS(i) {
|
| {
|
| RawMachineAssemblerTester<int32_t> m(kMachineWord32);
|
| - Node* val, *ovf;
|
| - m.Int32AddWithOverflow(m.Int32Constant(*i), m.Parameter(0), &val, &ovf);
|
| + Node* add = m.Int32AddWithOverflow(m.Int32Constant(*i), m.Parameter(0));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| @@ -3935,8 +3937,9 @@ TEST(RunInt32AddWithOverflowImm) {
|
| }
|
| {
|
| RawMachineAssemblerTester<int32_t> m(kMachineWord32);
|
| - Node* val, *ovf;
|
| - m.Int32AddWithOverflow(m.Parameter(0), m.Int32Constant(*i), &val, &ovf);
|
| + Node* add = m.Int32AddWithOverflow(m.Parameter(0), m.Int32Constant(*i));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| @@ -3947,9 +3950,10 @@ TEST(RunInt32AddWithOverflowImm) {
|
| }
|
| FOR_INT32_INPUTS(j) {
|
| RawMachineAssemblerTester<int32_t> m;
|
| - Node* val, *ovf;
|
| - m.Int32AddWithOverflow(m.Int32Constant(*i), m.Int32Constant(*j), &val,
|
| - &ovf);
|
| + Node* add =
|
| + m.Int32AddWithOverflow(m.Int32Constant(*i), m.Int32Constant(*j));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| int expected_ovf = sadd_overflow(*i, *j, &expected_val);
|
| @@ -3961,20 +3965,22 @@ TEST(RunInt32AddWithOverflowImm) {
|
|
|
|
|
| TEST(RunInt32AddWithOverflowInBranchP) {
|
| + int constant = 911777;
|
| MLabel blocka, blockb;
|
| RawMachineAssemblerTester<int32_t> m;
|
| Int32BinopTester bt(&m);
|
| - Node* val, *ovf;
|
| - m.Int32AddWithOverflow(bt.param0, bt.param1, &val, &ovf);
|
| + Node* add = m.Int32AddWithOverflow(bt.param0, bt.param1);
|
| + Node* ovf = m.Projection(1, add);
|
| m.Branch(ovf, &blocka, &blockb);
|
| m.Bind(&blocka);
|
| - bt.AddReturn(m.Word32Not(val));
|
| + bt.AddReturn(m.Int32Constant(constant));
|
| m.Bind(&blockb);
|
| + Node* val = m.Projection(0, add);
|
| bt.AddReturn(val);
|
| FOR_UINT32_INPUTS(i) {
|
| FOR_UINT32_INPUTS(j) {
|
| int32_t expected;
|
| - if (sadd_overflow(*i, *j, &expected)) expected = ~expected;
|
| + if (sadd_overflow(*i, *j, &expected)) expected = constant;
|
| CHECK_EQ(expected, bt.call(*i, *j));
|
| }
|
| }
|
| @@ -3985,8 +3991,9 @@ TEST(RunInt32SubWithOverflowP) {
|
| int32_t actual_val = -1;
|
| RawMachineAssemblerTester<int32_t> m;
|
| Int32BinopTester bt(&m);
|
| - Node* val, *ovf;
|
| - m.Int32SubWithOverflow(bt.param0, bt.param1, &val, &ovf);
|
| + Node* add = m.Int32SubWithOverflow(bt.param0, bt.param1);
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| bt.AddReturn(ovf);
|
| FOR_INT32_INPUTS(i) {
|
| @@ -4005,8 +4012,9 @@ TEST(RunInt32SubWithOverflowImm) {
|
| FOR_INT32_INPUTS(i) {
|
| {
|
| RawMachineAssemblerTester<int32_t> m(kMachineWord32);
|
| - Node* val, *ovf;
|
| - m.Int32SubWithOverflow(m.Int32Constant(*i), m.Parameter(0), &val, &ovf);
|
| + Node* add = m.Int32SubWithOverflow(m.Int32Constant(*i), m.Parameter(0));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| @@ -4017,8 +4025,9 @@ TEST(RunInt32SubWithOverflowImm) {
|
| }
|
| {
|
| RawMachineAssemblerTester<int32_t> m(kMachineWord32);
|
| - Node* val, *ovf;
|
| - m.Int32SubWithOverflow(m.Parameter(0), m.Int32Constant(*i), &val, &ovf);
|
| + Node* add = m.Int32SubWithOverflow(m.Parameter(0), m.Int32Constant(*i));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| @@ -4029,9 +4038,10 @@ TEST(RunInt32SubWithOverflowImm) {
|
| }
|
| FOR_INT32_INPUTS(j) {
|
| RawMachineAssemblerTester<int32_t> m;
|
| - Node* val, *ovf;
|
| - m.Int32SubWithOverflow(m.Int32Constant(*i), m.Int32Constant(*j), &val,
|
| - &ovf);
|
| + Node* add =
|
| + m.Int32SubWithOverflow(m.Int32Constant(*i), m.Int32Constant(*j));
|
| + Node* val = m.Projection(0, add);
|
| + Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachineWord32, val);
|
| m.Return(ovf);
|
| int expected_ovf = ssub_overflow(*i, *j, &expected_val);
|
| @@ -4043,20 +4053,22 @@ TEST(RunInt32SubWithOverflowImm) {
|
|
|
|
|
| TEST(RunInt32SubWithOverflowInBranchP) {
|
| + int constant = 911999;
|
| MLabel blocka, blockb;
|
| RawMachineAssemblerTester<int32_t> m;
|
| Int32BinopTester bt(&m);
|
| - Node* val, *ovf;
|
| - m.Int32SubWithOverflow(bt.param0, bt.param1, &val, &ovf);
|
| + Node* sub = m.Int32SubWithOverflow(bt.param0, bt.param1);
|
| + Node* ovf = m.Projection(1, sub);
|
| m.Branch(ovf, &blocka, &blockb);
|
| m.Bind(&blocka);
|
| - bt.AddReturn(m.Word32Not(val));
|
| + bt.AddReturn(m.Int32Constant(constant));
|
| m.Bind(&blockb);
|
| + Node* val = m.Projection(0, sub);
|
| bt.AddReturn(val);
|
| FOR_UINT32_INPUTS(i) {
|
| FOR_UINT32_INPUTS(j) {
|
| int32_t expected;
|
| - if (ssub_overflow(*i, *j, &expected)) expected = ~expected;
|
| + if (ssub_overflow(*i, *j, &expected)) expected = constant;
|
| CHECK_EQ(expected, bt.call(*i, *j));
|
| }
|
| }
|
|
|