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 "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #if V8_TARGET_ARCH_ARM | 9 #if V8_TARGET_ARCH_ARM |
10 | 10 |
(...skipping 2261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2272 | 2272 |
2273 | 2273 |
2274 void MacroAssembler::CmpWeakValue(Register value, Handle<WeakCell> cell, | 2274 void MacroAssembler::CmpWeakValue(Register value, Handle<WeakCell> cell, |
2275 Register scratch) { | 2275 Register scratch) { |
2276 mov(scratch, Operand(cell)); | 2276 mov(scratch, Operand(cell)); |
2277 ldr(scratch, FieldMemOperand(scratch, WeakCell::kValueOffset)); | 2277 ldr(scratch, FieldMemOperand(scratch, WeakCell::kValueOffset)); |
2278 cmp(value, scratch); | 2278 cmp(value, scratch); |
2279 } | 2279 } |
2280 | 2280 |
2281 | 2281 |
| 2282 void MacroAssembler::GetWeakValue(Register value, Handle<WeakCell> cell) { |
| 2283 mov(value, Operand(cell)); |
| 2284 ldr(value, FieldMemOperand(value, WeakCell::kValueOffset)); |
| 2285 } |
| 2286 |
| 2287 |
2282 void MacroAssembler::LoadWeakValue(Register value, Handle<WeakCell> cell, | 2288 void MacroAssembler::LoadWeakValue(Register value, Handle<WeakCell> cell, |
2283 Label* miss) { | 2289 Label* miss) { |
2284 mov(value, Operand(cell)); | 2290 GetWeakValue(value, cell); |
2285 ldr(value, FieldMemOperand(value, WeakCell::kValueOffset)); | |
2286 JumpIfSmi(value, miss); | 2291 JumpIfSmi(value, miss); |
2287 } | 2292 } |
2288 | 2293 |
2289 | 2294 |
2290 void MacroAssembler::TryGetFunctionPrototype(Register function, | 2295 void MacroAssembler::TryGetFunctionPrototype(Register function, |
2291 Register result, | 2296 Register result, |
2292 Register scratch, | 2297 Register scratch, |
2293 Label* miss, | 2298 Label* miss, |
2294 bool miss_on_bound_function) { | 2299 bool miss_on_bound_function) { |
2295 Label non_instance; | 2300 Label non_instance; |
(...skipping 1674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3970 } | 3975 } |
3971 } | 3976 } |
3972 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3977 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
3973 add(result, result, Operand(dividend, LSR, 31)); | 3978 add(result, result, Operand(dividend, LSR, 31)); |
3974 } | 3979 } |
3975 | 3980 |
3976 } // namespace internal | 3981 } // namespace internal |
3977 } // namespace v8 | 3982 } // namespace v8 |
3978 | 3983 |
3979 #endif // V8_TARGET_ARCH_ARM | 3984 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |