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 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
(...skipping 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); | 1036 add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
1037 } | 1037 } |
1038 } | 1038 } |
1039 if (FLAG_enable_embedded_constant_pool) { | 1039 if (FLAG_enable_embedded_constant_pool) { |
1040 LoadConstantPoolPointerRegister(); | 1040 LoadConstantPoolPointerRegister(); |
1041 set_constant_pool_available(true); | 1041 set_constant_pool_available(true); |
1042 } | 1042 } |
1043 } | 1043 } |
1044 | 1044 |
1045 | 1045 |
| 1046 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) { |
| 1047 ldr(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
| 1048 ldr(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset)); |
| 1049 ldr(vector, |
| 1050 FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset)); |
| 1051 } |
| 1052 |
| 1053 |
1046 void MacroAssembler::EnterFrame(StackFrame::Type type, | 1054 void MacroAssembler::EnterFrame(StackFrame::Type type, |
1047 bool load_constant_pool_pointer_reg) { | 1055 bool load_constant_pool_pointer_reg) { |
1048 // r0-r3: preserved | 1056 // r0-r3: preserved |
1049 PushFixedFrame(); | 1057 PushFixedFrame(); |
1050 if (FLAG_enable_embedded_constant_pool && load_constant_pool_pointer_reg) { | 1058 if (FLAG_enable_embedded_constant_pool && load_constant_pool_pointer_reg) { |
1051 LoadConstantPoolPointerRegister(); | 1059 LoadConstantPoolPointerRegister(); |
1052 } | 1060 } |
1053 mov(ip, Operand(Smi::FromInt(type))); | 1061 mov(ip, Operand(Smi::FromInt(type))); |
1054 push(ip); | 1062 push(ip); |
1055 mov(ip, Operand(CodeObject())); | 1063 mov(ip, Operand(CodeObject())); |
(...skipping 2654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3710 } | 3718 } |
3711 } | 3719 } |
3712 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3720 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
3713 add(result, result, Operand(dividend, LSR, 31)); | 3721 add(result, result, Operand(dividend, LSR, 31)); |
3714 } | 3722 } |
3715 | 3723 |
3716 } // namespace internal | 3724 } // namespace internal |
3717 } // namespace v8 | 3725 } // namespace v8 |
3718 | 3726 |
3719 #endif // V8_TARGET_ARCH_ARM | 3727 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |