| 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 "v8.h" | 5 #include "v8.h" |
| 6 | 6 |
| 7 #include "arm64/lithium-codegen-arm64.h" | 7 #include "arm64/lithium-codegen-arm64.h" |
| 8 #include "arm64/lithium-gap-resolver-arm64.h" | 8 #include "arm64/lithium-gap-resolver-arm64.h" |
| 9 #include "code-stubs.h" | 9 #include "code-stubs.h" |
| 10 #include "stub-cache.h" | 10 #include "stub-cache.h" |
| (...skipping 2533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2544 void LCodeGen::DoConstantS(LConstantS* instr) { | 2544 void LCodeGen::DoConstantS(LConstantS* instr) { |
| 2545 __ Mov(ToRegister(instr->result()), Operand(instr->value())); | 2545 __ Mov(ToRegister(instr->result()), Operand(instr->value())); |
| 2546 } | 2546 } |
| 2547 | 2547 |
| 2548 | 2548 |
| 2549 void LCodeGen::DoConstantT(LConstantT* instr) { | 2549 void LCodeGen::DoConstantT(LConstantT* instr) { |
| 2550 Handle<Object> object = instr->value(isolate()); | 2550 Handle<Object> object = instr->value(isolate()); |
| 2551 AllowDeferredHandleDereference smi_check; | 2551 AllowDeferredHandleDereference smi_check; |
| 2552 if (instr->hydrogen()->HasObjectMap()) { | 2552 if (instr->hydrogen()->HasObjectMap()) { |
| 2553 Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle(); | 2553 Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle(); |
| 2554 CHECK(object->IsHeapObject()); | 2554 ASSERT(object->IsHeapObject()); |
| 2555 CHECK(!object_map->is_stable() || | 2555 ASSERT(!object_map->is_stable() || |
| 2556 *object_map == Handle<HeapObject>::cast(object)->map()); | 2556 *object_map == Handle<HeapObject>::cast(object)->map()); |
| 2557 USE(object_map); |
| 2557 } | 2558 } |
| 2558 __ LoadObject(ToRegister(instr->result()), object); | 2559 __ LoadObject(ToRegister(instr->result()), object); |
| 2559 } | 2560 } |
| 2560 | 2561 |
| 2561 | 2562 |
| 2562 void LCodeGen::DoContext(LContext* instr) { | 2563 void LCodeGen::DoContext(LContext* instr) { |
| 2563 // If there is a non-return use, the context must be moved to a register. | 2564 // If there is a non-return use, the context must be moved to a register. |
| 2564 Register result = ToRegister(instr->result()); | 2565 Register result = ToRegister(instr->result()); |
| 2565 if (info()->IsOptimizing()) { | 2566 if (info()->IsOptimizing()) { |
| 2566 __ Ldr(result, MemOperand(fp, StandardFrameConstants::kContextOffset)); | 2567 __ Ldr(result, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
| (...skipping 3425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5992 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); | 5993 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
| 5993 // Index is equal to negated out of object property index plus 1. | 5994 // Index is equal to negated out of object property index plus 1. |
| 5994 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); | 5995 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); |
| 5995 __ Ldr(result, FieldMemOperand(result, | 5996 __ Ldr(result, FieldMemOperand(result, |
| 5996 FixedArray::kHeaderSize - kPointerSize)); | 5997 FixedArray::kHeaderSize - kPointerSize)); |
| 5997 __ Bind(deferred->exit()); | 5998 __ Bind(deferred->exit()); |
| 5998 __ Bind(&done); | 5999 __ Bind(&done); |
| 5999 } | 6000 } |
| 6000 | 6001 |
| 6001 } } // namespace v8::internal | 6002 } } // namespace v8::internal |
| OLD | NEW |