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

Side by Side Diff: src/mips/full-codegen-mips.cc

Issue 1135243004: [es6] Support super.property in eval and arrow functions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cleanup Created 5 years, 6 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 "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_MIPS 7 #if V8_TARGET_ARCH_MIPS
8 8
9 // Note on Mips implementation: 9 // Note on Mips implementation:
10 // 10 //
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 } else if (FLAG_debug_code) { 244 } else if (FLAG_debug_code) {
245 Label done; 245 Label done;
246 __ JumpIfInNewSpace(cp, a0, &done); 246 __ JumpIfInNewSpace(cp, a0, &done);
247 __ Abort(kExpectedNewSpaceObject); 247 __ Abort(kExpectedNewSpaceObject);
248 __ bind(&done); 248 __ bind(&done);
249 } 249 }
250 } 250 }
251 } 251 }
252 } 252 }
253 253
254 Variable* home_object_var = scope()->home_object_var();
255 if (home_object_var != nullptr) {
256 __ Push(a1);
257 }
258
254 ArgumentsAccessStub::HasNewTarget has_new_target = 259 ArgumentsAccessStub::HasNewTarget has_new_target =
255 IsSubclassConstructor(info->function()->kind()) 260 IsSubclassConstructor(info->function()->kind())
256 ? ArgumentsAccessStub::HAS_NEW_TARGET 261 ? ArgumentsAccessStub::HAS_NEW_TARGET
257 : ArgumentsAccessStub::NO_NEW_TARGET; 262 : ArgumentsAccessStub::NO_NEW_TARGET;
258 263
259 // Possibly allocate RestParameters 264 // Possibly allocate RestParameters
260 int rest_index; 265 int rest_index;
261 Variable* rest_param = scope()->rest_parameter(&rest_index); 266 Variable* rest_param = scope()->rest_parameter(&rest_index);
262 if (rest_param) { 267 if (rest_param) {
263 Comment cmnt(masm_, "[ Allocate rest parameter array"); 268 Comment cmnt(masm_, "[ Allocate rest parameter array");
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 type = ArgumentsAccessStub::NEW_SLOPPY_SLOW; 315 type = ArgumentsAccessStub::NEW_SLOPPY_SLOW;
311 } else { 316 } else {
312 type = ArgumentsAccessStub::NEW_SLOPPY_FAST; 317 type = ArgumentsAccessStub::NEW_SLOPPY_FAST;
313 } 318 }
314 ArgumentsAccessStub stub(isolate(), type, has_new_target); 319 ArgumentsAccessStub stub(isolate(), type, has_new_target);
315 __ CallStub(&stub); 320 __ CallStub(&stub);
316 321
317 SetVar(arguments, v0, a1, a2); 322 SetVar(arguments, v0, a1, a2);
318 } 323 }
319 324
325 // Possibly set up a local binding to the [[HomeObject]].
326 if (home_object_var != nullptr) {
327 Comment cmnt(masm_, "[ Home object");
328 __ Pop(LoadDescriptor::ReceiverRegister());
329 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol());
330 __ li(LoadDescriptor::NameRegister(), Operand(home_object_symbol));
331 __ li(LoadDescriptor::SlotRegister(),
332 Operand(SmiFromSlot(function()->HomeObjectFeedbackSlot())));
333 CallLoadIC(NOT_CONTEXTUAL);
334
335 SetVar(home_object_var, v0, a1, a2);
336 }
337
320 if (FLAG_trace) { 338 if (FLAG_trace) {
321 __ CallRuntime(Runtime::kTraceEnter, 0); 339 __ CallRuntime(Runtime::kTraceEnter, 0);
322 } 340 }
323 341
324 // Visit the declarations and body unless there is an illegal 342 // Visit the declarations and body unless there is an illegal
325 // redeclaration. 343 // redeclaration.
326 if (scope()->HasIllegalRedeclaration()) { 344 if (scope()->HasIllegalRedeclaration()) {
327 Comment cmnt(masm_, "[ Declarations"); 345 Comment cmnt(masm_, "[ Declarations");
328 scope()->VisitIllegalRedeclaration(this); 346 scope()->VisitIllegalRedeclaration(this);
329 347
(...skipping 976 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 context()->Plug(v0); 1324 context()->Plug(v0);
1307 } 1325 }
1308 1326
1309 1327
1310 void FullCodeGenerator::VisitVariableProxy(VariableProxy* expr) { 1328 void FullCodeGenerator::VisitVariableProxy(VariableProxy* expr) {
1311 Comment cmnt(masm_, "[ VariableProxy"); 1329 Comment cmnt(masm_, "[ VariableProxy");
1312 EmitVariableLoad(expr); 1330 EmitVariableLoad(expr);
1313 } 1331 }
1314 1332
1315 1333
1316 void FullCodeGenerator::EmitLoadHomeObject(SuperReference* expr) {
1317 Comment cnmt(masm_, "[ SuperReference ");
1318
1319 __ lw(LoadDescriptor::ReceiverRegister(),
1320 MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
1321
1322 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol());
1323 __ li(LoadDescriptor::NameRegister(), home_object_symbol);
1324
1325 __ li(LoadDescriptor::SlotRegister(),
1326 Operand(SmiFromSlot(expr->HomeObjectFeedbackSlot())));
1327 CallLoadIC(NOT_CONTEXTUAL);
1328
1329 Label done;
1330 __ Branch(&done, ne, v0, Operand(isolate()->factory()->undefined_value()));
1331 __ CallRuntime(Runtime::kThrowNonMethodError, 0);
1332 __ bind(&done);
1333 }
1334
1335
1336 void FullCodeGenerator::EmitSetHomeObjectIfNeeded(Expression* initializer, 1334 void FullCodeGenerator::EmitSetHomeObjectIfNeeded(Expression* initializer,
1337 int offset) { 1335 int offset) {
1338 if (NeedsHomeObject(initializer)) { 1336 if (NeedsHomeObject(initializer)) {
1339 __ lw(StoreDescriptor::ReceiverRegister(), MemOperand(sp)); 1337 __ lw(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
1340 __ li(StoreDescriptor::NameRegister(), 1338 __ li(StoreDescriptor::NameRegister(),
1341 Operand(isolate()->factory()->home_object_symbol())); 1339 Operand(isolate()->factory()->home_object_symbol()));
1342 __ lw(StoreDescriptor::ValueRegister(), 1340 __ lw(StoreDescriptor::ValueRegister(),
1343 MemOperand(sp, offset * kPointerSize)); 1341 MemOperand(sp, offset * kPointerSize));
1344 CallStoreIC(); 1342 CallStoreIC();
1345 } 1343 }
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 if (expr->is_compound()) { 1933 if (expr->is_compound()) {
1936 // We need the receiver both on the stack and in the register. 1934 // We need the receiver both on the stack and in the register.
1937 VisitForStackValue(property->obj()); 1935 VisitForStackValue(property->obj());
1938 __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0)); 1936 __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
1939 } else { 1937 } else {
1940 VisitForStackValue(property->obj()); 1938 VisitForStackValue(property->obj());
1941 } 1939 }
1942 break; 1940 break;
1943 case NAMED_SUPER_PROPERTY: 1941 case NAMED_SUPER_PROPERTY:
1944 VisitForStackValue(property->obj()->AsSuperReference()->this_var()); 1942 VisitForStackValue(property->obj()->AsSuperReference()->this_var());
1945 EmitLoadHomeObject(property->obj()->AsSuperReference()); 1943 VisitForAccumulatorValue(
1944 property->obj()->AsSuperReference()->home_object_var());
1946 __ Push(result_register()); 1945 __ Push(result_register());
1947 if (expr->is_compound()) { 1946 if (expr->is_compound()) {
1948 const Register scratch = a1; 1947 const Register scratch = a1;
1949 __ lw(scratch, MemOperand(sp, kPointerSize)); 1948 __ lw(scratch, MemOperand(sp, kPointerSize));
1950 __ Push(scratch, result_register()); 1949 __ Push(scratch, result_register());
1951 } 1950 }
1952 break; 1951 break;
1953 case KEYED_SUPER_PROPERTY: { 1952 case KEYED_SUPER_PROPERTY: {
1954 const Register scratch = a1; 1953 const Register scratch = a1;
1955 VisitForStackValue(property->obj()->AsSuperReference()->this_var()); 1954 VisitForStackValue(property->obj()->AsSuperReference()->this_var());
1956 EmitLoadHomeObject(property->obj()->AsSuperReference()); 1955 VisitForAccumulatorValue(
1956 property->obj()->AsSuperReference()->home_object_var());
1957 __ Move(scratch, result_register()); 1957 __ Move(scratch, result_register());
1958 VisitForAccumulatorValue(property->key()); 1958 VisitForAccumulatorValue(property->key());
1959 __ Push(scratch, result_register()); 1959 __ Push(scratch, result_register());
1960 if (expr->is_compound()) { 1960 if (expr->is_compound()) {
1961 const Register scratch1 = t0; 1961 const Register scratch1 = t0;
1962 __ lw(scratch1, MemOperand(sp, 2 * kPointerSize)); 1962 __ lw(scratch1, MemOperand(sp, 2 * kPointerSize));
1963 __ Push(scratch1, scratch, result_register()); 1963 __ Push(scratch1, scratch, result_register());
1964 } 1964 }
1965 break; 1965 break;
1966 } 1966 }
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
2579 __ mov(StoreDescriptor::ReceiverRegister(), result_register()); 2579 __ mov(StoreDescriptor::ReceiverRegister(), result_register());
2580 __ pop(StoreDescriptor::ValueRegister()); // Restore value. 2580 __ pop(StoreDescriptor::ValueRegister()); // Restore value.
2581 __ li(StoreDescriptor::NameRegister(), 2581 __ li(StoreDescriptor::NameRegister(),
2582 Operand(prop->key()->AsLiteral()->value())); 2582 Operand(prop->key()->AsLiteral()->value()));
2583 CallStoreIC(); 2583 CallStoreIC();
2584 break; 2584 break;
2585 } 2585 }
2586 case NAMED_SUPER_PROPERTY: { 2586 case NAMED_SUPER_PROPERTY: {
2587 __ Push(v0); 2587 __ Push(v0);
2588 VisitForStackValue(prop->obj()->AsSuperReference()->this_var()); 2588 VisitForStackValue(prop->obj()->AsSuperReference()->this_var());
2589 EmitLoadHomeObject(prop->obj()->AsSuperReference()); 2589 VisitForAccumulatorValue(
2590 prop->obj()->AsSuperReference()->home_object_var());
2590 // stack: value, this; v0: home_object 2591 // stack: value, this; v0: home_object
2591 Register scratch = a2; 2592 Register scratch = a2;
2592 Register scratch2 = a3; 2593 Register scratch2 = a3;
2593 __ mov(scratch, result_register()); // home_object 2594 __ mov(scratch, result_register()); // home_object
2594 __ lw(v0, MemOperand(sp, kPointerSize)); // value 2595 __ lw(v0, MemOperand(sp, kPointerSize)); // value
2595 __ lw(scratch2, MemOperand(sp, 0)); // this 2596 __ lw(scratch2, MemOperand(sp, 0)); // this
2596 __ sw(scratch2, MemOperand(sp, kPointerSize)); // this 2597 __ sw(scratch2, MemOperand(sp, kPointerSize)); // this
2597 __ sw(scratch, MemOperand(sp, 0)); // home_object 2598 __ sw(scratch, MemOperand(sp, 0)); // home_object
2598 // stack: this, home_object; v0: value 2599 // stack: this, home_object; v0: value
2599 EmitNamedSuperPropertyStore(prop); 2600 EmitNamedSuperPropertyStore(prop);
2600 break; 2601 break;
2601 } 2602 }
2602 case KEYED_SUPER_PROPERTY: { 2603 case KEYED_SUPER_PROPERTY: {
2603 __ Push(v0); 2604 __ Push(v0);
2604 VisitForStackValue(prop->obj()->AsSuperReference()->this_var()); 2605 VisitForStackValue(prop->obj()->AsSuperReference()->this_var());
2605 EmitLoadHomeObject(prop->obj()->AsSuperReference()); 2606 VisitForStackValue(prop->obj()->AsSuperReference()->home_object_var());
2606 __ Push(result_register());
2607 VisitForAccumulatorValue(prop->key()); 2607 VisitForAccumulatorValue(prop->key());
2608 Register scratch = a2; 2608 Register scratch = a2;
2609 Register scratch2 = a3; 2609 Register scratch2 = a3;
2610 __ lw(scratch2, MemOperand(sp, 2 * kPointerSize)); // value 2610 __ lw(scratch2, MemOperand(sp, 2 * kPointerSize)); // value
2611 // stack: value, this, home_object; v0: key, a3: value 2611 // stack: value, this, home_object; v0: key, a3: value
2612 __ lw(scratch, MemOperand(sp, kPointerSize)); // this 2612 __ lw(scratch, MemOperand(sp, kPointerSize)); // this
2613 __ sw(scratch, MemOperand(sp, 2 * kPointerSize)); 2613 __ sw(scratch, MemOperand(sp, 2 * kPointerSize));
2614 __ lw(scratch, MemOperand(sp, 0)); // home_object 2614 __ lw(scratch, MemOperand(sp, 0)); // home_object
2615 __ sw(scratch, MemOperand(sp, kPointerSize)); 2615 __ sw(scratch, MemOperand(sp, kPointerSize));
2616 __ sw(v0, MemOperand(sp, 0)); 2616 __ sw(v0, MemOperand(sp, 0));
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
2813 Comment cmnt(masm_, "[ Property"); 2813 Comment cmnt(masm_, "[ Property");
2814 Expression* key = expr->key(); 2814 Expression* key = expr->key();
2815 2815
2816 if (key->IsPropertyName()) { 2816 if (key->IsPropertyName()) {
2817 if (!expr->IsSuperAccess()) { 2817 if (!expr->IsSuperAccess()) {
2818 VisitForAccumulatorValue(expr->obj()); 2818 VisitForAccumulatorValue(expr->obj());
2819 __ Move(LoadDescriptor::ReceiverRegister(), v0); 2819 __ Move(LoadDescriptor::ReceiverRegister(), v0);
2820 EmitNamedPropertyLoad(expr); 2820 EmitNamedPropertyLoad(expr);
2821 } else { 2821 } else {
2822 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); 2822 VisitForStackValue(expr->obj()->AsSuperReference()->this_var());
2823 EmitLoadHomeObject(expr->obj()->AsSuperReference()); 2823 VisitForStackValue(expr->obj()->AsSuperReference()->home_object_var());
2824 __ Push(result_register());
2825 EmitNamedSuperPropertyLoad(expr); 2824 EmitNamedSuperPropertyLoad(expr);
2826 } 2825 }
2827 } else { 2826 } else {
2828 if (!expr->IsSuperAccess()) { 2827 if (!expr->IsSuperAccess()) {
2829 VisitForStackValue(expr->obj()); 2828 VisitForStackValue(expr->obj());
2830 VisitForAccumulatorValue(expr->key()); 2829 VisitForAccumulatorValue(expr->key());
2831 __ Move(LoadDescriptor::NameRegister(), v0); 2830 __ Move(LoadDescriptor::NameRegister(), v0);
2832 __ pop(LoadDescriptor::ReceiverRegister()); 2831 __ pop(LoadDescriptor::ReceiverRegister());
2833 EmitKeyedPropertyLoad(expr); 2832 EmitKeyedPropertyLoad(expr);
2834 } else { 2833 } else {
2835 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); 2834 VisitForStackValue(expr->obj()->AsSuperReference()->this_var());
2836 EmitLoadHomeObject(expr->obj()->AsSuperReference()); 2835 VisitForStackValue(expr->obj()->AsSuperReference()->home_object_var());
2837 __ Push(result_register());
2838 VisitForStackValue(expr->key()); 2836 VisitForStackValue(expr->key());
2839 EmitKeyedSuperPropertyLoad(expr); 2837 EmitKeyedSuperPropertyLoad(expr);
2840 } 2838 }
2841 } 2839 }
2842 PrepareForBailoutForId(expr->LoadId(), TOS_REG); 2840 PrepareForBailoutForId(expr->LoadId(), TOS_REG);
2843 context()->Plug(v0); 2841 context()->Plug(v0);
2844 } 2842 }
2845 2843
2846 2844
2847 void FullCodeGenerator::CallIC(Handle<Code> code, 2845 void FullCodeGenerator::CallIC(Handle<Code> code,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2890 DCHECK(callee->IsProperty()); 2888 DCHECK(callee->IsProperty());
2891 Property* prop = callee->AsProperty(); 2889 Property* prop = callee->AsProperty();
2892 DCHECK(prop->IsSuperAccess()); 2890 DCHECK(prop->IsSuperAccess());
2893 2891
2894 SetSourcePosition(prop->position()); 2892 SetSourcePosition(prop->position());
2895 Literal* key = prop->key()->AsLiteral(); 2893 Literal* key = prop->key()->AsLiteral();
2896 DCHECK(!key->value()->IsSmi()); 2894 DCHECK(!key->value()->IsSmi());
2897 // Load the function from the receiver. 2895 // Load the function from the receiver.
2898 const Register scratch = a1; 2896 const Register scratch = a1;
2899 SuperReference* super_ref = prop->obj()->AsSuperReference(); 2897 SuperReference* super_ref = prop->obj()->AsSuperReference();
2900 EmitLoadHomeObject(super_ref); 2898 VisitForAccumulatorValue(super_ref->home_object_var());
2901 __ mov(scratch, v0); 2899 __ mov(scratch, v0);
2902 VisitForAccumulatorValue(super_ref->this_var()); 2900 VisitForAccumulatorValue(super_ref->this_var());
2903 __ Push(scratch, v0, v0, scratch); 2901 __ Push(scratch, v0, v0, scratch);
2904 __ Push(key->value()); 2902 __ Push(key->value());
2905 2903
2906 // Stack here: 2904 // Stack here:
2907 // - home_object 2905 // - home_object
2908 // - this (receiver) 2906 // - this (receiver)
2909 // - this (receiver) <-- LoadFromSuper will pop here and below. 2907 // - this (receiver) <-- LoadFromSuper will pop here and below.
2910 // - home_object 2908 // - home_object
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2948 void FullCodeGenerator::EmitKeyedSuperCallWithLoadIC(Call* expr) { 2946 void FullCodeGenerator::EmitKeyedSuperCallWithLoadIC(Call* expr) {
2949 Expression* callee = expr->expression(); 2947 Expression* callee = expr->expression();
2950 DCHECK(callee->IsProperty()); 2948 DCHECK(callee->IsProperty());
2951 Property* prop = callee->AsProperty(); 2949 Property* prop = callee->AsProperty();
2952 DCHECK(prop->IsSuperAccess()); 2950 DCHECK(prop->IsSuperAccess());
2953 2951
2954 SetSourcePosition(prop->position()); 2952 SetSourcePosition(prop->position());
2955 // Load the function from the receiver. 2953 // Load the function from the receiver.
2956 const Register scratch = a1; 2954 const Register scratch = a1;
2957 SuperReference* super_ref = prop->obj()->AsSuperReference(); 2955 SuperReference* super_ref = prop->obj()->AsSuperReference();
2958 EmitLoadHomeObject(super_ref); 2956 VisitForAccumulatorValue(super_ref->home_object_var());
2959 __ Move(scratch, v0); 2957 __ Move(scratch, v0);
2960 VisitForAccumulatorValue(super_ref->this_var()); 2958 VisitForAccumulatorValue(super_ref->this_var());
2961 __ Push(scratch, v0, v0, scratch); 2959 __ Push(scratch, v0, v0, scratch);
2962 VisitForStackValue(prop->key()); 2960 VisitForStackValue(prop->key());
2963 2961
2964 // Stack here: 2962 // Stack here:
2965 // - home_object 2963 // - home_object
2966 // - this (receiver) 2964 // - this (receiver)
2967 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. 2965 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below.
2968 // - home_object 2966 // - home_object
(...skipping 1851 matching lines...) Expand 10 before | Expand all | Expand 10 after
4820 case NAMED_PROPERTY: { 4818 case NAMED_PROPERTY: {
4821 // Put the object both on the stack and in the register. 4819 // Put the object both on the stack and in the register.
4822 VisitForStackValue(prop->obj()); 4820 VisitForStackValue(prop->obj());
4823 __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0)); 4821 __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
4824 EmitNamedPropertyLoad(prop); 4822 EmitNamedPropertyLoad(prop);
4825 break; 4823 break;
4826 } 4824 }
4827 4825
4828 case NAMED_SUPER_PROPERTY: { 4826 case NAMED_SUPER_PROPERTY: {
4829 VisitForStackValue(prop->obj()->AsSuperReference()->this_var()); 4827 VisitForStackValue(prop->obj()->AsSuperReference()->this_var());
4830 EmitLoadHomeObject(prop->obj()->AsSuperReference()); 4828 VisitForAccumulatorValue(
4829 prop->obj()->AsSuperReference()->home_object_var());
4831 __ Push(result_register()); 4830 __ Push(result_register());
4832 const Register scratch = a1; 4831 const Register scratch = a1;
4833 __ lw(scratch, MemOperand(sp, kPointerSize)); 4832 __ lw(scratch, MemOperand(sp, kPointerSize));
4834 __ Push(scratch, result_register()); 4833 __ Push(scratch, result_register());
4835 EmitNamedSuperPropertyLoad(prop); 4834 EmitNamedSuperPropertyLoad(prop);
4836 break; 4835 break;
4837 } 4836 }
4838 4837
4839 case KEYED_SUPER_PROPERTY: { 4838 case KEYED_SUPER_PROPERTY: {
4840 VisitForStackValue(prop->obj()->AsSuperReference()->this_var()); 4839 VisitForStackValue(prop->obj()->AsSuperReference()->this_var());
4841 EmitLoadHomeObject(prop->obj()->AsSuperReference()); 4840 VisitForAccumulatorValue(
4841 prop->obj()->AsSuperReference()->home_object_var());
4842 const Register scratch = a1; 4842 const Register scratch = a1;
4843 const Register scratch1 = t0; 4843 const Register scratch1 = t0;
4844 __ Move(scratch, result_register()); 4844 __ Move(scratch, result_register());
4845 VisitForAccumulatorValue(prop->key()); 4845 VisitForAccumulatorValue(prop->key());
4846 __ Push(scratch, result_register()); 4846 __ Push(scratch, result_register());
4847 __ lw(scratch1, MemOperand(sp, 2 * kPointerSize)); 4847 __ lw(scratch1, MemOperand(sp, 2 * kPointerSize));
4848 __ Push(scratch1, scratch, result_register()); 4848 __ Push(scratch1, scratch, result_register());
4849 EmitKeyedSuperPropertyLoad(prop); 4849 EmitKeyedSuperPropertyLoad(prop);
4850 break; 4850 break;
4851 } 4851 }
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
5423 Assembler::target_address_at(pc_immediate_load_address)) == 5423 Assembler::target_address_at(pc_immediate_load_address)) ==
5424 reinterpret_cast<uint32_t>( 5424 reinterpret_cast<uint32_t>(
5425 isolate->builtins()->OsrAfterStackCheck()->entry())); 5425 isolate->builtins()->OsrAfterStackCheck()->entry()));
5426 return OSR_AFTER_STACK_CHECK; 5426 return OSR_AFTER_STACK_CHECK;
5427 } 5427 }
5428 5428
5429 5429
5430 } } // namespace v8::internal 5430 } } // namespace v8::internal
5431 5431
5432 #endif // V8_TARGET_ARCH_MIPS 5432 #endif // V8_TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698