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

Side by Side Diff: src/arm/macro-assembler-arm.cc

Issue 942513002: Put the type feedback vector in the unoptimized JavaScript frame. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: ia32 lithium fix. Created 5 years, 10 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
OLDNEW
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 #include <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #if V8_TARGET_ARCH_ARM 9 #if V8_TARGET_ARCH_ARM
10 10
(...skipping 3866 matching lines...) Expand 10 before | Expand all | Expand 10 after
3877 ldr(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); 3877 ldr(scratch1, FieldMemOperand(current, Map::kBitField2Offset));
3878 DecodeField<Map::ElementsKindBits>(scratch1); 3878 DecodeField<Map::ElementsKindBits>(scratch1);
3879 cmp(scratch1, Operand(DICTIONARY_ELEMENTS)); 3879 cmp(scratch1, Operand(DICTIONARY_ELEMENTS));
3880 b(eq, found); 3880 b(eq, found);
3881 ldr(current, FieldMemOperand(current, Map::kPrototypeOffset)); 3881 ldr(current, FieldMemOperand(current, Map::kPrototypeOffset));
3882 cmp(current, Operand(factory->null_value())); 3882 cmp(current, Operand(factory->null_value()));
3883 b(ne, &loop_again); 3883 b(ne, &loop_again);
3884 } 3884 }
3885 3885
3886 3886
3887 void MacroAssembler::OSRDropVectorFromStack(int unoptimized_slot_count,
3888 Register scratch0,
3889 Register scratch1) {
3890 if (unoptimized_slot_count > 0) {
3891 Label loop_start;
3892 add(scratch0, fp, Operand(JavaScriptFrameConstants::kFeedbackVectorOffset));
3893 bind(&loop_start);
3894 ldr(scratch1, MemOperand(scratch0, -1 * kPointerSize));
3895 str(scratch1, MemOperand(scratch0, 0));
3896 sub(scratch0, scratch0, Operand(kPointerSize));
3897 cmp(scratch0, sp);
3898 b(gt, &loop_start);
3899 }
3900 add(sp, sp, Operand(kPointerSize));
3901 }
3902
3903
3887 #ifdef DEBUG 3904 #ifdef DEBUG
3888 bool AreAliased(Register reg1, 3905 bool AreAliased(Register reg1,
3889 Register reg2, 3906 Register reg2,
3890 Register reg3, 3907 Register reg3,
3891 Register reg4, 3908 Register reg4,
3892 Register reg5, 3909 Register reg5,
3893 Register reg6, 3910 Register reg6,
3894 Register reg7, 3911 Register reg7,
3895 Register reg8) { 3912 Register reg8) {
3896 int n_of_valid_regs = reg1.is_valid() + reg2.is_valid() + 3913 int n_of_valid_regs = reg1.is_valid() + reg2.is_valid() +
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
3975 } 3992 }
3976 } 3993 }
3977 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); 3994 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift));
3978 add(result, result, Operand(dividend, LSR, 31)); 3995 add(result, result, Operand(dividend, LSR, 31));
3979 } 3996 }
3980 3997
3981 } // namespace internal 3998 } // namespace internal
3982 } // namespace v8 3999 } // namespace v8
3983 4000
3984 #endif // V8_TARGET_ARCH_ARM 4001 #endif // V8_TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698