| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1649 VisitForAccumulatorValue(prop->obj()); | 1649 VisitForAccumulatorValue(prop->obj()); |
| 1650 __ mov(r1, r0); | 1650 __ mov(r1, r0); |
| 1651 __ pop(r0); // Restore value. | 1651 __ pop(r0); // Restore value. |
| 1652 __ mov(r2, Operand(prop->key()->AsLiteral()->handle())); | 1652 __ mov(r2, Operand(prop->key()->AsLiteral()->handle())); |
| 1653 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); | 1653 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); |
| 1654 EmitCallIC(ic, RelocInfo::CODE_TARGET); | 1654 EmitCallIC(ic, RelocInfo::CODE_TARGET); |
| 1655 break; | 1655 break; |
| 1656 } | 1656 } |
| 1657 case KEYED_PROPERTY: { | 1657 case KEYED_PROPERTY: { |
| 1658 __ push(r0); // Preserve value. | 1658 __ push(r0); // Preserve value. |
| 1659 VisitForStackValue(prop->obj()); | 1659 if (prop->is_synthetic()) { |
| 1660 VisitForAccumulatorValue(prop->key()); | 1660 ASSERT(prop->obj()->AsVariableProxy() != NULL); |
| 1661 __ mov(r1, r0); | 1661 ASSERT(prop->key()->AsLiteral() != NULL); |
| 1662 __ pop(r2); | 1662 { AccumulatorValueContext for_object(this); |
| 1663 EmitVariableLoad(prop->obj()->AsVariableProxy()->var()); |
| 1664 } |
| 1665 __ mov(r2, r0); |
| 1666 __ mov(r1, Operand(prop->key()->AsLiteral()->handle())); |
| 1667 } else { |
| 1668 VisitForStackValue(prop->obj()); |
| 1669 VisitForAccumulatorValue(prop->key()); |
| 1670 __ mov(r1, r0); |
| 1671 __ pop(r2); |
| 1672 } |
| 1663 __ pop(r0); // Restore value. | 1673 __ pop(r0); // Restore value. |
| 1664 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); | 1674 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); |
| 1665 EmitCallIC(ic, RelocInfo::CODE_TARGET); | 1675 EmitCallIC(ic, RelocInfo::CODE_TARGET); |
| 1666 break; | 1676 break; |
| 1667 } | 1677 } |
| 1668 } | 1678 } |
| 1669 PrepareForBailoutForId(bailout_ast_id, TOS_REG); | 1679 PrepareForBailoutForId(bailout_ast_id, TOS_REG); |
| 1670 context()->Plug(r0); | 1680 context()->Plug(r0); |
| 1671 } | 1681 } |
| 1672 | 1682 |
| (...skipping 2022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3695 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. | 3705 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. |
| 3696 __ add(pc, r1, Operand(masm_->CodeObject())); | 3706 __ add(pc, r1, Operand(masm_->CodeObject())); |
| 3697 } | 3707 } |
| 3698 | 3708 |
| 3699 | 3709 |
| 3700 #undef __ | 3710 #undef __ |
| 3701 | 3711 |
| 3702 } } // namespace v8::internal | 3712 } } // namespace v8::internal |
| 3703 | 3713 |
| 3704 #endif // V8_TARGET_ARCH_ARM | 3714 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |