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

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

Issue 9114038: Fix for an ARM register allocation bug. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix bug in ARM gap resolver. Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/lithium-codegen-arm.h » ('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 14 matching lines...) Expand all
25 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 25 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 28 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 30 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
31 // OF THE POSSIBILITY OF SUCH DAMAGE. 31 // OF THE POSSIBILITY OF SUCH DAMAGE.
32 32
33 // The original source code covered by the above license above has been modified 33 // The original source code covered by the above license above has been modified
34 // significantly by Google Inc. 34 // significantly by Google Inc.
35 // Copyright 2006-2008 the V8 project authors. All rights reserved. 35 // Copyright 2012 the V8 project authors. All rights reserved.
36 36
37 #ifndef V8_ARM_ASSEMBLER_ARM_INL_H_ 37 #ifndef V8_ARM_ASSEMBLER_ARM_INL_H_
38 #define V8_ARM_ASSEMBLER_ARM_INL_H_ 38 #define V8_ARM_ASSEMBLER_ARM_INL_H_
39 39
40 #include "arm/assembler-arm.h" 40 #include "arm/assembler-arm.h"
41 #include "cpu.h" 41 #include "cpu.h"
42 #include "debug.h" 42 #include "debug.h"
43 43
44 44
45 namespace v8 { 45 namespace v8 {
46 namespace internal { 46 namespace internal {
47 47
48 48
49 int DwVfpRegister::ToAllocationIndex(DwVfpRegister reg) {
50 ASSERT(!reg.is(kDoubleRegZero));
51 ASSERT(!reg.is(kScratchDoubleReg));
52 return reg.code();
53 }
54
55
49 void RelocInfo::apply(intptr_t delta) { 56 void RelocInfo::apply(intptr_t delta) {
50 if (RelocInfo::IsInternalReference(rmode_)) { 57 if (RelocInfo::IsInternalReference(rmode_)) {
51 // absolute code pointer inside code object moves with the code object. 58 // absolute code pointer inside code object moves with the code object.
52 int32_t* p = reinterpret_cast<int32_t*>(pc_); 59 int32_t* p = reinterpret_cast<int32_t*>(pc_);
53 *p += delta; // relocate entry 60 *p += delta; // relocate entry
54 } 61 }
55 // We do not use pc relative addressing on ARM, so there is 62 // We do not use pc relative addressing on ARM, so there is
56 // nothing else to do. 63 // nothing else to do.
57 } 64 }
58 65
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 // CPU::FlushICache(pc, sizeof(target)); 376 // CPU::FlushICache(pc, sizeof(target));
370 // However, on ARM, no instruction was actually patched by the assignment 377 // However, on ARM, no instruction was actually patched by the assignment
371 // above; the target address is not part of an instruction, it is patched in 378 // above; the target address is not part of an instruction, it is patched in
372 // the constant pool and is read via a data access; the instruction accessing 379 // the constant pool and is read via a data access; the instruction accessing
373 // this address in the constant pool remains unchanged. 380 // this address in the constant pool remains unchanged.
374 } 381 }
375 382
376 } } // namespace v8::internal 383 } } // namespace v8::internal
377 384
378 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_ 385 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/lithium-codegen-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698