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

Side by Side Diff: test/cctest/test-api.cc

Issue 338044: Fixed problem with test on big-endian-float ARM. (Closed)
Patch Set: Actually compiles in crosstools Created 11 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 | « no previous file | 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 2007-2009 the V8 project authors. All rights reserved. 1 // Copyright 2007-2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 8480 matching lines...) Expand 10 before | Expand all | Expand 10 after
8491 v8::HeapStatistics heap_statistics; 8491 v8::HeapStatistics heap_statistics;
8492 CHECK_EQ(heap_statistics.total_heap_size(), 0); 8492 CHECK_EQ(heap_statistics.total_heap_size(), 0);
8493 CHECK_EQ(heap_statistics.used_heap_size(), 0); 8493 CHECK_EQ(heap_statistics.used_heap_size(), 0);
8494 v8::V8::GetHeapStatistics(&heap_statistics); 8494 v8::V8::GetHeapStatistics(&heap_statistics);
8495 CHECK_NE(heap_statistics.total_heap_size(), 0); 8495 CHECK_NE(heap_statistics.total_heap_size(), 0);
8496 CHECK_NE(heap_statistics.used_heap_size(), 0); 8496 CHECK_NE(heap_statistics.used_heap_size(), 0);
8497 } 8497 }
8498 8498
8499 8499
8500 static double DoubleFromBits(uint64_t value) { 8500 static double DoubleFromBits(uint64_t value) {
8501 const int kIntSize = 4;
8501 double target; 8502 double target;
8503 #ifdef BIG_ENDIAN_FLOATING_POINT
8504 // Somebody swapped the lower and higher half of doubles.
8505 memcpy(&target, reinterpret_cast<char*>(&value) + kIntSize, kIntSize);
8506 memcpy(reinterpret_cast<char*>(&target) + kIntSize, &value, kIntSize);
8507 #else
8502 memcpy(&target, &value, sizeof(target)); 8508 memcpy(&target, &value, sizeof(target));
8509 #endif
8503 return target; 8510 return target;
8504 } 8511 }
8505 8512
8506 8513
8507 static uint64_t DoubleToBits(double value) { 8514 static uint64_t DoubleToBits(double value) {
8515 const int kIntSize = 4;
8508 uint64_t target; 8516 uint64_t target;
8517 #ifdef BIG_ENDIAN_FLOATING_POINT
8518 // Somebody swapped the lower and higher half of doubles.
8519 memcpy(&target, reinterpret_cast<char*>(&value) + kIntSize, kIntSize);
8520 memcpy(reinterpret_cast<char*>(&target) + kIntSize, &value, kIntSize);
8521 #else
8509 memcpy(&target, &value, sizeof(target)); 8522 memcpy(&target, &value, sizeof(target));
8523 #endif
8510 return target; 8524 return target;
8511 } 8525 }
8512 8526
8513 8527
8514 static double DoubleToDateTime(double input) { 8528 static double DoubleToDateTime(double input) {
8515 double date_limit = 864e13; 8529 double date_limit = 864e13;
8516 if (IsNaN(input) || input < -date_limit || input > date_limit) { 8530 if (IsNaN(input) || input < -date_limit || input > date_limit) {
8517 return i::OS::nan_value(); 8531 return i::OS::nan_value();
8518 } 8532 }
8519 return (input < 0) ? -(floor(-input)) : floor(input); 8533 return (input < 0) ? -(floor(-input)) : floor(input);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
8589 double stored_date = date->NumberValue(); 8603 double stored_date = date->NumberValue();
8590 if (!IsNaN(expected_stored_date)) { 8604 if (!IsNaN(expected_stored_date)) {
8591 CHECK_EQ(expected_stored_date, stored_date); 8605 CHECK_EQ(expected_stored_date, stored_date);
8592 } else { 8606 } else {
8593 uint64_t stored_bits = DoubleToBits(stored_date); 8607 uint64_t stored_bits = DoubleToBits(stored_date);
8594 // Check if quiet nan (bits 51..62 all set). 8608 // Check if quiet nan (bits 51..62 all set).
8595 CHECK_EQ(0xfff, (stored_bits >> 51) & 0xfff); 8609 CHECK_EQ(0xfff, (stored_bits >> 51) & 0xfff);
8596 } 8610 }
8597 } 8611 }
8598 } 8612 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698