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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 enum ArrayHasHoles { kArrayCantHaveHoles, kArrayCanHaveHoles }; | 160 enum ArrayHasHoles { kArrayCantHaveHoles, kArrayCanHaveHoles }; |
161 enum CopyHint { kCopyUnknown, kCopyShort, kCopyLong }; | 161 enum CopyHint { kCopyUnknown, kCopyShort, kCopyLong }; |
162 enum DiscardMoveMode { kDontDiscardForSameWReg, kDiscardForSameWReg }; | 162 enum DiscardMoveMode { kDontDiscardForSameWReg, kDiscardForSameWReg }; |
163 enum SeqStringSetCharCheckIndexType { kIndexIsSmi, kIndexIsInteger32 }; | 163 enum SeqStringSetCharCheckIndexType { kIndexIsSmi, kIndexIsInteger32 }; |
164 | 164 |
165 class MacroAssembler : public Assembler { | 165 class MacroAssembler : public Assembler { |
166 public: | 166 public: |
167 MacroAssembler(Isolate* isolate, byte* buffer, unsigned buffer_size, | 167 MacroAssembler(Isolate* isolate, byte* buffer, unsigned buffer_size, |
168 CodeObjectRequired create_code_object); | 168 CodeObjectRequired create_code_object); |
169 | 169 |
| 170 Isolate* isolate() const { return isolate_; } |
| 171 |
170 Handle<Object> CodeObject() { | 172 Handle<Object> CodeObject() { |
171 DCHECK(!code_object_.is_null()); | 173 DCHECK(!code_object_.is_null()); |
172 return code_object_; | 174 return code_object_; |
173 } | 175 } |
174 | 176 |
175 // Instruction set functions ------------------------------------------------ | 177 // Instruction set functions ------------------------------------------------ |
176 // Logical macros. | 178 // Logical macros. |
177 inline void And(const Register& rd, | 179 inline void And(const Register& rd, |
178 const Register& rn, | 180 const Register& rn, |
179 const Operand& operand); | 181 const Operand& operand); |
(...skipping 1769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1949 Label* on_failed_conversion = NULL); | 1951 Label* on_failed_conversion = NULL); |
1950 | 1952 |
1951 bool generating_stub_; | 1953 bool generating_stub_; |
1952 #if DEBUG | 1954 #if DEBUG |
1953 // Tell whether any of the macro instruction can be used. When false the | 1955 // Tell whether any of the macro instruction can be used. When false the |
1954 // MacroAssembler will assert if a method which can emit a variable number | 1956 // MacroAssembler will assert if a method which can emit a variable number |
1955 // of instructions is called. | 1957 // of instructions is called. |
1956 bool allow_macro_instructions_; | 1958 bool allow_macro_instructions_; |
1957 #endif | 1959 #endif |
1958 bool has_frame_; | 1960 bool has_frame_; |
| 1961 Isolate* isolate_; |
1959 | 1962 |
1960 // The Abort method should call a V8 runtime function, but the CallRuntime | 1963 // The Abort method should call a V8 runtime function, but the CallRuntime |
1961 // mechanism depends on CEntryStub. If use_real_aborts is false, Abort will | 1964 // mechanism depends on CEntryStub. If use_real_aborts is false, Abort will |
1962 // use a simpler abort mechanism that doesn't depend on CEntryStub. | 1965 // use a simpler abort mechanism that doesn't depend on CEntryStub. |
1963 // | 1966 // |
1964 // The purpose of this is to allow Aborts to be compiled whilst CEntryStub is | 1967 // The purpose of this is to allow Aborts to be compiled whilst CEntryStub is |
1965 // being generated. | 1968 // being generated. |
1966 bool use_real_aborts_; | 1969 bool use_real_aborts_; |
1967 | 1970 |
1968 // This handle will be patched with the code object on installation. | 1971 // This handle will be patched with the code object on installation. |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2150 class RegisterBits : public BitField<unsigned, 0, 5> {}; | 2153 class RegisterBits : public BitField<unsigned, 0, 5> {}; |
2151 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; | 2154 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; |
2152 }; | 2155 }; |
2153 | 2156 |
2154 } // namespace internal | 2157 } // namespace internal |
2155 } // namespace v8 | 2158 } // namespace v8 |
2156 | 2159 |
2157 #define ACCESS_MASM(masm) masm-> | 2160 #define ACCESS_MASM(masm) masm-> |
2158 | 2161 |
2159 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2162 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |