OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |