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

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

Issue 284303003: Fix MacroAssembler::Prologue for Arm when FLAG_out_off_line_constant_pool is enabled. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #include "v8.h" 7 #include "v8.h"
8 8
9 #if V8_TARGET_ARCH_ARM 9 #if V8_TARGET_ARCH_ARM
10 10
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 // Adjust FP to point to saved FP. 908 // Adjust FP to point to saved FP.
909 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); 909 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp));
910 if (FLAG_enable_ool_constant_pool) { 910 if (FLAG_enable_ool_constant_pool) {
911 LoadConstantPoolPointerRegister(); 911 LoadConstantPoolPointerRegister();
912 set_constant_pool_available(true); 912 set_constant_pool_available(true);
913 } 913 }
914 } 914 }
915 915
916 916
917 void MacroAssembler::Prologue(bool code_pre_aging) { 917 void MacroAssembler::Prologue(bool code_pre_aging) {
918 PredictableCodeSizeScope predictible_code_size_scope( 918 { PredictableCodeSizeScope predictible_code_size_scope(
919 this, kNoCodeAgeSequenceLength); 919 this, kNoCodeAgeSequenceLength);
920 // The following three instructions must remain together and unmodified 920 // The following three instructions must remain together and unmodified
921 // for code aging to work properly. 921 // for code aging to work properly.
922 if (code_pre_aging) { 922 if (code_pre_aging) {
923 // Pre-age the code. 923 // Pre-age the code.
924 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); 924 Code* stub = Code::GetPreAgedCodeAgeStub(isolate());
925 add(r0, pc, Operand(-8)); 925 add(r0, pc, Operand(-8));
926 ldr(pc, MemOperand(pc, -4)); 926 ldr(pc, MemOperand(pc, -4));
927 emit_code_stub_address(stub); 927 emit_code_stub_address(stub);
928 } else { 928 } else {
929 PushFixedFrame(r1); 929 PushFixedFrame(r1);
930 nop(ip.code()); 930 nop(ip.code());
931 // Adjust FP to point to saved FP. 931 // Adjust FP to point to saved FP.
932 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); 932 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp));
933 }
933 } 934 }
934 if (FLAG_enable_ool_constant_pool) { 935 if (FLAG_enable_ool_constant_pool) {
935 LoadConstantPoolPointerRegister(); 936 LoadConstantPoolPointerRegister();
936 set_constant_pool_available(true); 937 set_constant_pool_available(true);
937 } 938 }
938 } 939 }
939 940
940 941
941 void MacroAssembler::EnterFrame(StackFrame::Type type, 942 void MacroAssembler::EnterFrame(StackFrame::Type type,
942 bool load_constant_pool) { 943 bool load_constant_pool) {
(...skipping 3120 matching lines...) Expand 10 before | Expand all | Expand 10 after
4063 sub(result, result, Operand(dividend)); 4064 sub(result, result, Operand(dividend));
4064 } 4065 }
4065 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift())); 4066 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift()));
4066 add(result, result, Operand(dividend, LSR, 31)); 4067 add(result, result, Operand(dividend, LSR, 31));
4067 } 4068 }
4068 4069
4069 4070
4070 } } // namespace v8::internal 4071 } } // namespace v8::internal
4071 4072
4072 #endif // V8_TARGET_ARCH_ARM 4073 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698