Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/mips64/macro-assembler-mips64.h

Issue 945823002: MIPS64: Implement optimization utilizing signaling NaN for holes in double arrays. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips64/lithium-codegen-mips64.cc ('k') | src/mips64/macro-assembler-mips64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/mips64/lithium-codegen-mips64.cc ('k') | src/mips64/macro-assembler-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698