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 #include "src/deoptimizer.h" | 5 #include "src/deoptimizer.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "src/accessors.h" | 9 #include "src/accessors.h" |
10 #include "src/assembler-inl.h" | 10 #include "src/assembler-inl.h" |
(...skipping 3114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3125 uint32_t TranslatedState::GetUInt32Slot(Address fp, int slot_offset) { | 3125 uint32_t TranslatedState::GetUInt32Slot(Address fp, int slot_offset) { |
3126 Address address = fp + slot_offset; | 3126 Address address = fp + slot_offset; |
3127 #if V8_TARGET_BIG_ENDIAN && V8_HOST_ARCH_64_BIT | 3127 #if V8_TARGET_BIG_ENDIAN && V8_HOST_ARCH_64_BIT |
3128 return Memory::uint32_at(address + kIntSize); | 3128 return Memory::uint32_at(address + kIntSize); |
3129 #else | 3129 #else |
3130 return Memory::uint32_at(address); | 3130 return Memory::uint32_at(address); |
3131 #endif | 3131 #endif |
3132 } | 3132 } |
3133 | 3133 |
3134 Float32 TranslatedState::GetFloatSlot(Address fp, int slot_offset) { | 3134 Float32 TranslatedState::GetFloatSlot(Address fp, int slot_offset) { |
3135 #if !V8_TARGET_ARCH_S390X && !V8_TARGET_ARCH_PPC64 | |
bbudge
2017/04/24 20:49:24
Can you just modify the GetUInt32Slot function (co
john.yan
2017/04/24 21:00:53
Yes, float/double is treated differently than int3
| |
3135 return Float32::FromBits(GetUInt32Slot(fp, slot_offset)); | 3136 return Float32::FromBits(GetUInt32Slot(fp, slot_offset)); |
3137 #else | |
3138 return Float32::FromBits(Memory::uint32_at(fp + slot_offset)); | |
3139 #endif | |
3136 } | 3140 } |
3137 | 3141 |
3138 Float64 TranslatedState::GetDoubleSlot(Address fp, int slot_offset) { | 3142 Float64 TranslatedState::GetDoubleSlot(Address fp, int slot_offset) { |
3139 return Float64::FromBits(Memory::uint64_at(fp + slot_offset)); | 3143 return Float64::FromBits(Memory::uint64_at(fp + slot_offset)); |
3140 } | 3144 } |
3141 | 3145 |
3142 void TranslatedValue::Handlify() { | 3146 void TranslatedValue::Handlify() { |
3143 if (kind() == kTagged) { | 3147 if (kind() == kTagged) { |
3144 value_ = Handle<Object>(raw_literal(), isolate()); | 3148 value_ = Handle<Object>(raw_literal(), isolate()); |
3145 raw_literal_ = nullptr; | 3149 raw_literal_ = nullptr; |
(...skipping 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4463 CHECK(value_info->IsMaterializedObject()); | 4467 CHECK(value_info->IsMaterializedObject()); |
4464 | 4468 |
4465 value_info->value_ = | 4469 value_info->value_ = |
4466 Handle<Object>(previously_materialized_objects->get(i), isolate_); | 4470 Handle<Object>(previously_materialized_objects->get(i), isolate_); |
4467 } | 4471 } |
4468 } | 4472 } |
4469 } | 4473 } |
4470 | 4474 |
4471 } // namespace internal | 4475 } // namespace internal |
4472 } // namespace v8 | 4476 } // namespace v8 |
OLD | NEW |