OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_S390_MACRO_ASSEMBLER_S390_H_ | 5 #ifndef V8_S390_MACRO_ASSEMBLER_S390_H_ |
6 #define V8_S390_MACRO_ASSEMBLER_S390_H_ | 6 #define V8_S390_MACRO_ASSEMBLER_S390_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 Register scratch, DoubleRegister double_scratch); | 1173 Register scratch, DoubleRegister double_scratch); |
1174 | 1174 |
1175 // Floor a double and writes the value to the result register. | 1175 // Floor a double and writes the value to the result register. |
1176 // Go to exact if the conversion is exact (to be able to test -0), | 1176 // Go to exact if the conversion is exact (to be able to test -0), |
1177 // fall through calling code if an overflow occurred, else go to done. | 1177 // fall through calling code if an overflow occurred, else go to done. |
1178 // In return, input_high is loaded with high bits of input. | 1178 // In return, input_high is loaded with high bits of input. |
1179 void TryInt32Floor(Register result, DoubleRegister double_input, | 1179 void TryInt32Floor(Register result, DoubleRegister double_input, |
1180 Register input_high, Register scratch, | 1180 Register input_high, Register scratch, |
1181 DoubleRegister double_scratch, Label* done, Label* exact); | 1181 DoubleRegister double_scratch, Label* done, Label* exact); |
1182 | 1182 |
1183 // Perform ceiling of float in input_register and store in double_output. | |
1184 void FloatCeiling32(DoubleRegister double_output, DoubleRegister double_input, | |
1185 Register scratch, DoubleRegister double_scratch); | |
1186 | |
1187 // Perform floor of float in input_register and store in double_output. | |
1188 void FloatFloor32(DoubleRegister double_output, DoubleRegister double_input, | |
1189 Register scratch); | |
1190 | |
1191 // Perform ceiling of double in input_register and store in double_output. | |
1192 void FloatCeiling64(DoubleRegister double_output, DoubleRegister double_input, | |
1193 Register scratch, DoubleRegister double_scratch); | |
1194 | |
1195 // Perform floor of double in input_register and store in double_output. | |
1196 void FloatFloor64(DoubleRegister double_output, DoubleRegister double_input, | |
1197 Register scratch); | |
1198 | |
1199 // Performs a truncating conversion of a floating point number as used by | 1183 // Performs a truncating conversion of a floating point number as used by |
1200 // the JS bitwise operations. See ECMA-262 9.5: ToInt32. Goes to 'done' if it | 1184 // the JS bitwise operations. See ECMA-262 9.5: ToInt32. Goes to 'done' if it |
1201 // succeeds, otherwise falls through if result is saturated. On return | 1185 // succeeds, otherwise falls through if result is saturated. On return |
1202 // 'result' either holds answer, or is clobbered on fall through. | 1186 // 'result' either holds answer, or is clobbered on fall through. |
1203 // | 1187 // |
1204 // Only public for the test code in test-code-stubs-arm.cc. | 1188 // Only public for the test code in test-code-stubs-arm.cc. |
1205 void TryInlineTruncateDoubleToI(Register result, DoubleRegister input, | 1189 void TryInlineTruncateDoubleToI(Register result, DoubleRegister input, |
1206 Label* done); | 1190 Label* done); |
1207 | 1191 |
1208 // Performs a truncating conversion of a floating point number as used by | 1192 // Performs a truncating conversion of a floating point number as used by |
(...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1895 #define ACCESS_MASM(masm) \ | 1879 #define ACCESS_MASM(masm) \ |
1896 masm->stop(__FILE_LINE__); \ | 1880 masm->stop(__FILE_LINE__); \ |
1897 masm-> | 1881 masm-> |
1898 #else | 1882 #else |
1899 #define ACCESS_MASM(masm) masm-> | 1883 #define ACCESS_MASM(masm) masm-> |
1900 #endif | 1884 #endif |
1901 } // namespace internal | 1885 } // namespace internal |
1902 } // namespace v8 | 1886 } // namespace v8 |
1903 | 1887 |
1904 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_ | 1888 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_ |
OLD | NEW |