OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "src/arm64/assembler-arm64.h" | 10 #include "src/arm64/assembler-arm64.h" |
(...skipping 1985 matching lines...) Loading... |
1996 // This handle will be patched with the code object on installation. | 1996 // This handle will be patched with the code object on installation. |
1997 Handle<Object> code_object_; | 1997 Handle<Object> code_object_; |
1998 | 1998 |
1999 // The register to use as a stack pointer for stack operations. | 1999 // The register to use as a stack pointer for stack operations. |
2000 Register sp_; | 2000 Register sp_; |
2001 | 2001 |
2002 // Scratch registers available for use by the MacroAssembler. | 2002 // Scratch registers available for use by the MacroAssembler. |
2003 CPURegList tmp_list_; | 2003 CPURegList tmp_list_; |
2004 CPURegList fptmp_list_; | 2004 CPURegList fptmp_list_; |
2005 | 2005 |
2006 void InitializeNewString(Register string, | |
2007 Register length, | |
2008 Heap::RootListIndex map_index, | |
2009 Register scratch1, | |
2010 Register scratch2); | |
2011 | |
2012 public: | 2006 public: |
2013 // Far branches resolving. | 2007 // Far branches resolving. |
2014 // | 2008 // |
2015 // The various classes of branch instructions with immediate offsets have | 2009 // The various classes of branch instructions with immediate offsets have |
2016 // different ranges. While the Assembler will fail to assemble a branch | 2010 // different ranges. While the Assembler will fail to assemble a branch |
2017 // exceeding its range, the MacroAssembler offers a mechanism to resolve | 2011 // exceeding its range, the MacroAssembler offers a mechanism to resolve |
2018 // branches to too distant targets, either by tweaking the generated code to | 2012 // branches to too distant targets, either by tweaking the generated code to |
2019 // use branch instructions with wider ranges or generating veneers. | 2013 // use branch instructions with wider ranges or generating veneers. |
2020 // | 2014 // |
2021 // Currently branches to distant targets are resolved using unconditional | 2015 // Currently branches to distant targets are resolved using unconditional |
(...skipping 166 matching lines...) Loading... |
2188 class RegisterBits : public BitField<unsigned, 0, 5> {}; | 2182 class RegisterBits : public BitField<unsigned, 0, 5> {}; |
2189 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; | 2183 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; |
2190 }; | 2184 }; |
2191 | 2185 |
2192 } // namespace internal | 2186 } // namespace internal |
2193 } // namespace v8 | 2187 } // namespace v8 |
2194 | 2188 |
2195 #define ACCESS_MASM(masm) masm-> | 2189 #define ACCESS_MASM(masm) masm-> |
2196 | 2190 |
2197 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2191 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |