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 3692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3703 // map and function. The cached answer will be set when it is known below. | 3703 // map and function. The cached answer will be set when it is known below. |
3704 if (!HasCallSiteInlineCheck()) { | 3704 if (!HasCallSiteInlineCheck()) { |
3705 __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex); | 3705 __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex); |
3706 __ StoreRoot(map, Heap::kInstanceofCacheMapRootIndex); | 3706 __ StoreRoot(map, Heap::kInstanceofCacheMapRootIndex); |
3707 } else { | 3707 } else { |
3708 ASSERT(HasArgsInRegisters()); | 3708 ASSERT(HasArgsInRegisters()); |
3709 // Patch the (relocated) inlined map check. | 3709 // Patch the (relocated) inlined map check. |
3710 | 3710 |
3711 // The offset was stored in r4 safepoint slot. | 3711 // The offset was stored in r4 safepoint slot. |
3712 // (See LCodeGen::DoDeferredLInstanceOfKnownGlobal) | 3712 // (See LCodeGen::DoDeferredLInstanceOfKnownGlobal) |
3713 __ ldr(scratch, MacroAssembler::SafepointRegisterSlot(r4)); | 3713 __ LoadFromSafepointRegisterSlot(scratch, r4); |
3714 __ sub(inline_site, lr, scratch); | 3714 __ sub(inline_site, lr, scratch); |
3715 // Get the map location in scratch and patch it. | 3715 // Get the map location in scratch and patch it. |
3716 __ GetRelocatedValueLocation(inline_site, scratch); | 3716 __ GetRelocatedValueLocation(inline_site, scratch); |
3717 __ str(map, MemOperand(scratch)); | 3717 __ str(map, MemOperand(scratch)); |
3718 } | 3718 } |
3719 | 3719 |
3720 // Register mapping: r3 is object map and r4 is function prototype. | 3720 // Register mapping: r3 is object map and r4 is function prototype. |
3721 // Get prototype of object into r2. | 3721 // Get prototype of object into r2. |
3722 __ ldr(scratch, FieldMemOperand(map, Map::kPrototypeOffset)); | 3722 __ ldr(scratch, FieldMemOperand(map, Map::kPrototypeOffset)); |
3723 | 3723 |
(...skipping 2331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6055 __ strb(untagged_value, MemOperand(external_pointer, untagged_key)); | 6055 __ strb(untagged_value, MemOperand(external_pointer, untagged_key)); |
6056 __ Ret(); | 6056 __ Ret(); |
6057 } | 6057 } |
6058 | 6058 |
6059 | 6059 |
6060 #undef __ | 6060 #undef __ |
6061 | 6061 |
6062 } } // namespace v8::internal | 6062 } } // namespace v8::internal |
6063 | 6063 |
6064 #endif // V8_TARGET_ARCH_ARM | 6064 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |