OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/globals.h" | 9 #include "src/globals.h" |
10 #include "src/mips64/assembler-mips64.h" | 10 #include "src/mips64/assembler-mips64.h" |
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1062 Label* fail); | 1062 Label* fail); |
1063 | 1063 |
1064 // Check to see if maybe_number can be stored as a double in | 1064 // Check to see if maybe_number can be stored as a double in |
1065 // FastDoubleElements. If it can, store it at the index specified by key in | 1065 // FastDoubleElements. If it can, store it at the index specified by key in |
1066 // the FastDoubleElements array elements. Otherwise jump to fail. | 1066 // the FastDoubleElements array elements. Otherwise jump to fail. |
1067 void StoreNumberToDoubleElements(Register value_reg, | 1067 void StoreNumberToDoubleElements(Register value_reg, |
1068 Register key_reg, | 1068 Register key_reg, |
1069 Register elements_reg, | 1069 Register elements_reg, |
1070 Register scratch1, | 1070 Register scratch1, |
1071 Register scratch2, | 1071 Register scratch2, |
1072 Register scratch3, | |
1073 Label* fail, | 1072 Label* fail, |
1074 int elements_offset = 0); | 1073 int elements_offset = 0); |
1075 | 1074 |
1076 // Compare an object's map with the specified map and its transitioned | 1075 // Compare an object's map with the specified map and its transitioned |
1077 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Jumps to | 1076 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Jumps to |
1078 // "branch_to" if the result of the comparison is "cond". If multiple map | 1077 // "branch_to" if the result of the comparison is "cond". If multiple map |
1079 // compares are required, the compare sequences branches to early_success. | 1078 // compares are required, the compare sequences branches to early_success. |
1080 void CompareMapAndBranch(Register obj, | 1079 void CompareMapAndBranch(Register obj, |
1081 Register scratch, | 1080 Register scratch, |
1082 Handle<Map> map, | 1081 Handle<Map> map, |
(...skipping 26 matching lines...) Expand all Loading... |
1109 Label* fail, | 1108 Label* fail, |
1110 SmiCheckType smi_check_type); | 1109 SmiCheckType smi_check_type); |
1111 | 1110 |
1112 // Check if the map of an object is equal to a specified weak map and branch | 1111 // Check if the map of an object is equal to a specified weak map and branch |
1113 // to a specified target if equal. Skip the smi check if not required | 1112 // to a specified target if equal. Skip the smi check if not required |
1114 // (object is known to be a heap object) | 1113 // (object is known to be a heap object) |
1115 void DispatchWeakMap(Register obj, Register scratch1, Register scratch2, | 1114 void DispatchWeakMap(Register obj, Register scratch1, Register scratch2, |
1116 Handle<WeakCell> cell, Handle<Code> success, | 1115 Handle<WeakCell> cell, Handle<Code> success, |
1117 SmiCheckType smi_check_type); | 1116 SmiCheckType smi_check_type); |
1118 | 1117 |
| 1118 // If the value is a NaN, canonicalize the value else, do nothing. |
| 1119 void FPUCanonicalizeNaN(const DoubleRegister dst, const DoubleRegister src); |
| 1120 |
| 1121 |
1119 // Get value of the weak cell. | 1122 // Get value of the weak cell. |
1120 void GetWeakValue(Register value, Handle<WeakCell> cell); | 1123 void GetWeakValue(Register value, Handle<WeakCell> cell); |
1121 | 1124 |
1122 // Load the value of the weak cell in the value register. Branch to the | 1125 // Load the value of the weak cell in the value register. Branch to the |
1123 // given miss label is the weak cell was cleared. | 1126 // given miss label is the weak cell was cleared. |
1124 void LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss); | 1127 void LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss); |
1125 | 1128 |
1126 // Load and check the instance type of an object for being a string. | 1129 // Load and check the instance type of an object for being a string. |
1127 // Loads the type into the second argument register. | 1130 // Loads the type into the second argument register. |
1128 // Returns a condition that will be enabled if the object was a string. | 1131 // Returns a condition that will be enabled if the object was a string. |
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1780 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1783 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1781 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1784 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1782 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1785 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1783 #else | 1786 #else |
1784 #define ACCESS_MASM(masm) masm-> | 1787 #define ACCESS_MASM(masm) masm-> |
1785 #endif | 1788 #endif |
1786 | 1789 |
1787 } } // namespace v8::internal | 1790 } } // namespace v8::internal |
1788 | 1791 |
1789 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1792 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |