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

Side by Side Diff: src/assembler.cc

Issue 2303643002: [turbofan] Don't treat the hole NaN as constant inside the compiler. (Closed)
Patch Set: Created 4 years, 3 months 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 | src/compiler/access-builder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 namespace internal { 113 namespace internal {
114 114
115 // ----------------------------------------------------------------------------- 115 // -----------------------------------------------------------------------------
116 // Common double constants. 116 // Common double constants.
117 117
118 struct DoubleConstant BASE_EMBEDDED { 118 struct DoubleConstant BASE_EMBEDDED {
119 double min_int; 119 double min_int;
120 double one_half; 120 double one_half;
121 double minus_one_half; 121 double minus_one_half;
122 double negative_infinity; 122 double negative_infinity;
123 double the_hole_nan; 123 uint64_t the_hole_nan;
124 double uint32_bias; 124 double uint32_bias;
125 }; 125 };
126 126
127 static DoubleConstant double_constants; 127 static DoubleConstant double_constants;
128 128
129 static struct V8_ALIGNED(16) { 129 static struct V8_ALIGNED(16) {
130 uint32_t a; 130 uint32_t a;
131 uint32_t b; 131 uint32_t b;
132 uint32_t c; 132 uint32_t c;
133 uint32_t d; 133 uint32_t d;
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 } 921 }
922 UNREACHABLE(); 922 UNREACHABLE();
923 return ExternalReference::BUILTIN_CALL; 923 return ExternalReference::BUILTIN_CALL;
924 } 924 }
925 925
926 926
927 void ExternalReference::SetUp() { 927 void ExternalReference::SetUp() {
928 double_constants.min_int = kMinInt; 928 double_constants.min_int = kMinInt;
929 double_constants.one_half = 0.5; 929 double_constants.one_half = 0.5;
930 double_constants.minus_one_half = -0.5; 930 double_constants.minus_one_half = -0.5;
931 double_constants.the_hole_nan = bit_cast<double>(kHoleNanInt64); 931 double_constants.the_hole_nan = kHoleNanInt64;
932 double_constants.negative_infinity = -V8_INFINITY; 932 double_constants.negative_infinity = -V8_INFINITY;
933 double_constants.uint32_bias = 933 double_constants.uint32_bias =
934 static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1; 934 static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1;
935 } 935 }
936 936
937 ExternalReference::ExternalReference(Address address, Isolate* isolate) 937 ExternalReference::ExternalReference(Address address, Isolate* isolate)
938 : address_(Redirect(isolate, address)) {} 938 : address_(Redirect(isolate, address)) {}
939 939
940 ExternalReference::ExternalReference( 940 ExternalReference::ExternalReference(
941 ApiFunction* fun, 941 ApiFunction* fun,
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after
1956 1956
1957 1957
1958 void Assembler::DataAlign(int m) { 1958 void Assembler::DataAlign(int m) {
1959 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); 1959 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m));
1960 while ((pc_offset() & (m - 1)) != 0) { 1960 while ((pc_offset() & (m - 1)) != 0) {
1961 db(0); 1961 db(0);
1962 } 1962 }
1963 } 1963 }
1964 } // namespace internal 1964 } // namespace internal
1965 } // namespace v8 1965 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/access-builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698