OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #if V8_TARGET_ARCH_X87 | 5 #if V8_TARGET_ARCH_X87 |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 value, | 936 value, |
937 environment->HasTaggedValueAt(env_offset + i), | 937 environment->HasTaggedValueAt(env_offset + i), |
938 environment->HasUint32ValueAt(env_offset + i), | 938 environment->HasUint32ValueAt(env_offset + i), |
939 object_index_pointer, | 939 object_index_pointer, |
940 dematerialized_index_pointer); | 940 dematerialized_index_pointer); |
941 } | 941 } |
942 return; | 942 return; |
943 } | 943 } |
944 | 944 |
945 if (op->IsStackSlot()) { | 945 if (op->IsStackSlot()) { |
| 946 int index = op->index(); |
| 947 if (index >= 0) { |
| 948 index += StandardFrameConstants::kFixedFrameSize / kPointerSize; |
| 949 } |
946 if (is_tagged) { | 950 if (is_tagged) { |
947 translation->StoreStackSlot(op->index()); | 951 translation->StoreStackSlot(index); |
948 } else if (is_uint32) { | 952 } else if (is_uint32) { |
949 translation->StoreUint32StackSlot(op->index()); | 953 translation->StoreUint32StackSlot(index); |
950 } else { | 954 } else { |
951 translation->StoreInt32StackSlot(op->index()); | 955 translation->StoreInt32StackSlot(index); |
952 } | 956 } |
953 } else if (op->IsDoubleStackSlot()) { | 957 } else if (op->IsDoubleStackSlot()) { |
954 translation->StoreDoubleStackSlot(op->index()); | 958 int index = op->index(); |
| 959 if (index >= 0) { |
| 960 index += StandardFrameConstants::kFixedFrameSize / kPointerSize; |
| 961 } |
| 962 translation->StoreDoubleStackSlot(index); |
955 } else if (op->IsRegister()) { | 963 } else if (op->IsRegister()) { |
956 Register reg = ToRegister(op); | 964 Register reg = ToRegister(op); |
957 if (is_tagged) { | 965 if (is_tagged) { |
958 translation->StoreRegister(reg); | 966 translation->StoreRegister(reg); |
959 } else if (is_uint32) { | 967 } else if (is_uint32) { |
960 translation->StoreUint32Register(reg); | 968 translation->StoreUint32Register(reg); |
961 } else { | 969 } else { |
962 translation->StoreInt32Register(reg); | 970 translation->StoreInt32Register(reg); |
963 } | 971 } |
964 } else if (op->IsDoubleRegister()) { | 972 } else if (op->IsDoubleRegister()) { |
(...skipping 5521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6486 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6494 RecordSafepoint(Safepoint::kNoLazyDeopt); |
6487 } | 6495 } |
6488 | 6496 |
6489 | 6497 |
6490 #undef __ | 6498 #undef __ |
6491 | 6499 |
6492 } // namespace internal | 6500 } // namespace internal |
6493 } // namespace v8 | 6501 } // namespace v8 |
6494 | 6502 |
6495 #endif // V8_TARGET_ARCH_X87 | 6503 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |