Index: test/cctest/compiler/test-run-native-calls.cc |
diff --git a/test/cctest/compiler/test-run-native-calls.cc b/test/cctest/compiler/test-run-native-calls.cc |
index af3748b8fd1b8049445a3155b8ecda39b779b1fa..bc6acf1bc97b4d57cc777ce9846cc03e898f8e30 100644 |
--- a/test/cctest/compiler/test-run-native-calls.cc |
+++ b/test/cctest/compiler/test-run-native-calls.cc |
@@ -7,7 +7,6 @@ |
#include "src/compiler/linkage.h" |
#include "src/compiler/machine-type.h" |
#include "src/compiler/raw-machine-assembler.h" |
-#include "src/register-configuration.h" |
#include "test/cctest/cctest.h" |
#include "test/cctest/compiler/codegen-tester.h" |
@@ -36,9 +35,8 @@ |
// to select a representative set. |
class Pairs { |
public: |
- Pairs(int max_pairs, int range, const int* codes) |
+ Pairs(int max_pairs, int range) |
: range_(range), |
- codes_(codes), |
max_pairs_(std::min(max_pairs, range_ * range_)), |
counter_(0) {} |
@@ -48,33 +46,37 @@ |
do { |
// Find the next pair. |
if (exhaustive()) { |
- *r0 = codes_[counter_ % range_]; |
- *r1 = codes_[counter_ / range_]; |
+ *r0 = counter_ % range_; |
+ *r1 = counter_ / range_; |
} else { |
// Try each integer at least once for both r0 and r1. |
int index = counter_ / 2; |
if (counter_ & 1) { |
- *r0 = codes_[index % range_]; |
- *r1 = codes_[index / range_]; |
+ *r0 = index % range_; |
+ *r1 = index / range_; |
} else { |
- *r1 = codes_[index % range_]; |
- *r0 = codes_[index / range_]; |
+ *r1 = index % range_; |
+ *r0 = index / range_; |
} |
} |
counter_++; |
- if ((same_is_ok) || (*r0 != *r1)) break; |
- if (counter_ == max_pairs_) { |
- // For the last hurrah, reg#0 with reg#n-1 |
- *r0 = codes_[0]; |
- *r1 = codes_[range_ - 1]; |
- break; |
+ if (same_is_ok) break; |
+ if (*r0 == *r1) { |
+ if (counter_ >= max_pairs_) { |
+ // For the last hurrah, reg#0 with reg#n-1 |
+ *r0 = 0; |
+ *r1 = range_ - 1; |
+ break; |
+ } |
} |
} while (true); |
+ |
+ DCHECK(*r0 >= 0 && *r0 < range_); |
+ DCHECK(*r1 >= 0 && *r1 < range_); |
} |
private: |
int range_; |
- const int* codes_; |
int max_pairs_; |
int counter_; |
bool exhaustive() { return max_pairs_ == (range_ * range_); } |
@@ -84,12 +86,7 @@ |
// Pairs of general purpose registers. |
class RegisterPairs : public Pairs { |
public: |
- RegisterPairs() |
- : Pairs( |
- 100, RegisterConfiguration::ArchDefault() |
- ->num_allocatable_general_registers(), |
- RegisterConfiguration::ArchDefault()->allocatable_general_codes()) { |
- } |
+ RegisterPairs() : Pairs(100, Register::kMaxNumAllocatableRegisters) {} |
}; |
@@ -97,10 +94,7 @@ |
class Float32RegisterPairs : public Pairs { |
public: |
Float32RegisterPairs() |
- : Pairs( |
- 100, RegisterConfiguration::ArchDefault() |
- ->num_allocatable_aliased_double_registers(), |
- RegisterConfiguration::ArchDefault()->allocatable_double_codes()) {} |
+ : Pairs(100, DoubleRegister::NumAllocatableAliasedRegisters()) {} |
}; |
@@ -108,10 +102,7 @@ |
class Float64RegisterPairs : public Pairs { |
public: |
Float64RegisterPairs() |
- : Pairs( |
- 100, RegisterConfiguration::ArchDefault() |
- ->num_allocatable_aliased_double_registers(), |
- RegisterConfiguration::ArchDefault()->allocatable_double_codes()) {} |
+ : Pairs(100, DoubleRegister::NumAllocatableAliasedRegisters()) {} |
}; |
@@ -633,12 +624,9 @@ |
// Separate tests for parallelization. |
-#define TEST_INT32_SUB_WITH_RET(x) \ |
- TEST(Run_Int32Sub_all_allocatable_pairs_##x) { \ |
- if (x < Register::kNumRegisters && \ |
- Register::from_code(x).IsAllocatable()) { \ |
- Test_RunInt32SubWithRet(x); \ |
- } \ |
+#define TEST_INT32_SUB_WITH_RET(x) \ |
+ TEST(Run_Int32Sub_all_allocatable_pairs_##x) { \ |
+ if (Register::kMaxNumAllocatableRegisters > x) Test_RunInt32SubWithRet(x); \ |
} |
@@ -689,8 +677,7 @@ |
while (pairs.More()) { |
Zone zone; |
int parray[2]; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
+ int rarray[] = {0}; |
pairs.Next(&parray[0], &parray[1], false); |
Allocator params(parray, 2, nullptr, 0); |
Allocator rets(rarray, 1, nullptr, 0); |
@@ -737,20 +724,17 @@ |
static void Test_Int32_WeightedSum_of_size(int count) { |
if (DISABLE_NATIVE_STACK_PARAMS) return; |
Int32Signature sig(count); |
- for (int p0 = 0; p0 < Register::kNumRegisters; p0++) { |
- if (Register::from_code(p0).IsAllocatable()) { |
- Zone zone; |
- |
- int parray[] = {p0}; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
- Allocator params(parray, 1, nullptr, 0); |
- Allocator rets(rarray, 1, nullptr, 0); |
- RegisterConfig config(params, rets); |
- CallDescriptor* desc = config.Create(&zone, &sig); |
- Run_Computation<int32_t>(desc, Build_Int32_WeightedSum, |
- Compute_Int32_WeightedSum, 257 + count); |
- } |
+ for (int p0 = 0; p0 < Register::kMaxNumAllocatableRegisters; p0++) { |
+ Zone zone; |
+ |
+ int parray[] = {p0}; |
+ int rarray[] = {0}; |
+ Allocator params(parray, 1, nullptr, 0); |
+ Allocator rets(rarray, 1, nullptr, 0); |
+ RegisterConfig config(params, rets); |
+ CallDescriptor* desc = config.Create(&zone, &sig); |
+ Run_Computation<int32_t>(desc, Build_Int32_WeightedSum, |
+ Compute_Int32_WeightedSum, 257 + count); |
} |
} |
@@ -798,10 +782,8 @@ |
void Test_Int32_Select() { |
if (DISABLE_NATIVE_STACK_PARAMS) return; |
- int parray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
+ int parray[] = {0}; |
+ int rarray[] = {0}; |
Allocator params(parray, 1, nullptr, 0); |
Allocator rets(rarray, 1, nullptr, 0); |
RegisterConfig config(params, rets); |
@@ -837,13 +819,10 @@ |
TEST(Int64Select_registers) { |
- if (RegisterConfiguration::ArchDefault() |
- ->num_allocatable_general_registers() < 2) |
- return; |
+ if (Register::kMaxNumAllocatableRegisters < 2) return; |
if (kPointerSize < 8) return; // TODO(titzer): int64 on 32-bit platforms |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
+ int rarray[] = {0}; |
ArgsBuffer<int64_t>::Sig sig(2); |
RegisterPairs pairs; |
@@ -863,13 +842,9 @@ |
TEST(Float32Select_registers) { |
- if (RegisterConfiguration::ArchDefault()->num_allocatable_double_registers() < |
- 2) { |
- return; |
- } |
- |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
+ if (RegisterConfiguration::ArchDefault()->num_double_registers() < 2) return; |
+ |
+ int rarray[] = {0}; |
ArgsBuffer<float32>::Sig sig(2); |
Float32RegisterPairs pairs; |
@@ -889,14 +864,9 @@ |
TEST(Float64Select_registers) { |
- if (RegisterConfiguration::ArchDefault()->num_allocatable_double_registers() < |
- 2) |
- return; |
- if (RegisterConfiguration::ArchDefault() |
- ->num_allocatable_general_registers() < 2) |
- return; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
+ if (RegisterConfiguration::ArchDefault()->num_double_registers() < 2) return; |
+ |
+ int rarray[] = {0}; |
ArgsBuffer<float64>::Sig sig(2); |
Float64RegisterPairs pairs; |
@@ -917,8 +887,7 @@ |
TEST(Float32Select_stack_params_return_reg) { |
if (DISABLE_NATIVE_STACK_PARAMS) return; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
+ int rarray[] = {0}; |
Allocator params(nullptr, 0, nullptr, 0); |
Allocator rets(nullptr, 0, rarray, 1); |
RegisterConfig config(params, rets); |
@@ -939,8 +908,7 @@ |
TEST(Float64Select_stack_params_return_reg) { |
if (DISABLE_NATIVE_STACK_PARAMS) return; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
+ int rarray[] = {0}; |
Allocator params(nullptr, 0, nullptr, 0); |
Allocator rets(nullptr, 0, rarray, 1); |
RegisterConfig config(params, rets); |
@@ -994,8 +962,7 @@ |
TEST(Float64StackParamsToStackParams) { |
if (DISABLE_NATIVE_STACK_PARAMS) return; |
- int rarray[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
+ int rarray[] = {0}; |
Allocator params(nullptr, 0, nullptr, 0); |
Allocator rets(nullptr, 0, rarray, 1); |
@@ -1038,18 +1005,10 @@ |
const int num_params = static_cast<int>(arraysize(types) - start); |
// Build call descriptor |
- int parray_gp[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0), |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(1)}; |
- int rarray_gp[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableGeneralCode(0)}; |
- int parray_fp[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0), |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(1)}; |
- int rarray_fp[] = { |
- RegisterConfiguration::ArchDefault()->GetAllocatableDoubleCode(0)}; |
- Allocator palloc(parray_gp, 2, parray_fp, 2); |
- Allocator ralloc(rarray_gp, 1, rarray_fp, 1); |
+ int parray[] = {0, 1}; |
+ int rarray[] = {0}; |
+ Allocator palloc(parray, 2, parray, 2); |
+ Allocator ralloc(rarray, 1, rarray, 1); |
RegisterConfig config(palloc, ralloc); |
for (int which = 0; which < num_params; which++) { |