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

Side by Side Diff: src/arm/assembler-arm.cc

Issue 1224243002: [arm] Don't call branch_offset within CheckConstPool. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cctest repro Created 5 years, 5 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 | « no previous file | test/cctest/test-assembler-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 3820 matching lines...) Expand 10 before | Expand all | Expand 10 after
3831 { 3831 {
3832 // Block recursive calls to CheckConstPool. 3832 // Block recursive calls to CheckConstPool.
3833 BlockConstPoolScope block_const_pool(this); 3833 BlockConstPoolScope block_const_pool(this);
3834 RecordComment("[ Constant Pool"); 3834 RecordComment("[ Constant Pool");
3835 RecordConstPool(size); 3835 RecordConstPool(size);
3836 3836
3837 Label size_check; 3837 Label size_check;
3838 bind(&size_check); 3838 bind(&size_check);
3839 3839
3840 // Emit jump over constant pool if necessary. 3840 // Emit jump over constant pool if necessary.
3841 Label after_pool; 3841 if (require_jump) b(size - kPcLoadDelta);
3842 if (require_jump) {
3843 b(&after_pool);
3844 }
3845 3842
3846 // Put down constant pool marker "Undefined instruction". 3843 // Put down constant pool marker "Undefined instruction".
3847 // The data size helps disassembly know what to print. 3844 // The data size helps disassembly know what to print.
3848 emit(kConstantPoolMarker | 3845 emit(kConstantPoolMarker |
3849 EncodeConstantPoolLength(size_after_marker / kPointerSize)); 3846 EncodeConstantPoolLength(size_after_marker / kPointerSize));
3850 3847
3851 if (require_64_bit_align) { 3848 if (require_64_bit_align) {
3852 emit(kConstantPoolMarker); 3849 emit(kConstantPoolMarker);
3853 } 3850 }
3854 3851
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
3918 } 3915 }
3919 3916
3920 num_pending_32_bit_constants_ = 0; 3917 num_pending_32_bit_constants_ = 0;
3921 num_pending_64_bit_constants_ = 0; 3918 num_pending_64_bit_constants_ = 0;
3922 first_const_pool_32_use_ = -1; 3919 first_const_pool_32_use_ = -1;
3923 first_const_pool_64_use_ = -1; 3920 first_const_pool_64_use_ = -1;
3924 3921
3925 RecordComment("]"); 3922 RecordComment("]");
3926 3923
3927 DCHECK_EQ(size, SizeOfCodeGeneratedSince(&size_check)); 3924 DCHECK_EQ(size, SizeOfCodeGeneratedSince(&size_check));
3928
3929 if (after_pool.is_linked()) {
3930 bind(&after_pool);
3931 }
3932 } 3925 }
3933 3926
3934 // Since a constant pool was just emitted, move the check offset forward by 3927 // Since a constant pool was just emitted, move the check offset forward by
3935 // the standard interval. 3928 // the standard interval.
3936 next_buffer_check_ = pc_offset() + kCheckPoolInterval; 3929 next_buffer_check_ = pc_offset() + kCheckPoolInterval;
3937 } 3930 }
3938 3931
3939 3932
3940 void Assembler::PatchConstantPoolAccessInstruction( 3933 void Assembler::PatchConstantPoolAccessInstruction(
3941 int pc_offset, int offset, ConstantPoolEntry::Access access, 3934 int pc_offset, int offset, ConstantPoolEntry::Access access,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
3988 DCHECK(is_uint12(offset)); 3981 DCHECK(is_uint12(offset));
3989 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); 3982 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset));
3990 } 3983 }
3991 } 3984 }
3992 3985
3993 3986
3994 } // namespace internal 3987 } // namespace internal
3995 } // namespace v8 3988 } // namespace v8
3996 3989
3997 #endif // V8_TARGET_ARCH_ARM 3990 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | test/cctest/test-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698