| 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 #include "v8.h" | 5 #include "v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
| 8 | 8 |
| 9 #include "ic-inl.h" | 9 #include "ic-inl.h" |
| 10 #include "codegen.h" | 10 #include "codegen.h" |
| (...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 // property. | 443 // property. |
| 444 void StubCompiler::GenerateCheckPropertyCell(MacroAssembler* masm, | 444 void StubCompiler::GenerateCheckPropertyCell(MacroAssembler* masm, |
| 445 Handle<JSGlobalObject> global, | 445 Handle<JSGlobalObject> global, |
| 446 Handle<Name> name, | 446 Handle<Name> name, |
| 447 Register scratch, | 447 Register scratch, |
| 448 Label* miss) { | 448 Label* miss) { |
| 449 Handle<PropertyCell> cell = | 449 Handle<PropertyCell> cell = |
| 450 JSGlobalObject::EnsurePropertyCell(global, name); | 450 JSGlobalObject::EnsurePropertyCell(global, name); |
| 451 ASSERT(cell->value()->IsTheHole()); | 451 ASSERT(cell->value()->IsTheHole()); |
| 452 Handle<Oddball> the_hole = masm->isolate()->factory()->the_hole_value(); | 452 Handle<Oddball> the_hole = masm->isolate()->factory()->the_hole_value(); |
| 453 if (Serializer::enabled()) { | 453 if (Serializer::enabled(masm->isolate())) { |
| 454 __ mov(scratch, Immediate(cell)); | 454 __ mov(scratch, Immediate(cell)); |
| 455 __ cmp(FieldOperand(scratch, PropertyCell::kValueOffset), | 455 __ cmp(FieldOperand(scratch, PropertyCell::kValueOffset), |
| 456 Immediate(the_hole)); | 456 Immediate(the_hole)); |
| 457 } else { | 457 } else { |
| 458 __ cmp(Operand::ForCell(cell), Immediate(the_hole)); | 458 __ cmp(Operand::ForCell(cell), Immediate(the_hole)); |
| 459 } | 459 } |
| 460 __ j(not_equal, miss); | 460 __ j(not_equal, miss); |
| 461 } | 461 } |
| 462 | 462 |
| 463 | 463 |
| (...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1417 Handle<Code> LoadStubCompiler::CompileLoadGlobal( | 1417 Handle<Code> LoadStubCompiler::CompileLoadGlobal( |
| 1418 Handle<HeapType> type, | 1418 Handle<HeapType> type, |
| 1419 Handle<GlobalObject> global, | 1419 Handle<GlobalObject> global, |
| 1420 Handle<PropertyCell> cell, | 1420 Handle<PropertyCell> cell, |
| 1421 Handle<Name> name, | 1421 Handle<Name> name, |
| 1422 bool is_dont_delete) { | 1422 bool is_dont_delete) { |
| 1423 Label miss; | 1423 Label miss; |
| 1424 | 1424 |
| 1425 HandlerFrontendHeader(type, receiver(), global, name, &miss); | 1425 HandlerFrontendHeader(type, receiver(), global, name, &miss); |
| 1426 // Get the value from the cell. | 1426 // Get the value from the cell. |
| 1427 if (Serializer::enabled()) { | 1427 if (Serializer::enabled(isolate())) { |
| 1428 __ mov(eax, Immediate(cell)); | 1428 __ mov(eax, Immediate(cell)); |
| 1429 __ mov(eax, FieldOperand(eax, PropertyCell::kValueOffset)); | 1429 __ mov(eax, FieldOperand(eax, PropertyCell::kValueOffset)); |
| 1430 } else { | 1430 } else { |
| 1431 __ mov(eax, Operand::ForCell(cell)); | 1431 __ mov(eax, Operand::ForCell(cell)); |
| 1432 } | 1432 } |
| 1433 | 1433 |
| 1434 // Check for deleted property if property can actually be deleted. | 1434 // Check for deleted property if property can actually be deleted. |
| 1435 if (!is_dont_delete) { | 1435 if (!is_dont_delete) { |
| 1436 __ cmp(eax, factory()->the_hole_value()); | 1436 __ cmp(eax, factory()->the_hole_value()); |
| 1437 __ j(equal, &miss); | 1437 __ j(equal, &miss); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1545 // ----------------------------------- | 1545 // ----------------------------------- |
| 1546 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); | 1546 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); |
| 1547 } | 1547 } |
| 1548 | 1548 |
| 1549 | 1549 |
| 1550 #undef __ | 1550 #undef __ |
| 1551 | 1551 |
| 1552 } } // namespace v8::internal | 1552 } } // namespace v8::internal |
| 1553 | 1553 |
| 1554 #endif // V8_TARGET_ARCH_IA32 | 1554 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |