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 1081 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1092 } | 1092 } |
1093 | 1093 |
1094 // ---- Object Utilities ---- | 1094 // ---- Object Utilities ---- |
1095 | 1095 |
1096 // Initialize fields with filler values. Fields starting at |current_address| | 1096 // Initialize fields with filler values. Fields starting at |current_address| |
1097 // not including |end_address| are overwritten with the value in |filler|. At | 1097 // not including |end_address| are overwritten with the value in |filler|. At |
1098 // the end the loop, |current_address| takes the value of |end_address|. | 1098 // the end the loop, |current_address| takes the value of |end_address|. |
1099 void InitializeFieldsWithFiller(Register current_address, | 1099 void InitializeFieldsWithFiller(Register current_address, |
1100 Register end_address, Register filler); | 1100 Register end_address, Register filler); |
1101 | 1101 |
1102 // Copies a number of bytes from src to dst. All passed registers are | |
1103 // clobbered. On exit src and dst will point to the place just after where the | |
1104 // last byte was read or written and length will be zero. Hint may be used to | |
1105 // determine which is the most efficient algorithm to use for copying. | |
1106 void CopyBytes(Register dst, | |
1107 Register src, | |
1108 Register length, | |
1109 Register scratch, | |
1110 CopyHint hint = kCopyUnknown); | |
1111 | |
1112 // ---- String Utilities ---- | 1102 // ---- String Utilities ---- |
1113 | 1103 |
1114 | 1104 |
1115 // Jump to label if either object is not a sequential one-byte string. | 1105 // Jump to label if either object is not a sequential one-byte string. |
1116 // Optionally perform a smi check on the objects first. | 1106 // Optionally perform a smi check on the objects first. |
1117 void JumpIfEitherIsNotSequentialOneByteStrings( | 1107 void JumpIfEitherIsNotSequentialOneByteStrings( |
1118 Register first, Register second, Register scratch1, Register scratch2, | 1108 Register first, Register second, Register scratch1, Register scratch2, |
1119 Label* failure, SmiCheckType smi_check = DO_SMI_CHECK); | 1109 Label* failure, SmiCheckType smi_check = DO_SMI_CHECK); |
1120 | 1110 |
1121 // Check if instance type is sequential one-byte string and jump to label if | 1111 // Check if instance type is sequential one-byte string and jump to label if |
(...skipping 1167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2289 class RegisterBits : public BitField<unsigned, 0, 5> {}; | 2279 class RegisterBits : public BitField<unsigned, 0, 5> {}; |
2290 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; | 2280 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; |
2291 }; | 2281 }; |
2292 | 2282 |
2293 } // namespace internal | 2283 } // namespace internal |
2294 } // namespace v8 | 2284 } // namespace v8 |
2295 | 2285 |
2296 #define ACCESS_MASM(masm) masm-> | 2286 #define ACCESS_MASM(masm) masm-> |
2297 | 2287 |
2298 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2288 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |