OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
7 | 7 |
8 #include "hydrogen.h" | 8 #include "hydrogen.h" |
9 #include "lithium-allocator.h" | 9 #include "lithium-allocator.h" |
10 #include "lithium.h" | 10 #include "lithium.h" |
(...skipping 2343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2354 return is_external() || is_fixed_typed_array(); | 2354 return is_external() || is_fixed_typed_array(); |
2355 } | 2355 } |
2356 LOperand* elements() { return this->inputs_[0]; } | 2356 LOperand* elements() { return this->inputs_[0]; } |
2357 LOperand* key() { return this->inputs_[1]; } | 2357 LOperand* key() { return this->inputs_[1]; } |
2358 LOperand* value() { return this->inputs_[2]; } | 2358 LOperand* value() { return this->inputs_[2]; } |
2359 ElementsKind elements_kind() const { | 2359 ElementsKind elements_kind() const { |
2360 return this->hydrogen()->elements_kind(); | 2360 return this->hydrogen()->elements_kind(); |
2361 } | 2361 } |
2362 | 2362 |
2363 bool NeedsCanonicalization() { | 2363 bool NeedsCanonicalization() { |
| 2364 if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() || |
| 2365 hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) { |
| 2366 return false; |
| 2367 } |
2364 return this->hydrogen()->NeedsCanonicalization(); | 2368 return this->hydrogen()->NeedsCanonicalization(); |
2365 } | 2369 } |
2366 uint32_t additional_index() const { return this->hydrogen()->index_offset(); } | 2370 uint32_t additional_index() const { return this->hydrogen()->index_offset(); } |
2367 | 2371 |
2368 void PrintDataTo(StringStream* stream) V8_OVERRIDE { | 2372 void PrintDataTo(StringStream* stream) V8_OVERRIDE { |
2369 this->elements()->PrintTo(stream); | 2373 this->elements()->PrintTo(stream); |
2370 stream->Add("["); | 2374 stream->Add("["); |
2371 this->key()->PrintTo(stream); | 2375 this->key()->PrintTo(stream); |
2372 if (this->hydrogen()->IsDehoisted()) { | 2376 if (this->hydrogen()->IsDehoisted()) { |
2373 stream->Add(" + %d] <-", this->additional_index()); | 2377 stream->Add(" + %d] <-", this->additional_index()); |
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3068 | 3072 |
3069 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3073 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3070 }; | 3074 }; |
3071 | 3075 |
3072 #undef DECLARE_HYDROGEN_ACCESSOR | 3076 #undef DECLARE_HYDROGEN_ACCESSOR |
3073 #undef DECLARE_CONCRETE_INSTRUCTION | 3077 #undef DECLARE_CONCRETE_INSTRUCTION |
3074 | 3078 |
3075 } } // namespace v8::internal | 3079 } } // namespace v8::internal |
3076 | 3080 |
3077 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3081 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |