Reviewers: jbramley, m.m.capewell,

Message:
PTAL, this fixes cctest/test-assembler-a64/* failures.


https://codereview.chromium.org/132993011/diff/40001/test/cctest/test-assembler-a64.cc
File test/cctest/test-assembler-a64.cc (right):

https://codereview.chromium.org/132993011/diff/40001/test/cctest/test-assembler-a64.cc#newcode1128
test/cctest/test-assembler-a64.cc:1128: CcTest::InitializeVM();
Is this OK, or should I put hide it behind macro?

Description:
A64: Do not initialize VM twice in test-assembler-a64.cc.

TEST=cctest/test-assembler-a64/abs

Please review this at https://codereview.chromium.org/132993011/

SVN Base: https://v8.googlecode.com/svn/branches/experimental/a64

Affected files (+43, -18 lines):
  M test/cctest/test-assembler-a64.cc


Index: test/cctest/test-assembler-a64.cc
diff --git a/test/cctest/test-assembler-a64.cc b/test/cctest/test-assembler-a64.cc index 0ba9823c77326f1157bb730190e96c50f6995167..aac91da72b1181b299f66f7eeb390dc278452c84 100644
--- a/test/cctest/test-assembler-a64.cc
+++ b/test/cctest/test-assembler-a64.cc
@@ -104,10 +104,14 @@ static void InitializeVM() {
 #define __ masm.

 #define BUF_SIZE 8192
-#define SETUP() SETUP_SIZE(BUF_SIZE)
+#define SETUP() \ + CcTest::InitializeVM(); \
+  SETUP_SIZE(BUF_SIZE)
+
+#define SETUP_HELPER() \
+  SETUP_SIZE(BUF_SIZE)

#define INIT_V8() \ - CcTest::InitializeVM(); \ Isolate* isolate = Isolate::Current(); \ HandleScope scope(isolate); \
   ASSERT(isolate != NULL);
@@ -1108,7 +1112,7 @@ TEST(mul) {


 static void SmullHelper(int64_t expected, int64_t a, int64_t b) {
-  SETUP();
+  SETUP_HELPER();
   START();
   __ Mov(w0, a);
   __ Mov(w1, b);
@@ -1121,6 +1125,7 @@ static void SmullHelper(int64_t expected, int64_t a, int64_t b) {


 TEST(smull) {
+  CcTest::InitializeVM();
   SmullHelper(0, 0, 0);
   SmullHelper(1, 1, 1);
   SmullHelper(-1, -1, 1);
@@ -4579,7 +4584,7 @@ TEST(fmul) {

 static void FmaddFmsubDoubleHelper(double n, double m, double a,
                                    double fmadd, double fmsub) {
-  SETUP();
+  SETUP_HELPER();
   START();

   __ Fmov(d0, n);
@@ -4603,6 +4608,7 @@ static void FmaddFmsubDoubleHelper(double n, double m, double a,


 TEST(fmadd_fmsub_double) {
+  CcTest::InitializeVM();
   double inputs[] = {
     // Normal numbers, including -0.0.
     DBL_MAX, DBL_MIN, 3.25, 2.0, 0.0,
@@ -4639,6 +4645,7 @@ TEST(fmadd_fmsub_double) {


 TEST(fmadd_fmsub_double_rounding) {
+  CcTest::InitializeVM();
// Make sure we run plenty of tests where an intermediate rounding stage would
   // produce an incorrect result.
   const int limit = 1000;
@@ -4687,7 +4694,7 @@ TEST(fmadd_fmsub_double_rounding) {

 static void FmaddFmsubFloatHelper(float n, float m, float a,
                                   float fmadd, float fmsub) {
-  SETUP();
+  SETUP_HELPER();
   START();

   __ Fmov(s0, n);
@@ -4707,6 +4714,7 @@ static void FmaddFmsubFloatHelper(float n, float m, float a,


 TEST(fmadd_fmsub_float) {
+  CcTest::InitializeVM();
   float inputs[] = {
     // Normal numbers, including -0.0f.
     FLT_MAX, FLT_MIN, 3.25f, 2.0f, 0.0f,
@@ -4743,6 +4751,7 @@ TEST(fmadd_fmsub_float) {


 TEST(fmadd_fmsub_float_rounding) {
+  CcTest::InitializeVM();
// Make sure we run plenty of tests where an intermediate rounding stage would
   // produce an incorrect result.
   const int limit = 1000;
@@ -4920,7 +4929,7 @@ static double MinMaxHelper(double n,

static void FminFmaxDoubleHelper(double n, double m, double min, double max,
                                  double minnm, double maxnm) {
-  SETUP();
+  SETUP_HELPER();

   START();
   __ Fmov(d0, n);
@@ -4943,6 +4952,7 @@ static void FminFmaxDoubleHelper(double n, double m, double min, double max,


 TEST(fmax_fmin_d) {
+  CcTest::InitializeVM();
   // Bootstrap tests.
   FminFmaxDoubleHelper(0, 0, 0, 0, 0, 0);
   FminFmaxDoubleHelper(0, 1, 0, 1, 0, 1);
@@ -4983,7 +4993,7 @@ TEST(fmax_fmin_d) {

 static void FminFmaxFloatHelper(float n, float m, float min, float max,
                                 float minnm, float maxnm) {
-  SETUP();
+  SETUP_HELPER();

   START();
// TODO(all): Signalling NaNs are sometimes converted by the C compiler to @@ -5012,6 +5022,7 @@ static void FminFmaxFloatHelper(float n, float m, float min, float max,


 TEST(fmax_fmin_s) {
+  CcTest::InitializeVM();
   // Bootstrap tests.
   FminFmaxFloatHelper(0, 0, 0, 0, 0, 0);
   FminFmaxFloatHelper(0, 1, 0, 1, 0, 1);
@@ -5666,6 +5677,7 @@ TEST(fcvt_ds) {


 TEST(fcvt_sd) {
+  CcTest::InitializeVM();
// There are a huge number of corner-cases to check, so this test iterates // through a list. The list is then negated and checked again (since the sign // is irrelevant in ties-to-even rounding), so the list shouldn't include any
@@ -5761,7 +5773,7 @@ TEST(fcvt_sd) {
     ASSERT(std::signbit(in) == 0);
     ASSERT(std::signbit(expected) == 0);

-    SETUP();
+    SETUP_HELPER();
     START();

     __ Fmov(d10, in);
@@ -6623,7 +6635,7 @@ static void TestUScvtfHelper(uint64_t in,
   double results_scvtf_w[33];
   double results_ucvtf_w[33];

-  SETUP();
+  SETUP_HELPER();
   START();

   __ Mov(x0, reinterpret_cast<int64_t>(results_scvtf_x));
@@ -6696,6 +6708,7 @@ static void TestUScvtfHelper(uint64_t in,


 TEST(scvtf_ucvtf_double) {
+  CcTest::InitializeVM();
   // Simple conversions of positive numbers which require no rounding; the
// results should not depened on the rounding mode, and ucvtf and scvtf should
   // produce the same result.
@@ -6777,7 +6790,7 @@ static void TestUScvtf32Helper(uint64_t in,
   float results_scvtf_w[33];
   float results_ucvtf_w[33];

-  SETUP();
+  SETUP_HELPER();
   START();

   __ Mov(x0, reinterpret_cast<int64_t>(results_scvtf_x));
@@ -6852,6 +6865,7 @@ static void TestUScvtf32Helper(uint64_t in,


 TEST(scvtf_ucvtf_float) {
+  CcTest::InitializeVM();
   // Simple conversions of positive numbers which require no rounding; the
// results should not depened on the rounding mode, and ucvtf and scvtf should
   // produce the same result.
@@ -7522,7 +7536,7 @@ static void PushPopJsspSimpleHelper(int reg_count,
                                     int reg_size,
                                     PushPopMethod push_method,
                                     PushPopMethod pop_method) {
-  SETUP();
+  SETUP_HELPER();

   START();

@@ -7634,6 +7648,7 @@ static void PushPopJsspSimpleHelper(int reg_count,


 TEST(push_pop_jssp_simple_32) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
       PushPopJsspSimpleHelper(count, claim, kWRegSize,
@@ -7659,6 +7674,7 @@ TEST(push_pop_jssp_simple_32) {


 TEST(push_pop_jssp_simple_64) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
       PushPopJsspSimpleHelper(count, claim, kXRegSize,
@@ -7701,7 +7717,7 @@ static void PushPopFPJsspSimpleHelper(int reg_count,
                                       int reg_size,
                                       PushPopMethod push_method,
                                       PushPopMethod pop_method) {
-  SETUP();
+  SETUP_HELPER();

   START();

@@ -7815,6 +7831,7 @@ static void PushPopFPJsspSimpleHelper(int reg_count,


 TEST(push_pop_fp_jssp_simple_32) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
       PushPopFPJsspSimpleHelper(count, claim, kSRegSize,
@@ -7840,6 +7857,7 @@ TEST(push_pop_fp_jssp_simple_32) {


 TEST(push_pop_fp_jssp_simple_64) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
       PushPopFPJsspSimpleHelper(count, claim, kDRegSize,
@@ -7867,7 +7885,7 @@ TEST(push_pop_fp_jssp_simple_64) {
 // Push and pop data using an overlapping combination of Push/Pop and
 // RegList-based methods.
 static void PushPopJsspMixedMethodsHelper(int claim, int reg_size) {
-  SETUP();
+  SETUP_HELPER();

// Registers x8 and x9 are used by the macro assembler for debug code (for // example in 'Pop'), so we can't use them here. We can't use jssp because it @@ -7954,6 +7972,7 @@ static void PushPopJsspMixedMethodsHelper(int claim, int reg_size) {


 TEST(push_pop_jssp_mixed_methods_64) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     PushPopJsspMixedMethodsHelper(claim, kXRegSize);
   }
@@ -7961,6 +7980,7 @@ TEST(push_pop_jssp_mixed_methods_64) {


 TEST(push_pop_jssp_mixed_methods_32) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     PushPopJsspMixedMethodsHelper(claim, kWRegSize);
   }
@@ -8156,6 +8176,7 @@ static void PushPopJsspWXOverlapHelper(int reg_count, int claim) {


 TEST(push_pop_jssp_wx_overlap) {
+  CcTest::InitializeVM();
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 1; count <= 8; count++) {
       PushPopJsspWXOverlapHelper(count, claim);
@@ -8981,7 +9002,7 @@ static void CopyFieldsHelper(CPURegList temps) {
     dst_tagged[i] = reinterpret_cast<uint64_t>(dst[i]) + kHeapObjectTag;
   }

-  SETUP();
+  SETUP_HELPER();
   START();

   __ Mov(x0, dst_tagged[0]);
@@ -9008,6 +9029,7 @@ static void CopyFieldsHelper(CPURegList temps) {

 // This is a V8-specific test.
 TEST(copyfields) {
+  CcTest::InitializeVM();
   CopyFieldsHelper(CPURegList(x10));
   CopyFieldsHelper(CPURegList(x10, x11));
   CopyFieldsHelper(CPURegList(x10, x11, x12));
@@ -9016,7 +9038,7 @@ TEST(copyfields) {


 static void DoSmiAbsTest(int32_t value, bool must_fail = false) {
-  SETUP();
+  SETUP_HELPER();

   START();
   Label end, slow;
@@ -9052,6 +9074,7 @@ static void DoSmiAbsTest(int32_t value, bool must_fail = false) {


 TEST(smi_abs) {
+  CcTest::InitializeVM();
   // Simple and edge cases.
   DoSmiAbsTest(0);
   DoSmiAbsTest(0x12345);
@@ -9199,7 +9222,7 @@ TEST(call_no_relocation) {


 static void ECMA262ToInt32Helper(int32_t expected, double input) {
-  SETUP();
+  SETUP_HELPER();
   START();

   __ Fmov(d0, input);
@@ -9227,6 +9250,7 @@ static void ECMA262ToInt32Helper(int32_t expected, double input) {


 TEST(ecma_262_to_int32) {
+  CcTest::InitializeVM();
   // ==== exponent < 64 ====

   ECMA262ToInt32Helper(0, 0.0);
@@ -9301,7 +9325,7 @@ TEST(ecma_262_to_int32) {
 static void AbsHelperX(int64_t value) {
   int64_t expected;

-  SETUP();
+  SETUP_HELPER();
   START();

   Label fail;
@@ -9356,7 +9380,7 @@ static void AbsHelperX(int64_t value) {
 static void AbsHelperW(int32_t value) {
   int32_t expected;

-  SETUP();
+  SETUP_HELPER();
   START();

   Label fail;
@@ -9411,6 +9435,7 @@ static void AbsHelperW(int32_t value) {


 TEST(abs) {
+  CcTest::InitializeVM();
   AbsHelperX(0);
   AbsHelperX(42);
   AbsHelperX(-42);


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to