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

Side by Side Diff: src/arm/assembler-arm-inl.h

Issue 1155673005: Fix issues with Arm's use of embedded constant pools (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move DataAlign implementation to common code 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
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | src/arm/builtins-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 return Assembler::target_address_at(pc_, host_); 113 return Assembler::target_address_at(pc_, host_);
114 } 114 }
115 115
116 116
117 Address RelocInfo::target_address_address() { 117 Address RelocInfo::target_address_address() {
118 DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) 118 DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
119 || rmode_ == EMBEDDED_OBJECT 119 || rmode_ == EMBEDDED_OBJECT
120 || rmode_ == EXTERNAL_REFERENCE); 120 || rmode_ == EXTERNAL_REFERENCE);
121 if (FLAG_enable_embedded_constant_pool || 121 if (FLAG_enable_embedded_constant_pool ||
122 Assembler::IsMovW(Memory::int32_at(pc_))) { 122 Assembler::IsMovW(Memory::int32_at(pc_))) {
123 // We return the PC for ool constant pool since this function is used by the 123 // We return the PC for embedded constant pool since this function is used
124 // serializer and expects the address to reside within the code object. 124 // by the serializer and expects the address to reside within the code
125 // object.
125 return reinterpret_cast<Address>(pc_); 126 return reinterpret_cast<Address>(pc_);
126 } else { 127 } else {
127 DCHECK(Assembler::IsLdrPcImmediateOffset(Memory::int32_at(pc_))); 128 DCHECK(Assembler::IsLdrPcImmediateOffset(Memory::int32_at(pc_)));
128 return constant_pool_entry_address(); 129 return constant_pool_entry_address();
129 } 130 }
130 } 131 }
131 132
132 133
133 Address RelocInfo::constant_pool_entry_address() { 134 Address RelocInfo::constant_pool_entry_address() {
134 DCHECK(IsInConstantPool()); 135 DCHECK(IsInConstantPool());
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { 693 if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
693 CpuFeatures::FlushICache(pc, 4 * kInstrSize); 694 CpuFeatures::FlushICache(pc, 4 * kInstrSize);
694 } 695 }
695 } 696 }
696 } 697 }
697 698
698 699
699 } } // namespace v8::internal 700 } } // namespace v8::internal
700 701
701 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_ 702 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | src/arm/builtins-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698