| 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 4841bbb1b6954d98c7b23efd1194ae66e4b012e0..4c3ed4db8d0adf8b23958ae6d2eb3809e3212981 100644
|
| --- a/test/cctest/compiler/test-run-machops.cc
|
| +++ b/test/cctest/compiler/test-run-machops.cc
|
| @@ -4016,22 +4016,6 @@ TEST(RunSpillLotsOfThingsWithCall) {
|
| #endif // MACHINE_ASSEMBLER_SUPPORTS_CALL_C
|
|
|
|
|
| -static bool sadd_overflow(int32_t x, int32_t y, int32_t* val) {
|
| - int32_t v =
|
| - static_cast<int32_t>(static_cast<uint32_t>(x) + static_cast<uint32_t>(y));
|
| - *val = v;
|
| - return (((v ^ x) & (v ^ y)) >> 31) & 1;
|
| -}
|
| -
|
| -
|
| -static bool ssub_overflow(int32_t x, int32_t y, int32_t* val) {
|
| - int32_t v =
|
| - static_cast<int32_t>(static_cast<uint32_t>(x) - static_cast<uint32_t>(y));
|
| - *val = v;
|
| - return (((v ^ x) & (v ^ ~y)) >> 31) & 1;
|
| -}
|
| -
|
| -
|
| TEST(RunInt32AddWithOverflowP) {
|
| int32_t actual_val = -1;
|
| RawMachineAssemblerTester<int32_t> m;
|
| @@ -4044,7 +4028,7 @@ TEST(RunInt32AddWithOverflowP) {
|
| FOR_INT32_INPUTS(i) {
|
| FOR_INT32_INPUTS(j) {
|
| int32_t expected_val;
|
| - int expected_ovf = sadd_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedAddOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, bt.call(*i, *j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4063,7 +4047,7 @@ TEST(RunInt32AddWithOverflowImm) {
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| - int expected_ovf = sadd_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedAddOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call(*j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4076,7 +4060,7 @@ TEST(RunInt32AddWithOverflowImm) {
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| - int expected_ovf = sadd_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedAddOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call(*j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4089,7 +4073,7 @@ TEST(RunInt32AddWithOverflowImm) {
|
| Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| - int expected_ovf = sadd_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedAddOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call());
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4113,7 +4097,7 @@ TEST(RunInt32AddWithOverflowInBranchP) {
|
| FOR_INT32_INPUTS(i) {
|
| FOR_INT32_INPUTS(j) {
|
| int32_t expected;
|
| - if (sadd_overflow(*i, *j, &expected)) expected = constant;
|
| + if (bits::SignedAddOverflow32(*i, *j, &expected)) expected = constant;
|
| CHECK_EQ(expected, bt.call(*i, *j));
|
| }
|
| }
|
| @@ -4132,7 +4116,7 @@ TEST(RunInt32SubWithOverflowP) {
|
| FOR_INT32_INPUTS(i) {
|
| FOR_INT32_INPUTS(j) {
|
| int32_t expected_val;
|
| - int expected_ovf = ssub_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedSubOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, bt.call(*i, *j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4151,7 +4135,7 @@ TEST(RunInt32SubWithOverflowImm) {
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| - int expected_ovf = ssub_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedSubOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call(*j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4164,7 +4148,7 @@ TEST(RunInt32SubWithOverflowImm) {
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| FOR_INT32_INPUTS(j) {
|
| - int expected_ovf = ssub_overflow(*j, *i, &expected_val);
|
| + int expected_ovf = bits::SignedSubOverflow32(*j, *i, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call(*j));
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4177,7 +4161,7 @@ TEST(RunInt32SubWithOverflowImm) {
|
| Node* ovf = m.Projection(1, add);
|
| m.StoreToPointer(&actual_val, kMachInt32, val);
|
| m.Return(ovf);
|
| - int expected_ovf = ssub_overflow(*i, *j, &expected_val);
|
| + int expected_ovf = bits::SignedSubOverflow32(*i, *j, &expected_val);
|
| CHECK_EQ(expected_ovf, m.Call());
|
| CHECK_EQ(expected_val, actual_val);
|
| }
|
| @@ -4201,7 +4185,7 @@ TEST(RunInt32SubWithOverflowInBranchP) {
|
| FOR_INT32_INPUTS(i) {
|
| FOR_INT32_INPUTS(j) {
|
| int32_t expected;
|
| - if (ssub_overflow(*i, *j, &expected)) expected = constant;
|
| + if (bits::SignedSubOverflow32(*i, *j, &expected)) expected = constant;
|
| CHECK_EQ(expected, bt.call(*i, *j));
|
| }
|
| }
|
|
|