| 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 1962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1973 scratch1, | 1973 scratch1, |
| 1974 scratch2); | 1974 scratch2); |
| 1975 } | 1975 } |
| 1976 | 1976 |
| 1977 | 1977 |
| 1978 void MacroAssembler::AllocateAsciiConsString(Register result, | 1978 void MacroAssembler::AllocateAsciiConsString(Register result, |
| 1979 Register length, | 1979 Register length, |
| 1980 Register scratch1, | 1980 Register scratch1, |
| 1981 Register scratch2, | 1981 Register scratch2, |
| 1982 Label* gc_required) { | 1982 Label* gc_required) { |
| 1983 Label allocate_new_space, install_map; | |
| 1984 AllocationFlags flags = TAG_OBJECT; | |
| 1985 | |
| 1986 ExternalReference high_promotion_mode = ExternalReference:: | |
| 1987 new_space_high_promotion_mode_active_address(isolate()); | |
| 1988 mov(scratch1, Operand(high_promotion_mode)); | |
| 1989 ldr(scratch1, MemOperand(scratch1, 0)); | |
| 1990 cmp(scratch1, Operand::Zero()); | |
| 1991 b(eq, &allocate_new_space); | |
| 1992 | |
| 1993 Allocate(ConsString::kSize, | 1983 Allocate(ConsString::kSize, |
| 1994 result, | 1984 result, |
| 1995 scratch1, | 1985 scratch1, |
| 1996 scratch2, | 1986 scratch2, |
| 1997 gc_required, | 1987 gc_required, |
| 1998 static_cast<AllocationFlags>(flags | PRETENURE_OLD_POINTER_SPACE)); | 1988 TAG_OBJECT); |
| 1999 | |
| 2000 jmp(&install_map); | |
| 2001 | |
| 2002 bind(&allocate_new_space); | |
| 2003 Allocate(ConsString::kSize, | |
| 2004 result, | |
| 2005 scratch1, | |
| 2006 scratch2, | |
| 2007 gc_required, | |
| 2008 flags); | |
| 2009 | |
| 2010 bind(&install_map); | |
| 2011 | 1989 |
| 2012 InitializeNewString(result, | 1990 InitializeNewString(result, |
| 2013 length, | 1991 length, |
| 2014 Heap::kConsAsciiStringMapRootIndex, | 1992 Heap::kConsAsciiStringMapRootIndex, |
| 2015 scratch1, | 1993 scratch1, |
| 2016 scratch2); | 1994 scratch2); |
| 2017 } | 1995 } |
| 2018 | 1996 |
| 2019 | 1997 |
| 2020 void MacroAssembler::AllocateTwoByteSlicedString(Register result, | 1998 void MacroAssembler::AllocateTwoByteSlicedString(Register result, |
| (...skipping 2039 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4060 sub(result, result, Operand(dividend)); | 4038 sub(result, result, Operand(dividend)); |
| 4061 } | 4039 } |
| 4062 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift())); | 4040 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift())); |
| 4063 add(result, result, Operand(dividend, LSR, 31)); | 4041 add(result, result, Operand(dividend, LSR, 31)); |
| 4064 } | 4042 } |
| 4065 | 4043 |
| 4066 | 4044 |
| 4067 } } // namespace v8::internal | 4045 } } // namespace v8::internal |
| 4068 | 4046 |
| 4069 #endif // V8_TARGET_ARCH_ARM | 4047 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |