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/globals.h" | 10 #include "src/globals.h" |
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 inline void SmiTag(Register smi); | 862 inline void SmiTag(Register smi); |
863 inline void SmiUntag(Register dst, Register src); | 863 inline void SmiUntag(Register dst, Register src); |
864 inline void SmiUntag(Register smi); | 864 inline void SmiUntag(Register smi); |
865 inline void SmiUntagToDouble(FPRegister dst, | 865 inline void SmiUntagToDouble(FPRegister dst, |
866 Register src, | 866 Register src, |
867 UntagMode mode = kNotSpeculativeUntag); | 867 UntagMode mode = kNotSpeculativeUntag); |
868 inline void SmiUntagToFloat(FPRegister dst, | 868 inline void SmiUntagToFloat(FPRegister dst, |
869 Register src, | 869 Register src, |
870 UntagMode mode = kNotSpeculativeUntag); | 870 UntagMode mode = kNotSpeculativeUntag); |
871 | 871 |
| 872 // Tag and push in one step. |
| 873 inline void SmiTagAndPush(Register src); |
| 874 inline void SmiTagAndPush(Register src1, Register src2); |
| 875 |
872 // Compute the absolute value of 'smi' and leave the result in 'smi' | 876 // Compute the absolute value of 'smi' and leave the result in 'smi' |
873 // register. If 'smi' is the most negative SMI, the absolute value cannot | 877 // register. If 'smi' is the most negative SMI, the absolute value cannot |
874 // be represented as a SMI and a jump to 'slow' is done. | 878 // be represented as a SMI and a jump to 'slow' is done. |
875 void SmiAbs(const Register& smi, Label* slow); | 879 void SmiAbs(const Register& smi, Label* slow); |
876 | 880 |
877 inline void JumpIfSmi(Register value, | 881 inline void JumpIfSmi(Register value, |
878 Label* smi_label, | 882 Label* smi_label, |
879 Label* not_smi_label = NULL); | 883 Label* not_smi_label = NULL); |
880 inline void JumpIfNotSmi(Register value, Label* not_smi_label); | 884 inline void JumpIfNotSmi(Register value, Label* not_smi_label); |
881 inline void JumpIfBothSmi(Register value1, | 885 inline void JumpIfBothSmi(Register value1, |
(...skipping 1417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2299 #error "Unsupported option" | 2303 #error "Unsupported option" |
2300 #define CODE_COVERAGE_STRINGIFY(x) #x | 2304 #define CODE_COVERAGE_STRINGIFY(x) #x |
2301 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2305 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2302 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2306 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2303 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2307 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2304 #else | 2308 #else |
2305 #define ACCESS_MASM(masm) masm-> | 2309 #define ACCESS_MASM(masm) masm-> |
2306 #endif | 2310 #endif |
2307 | 2311 |
2308 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2312 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |