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

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

Issue 2523473002: [cleanup] Drop handwritten KeyedStoreIC code (Closed)
Patch Set: rebased Created 4 years 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/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 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 // Load the global object from the current context. 1088 // Load the global object from the current context.
1089 void LoadGlobalObject(Register dst) { 1089 void LoadGlobalObject(Register dst) {
1090 LoadNativeContextSlot(Context::EXTENSION_INDEX, dst); 1090 LoadNativeContextSlot(Context::EXTENSION_INDEX, dst);
1091 } 1091 }
1092 1092
1093 // Load the global proxy from the current context. 1093 // Load the global proxy from the current context.
1094 void LoadGlobalProxy(Register dst) { 1094 void LoadGlobalProxy(Register dst) {
1095 LoadNativeContextSlot(Context::GLOBAL_PROXY_INDEX, dst); 1095 LoadNativeContextSlot(Context::GLOBAL_PROXY_INDEX, dst);
1096 } 1096 }
1097 1097
1098 // Conditionally load the cached Array transitioned map of type
1099 // transitioned_kind from the native context if the map in register
1100 // map_in_out is the cached Array map in the native context of
1101 // expected_kind.
1102 void LoadTransitionedArrayMapConditional(
1103 ElementsKind expected_kind,
1104 ElementsKind transitioned_kind,
1105 Register map_in_out,
1106 Register scratch,
1107 Label* no_map_match);
1108
1109 void LoadNativeContextSlot(int index, Register dst); 1098 void LoadNativeContextSlot(int index, Register dst);
1110 1099
1111 // Load the initial map from the global function. The registers 1100 // Load the initial map from the global function. The registers
1112 // function and map can be the same, function is then overwritten. 1101 // function and map can be the same, function is then overwritten.
1113 void LoadGlobalFunctionInitialMap(Register function, 1102 void LoadGlobalFunctionInitialMap(Register function,
1114 Register map, 1103 Register map,
1115 Register scratch); 1104 Register scratch);
1116 1105
1117 void InitializeRootRegister() { 1106 void InitializeRootRegister() {
1118 ExternalReference roots_array_start = 1107 ExternalReference roots_array_start =
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 1199
1211 void GetObjectType(Register function, 1200 void GetObjectType(Register function,
1212 Register map, 1201 Register map,
1213 Register type_reg); 1202 Register type_reg);
1214 1203
1215 void GetInstanceType(Register object_map, Register object_instance_type) { 1204 void GetInstanceType(Register object_map, Register object_instance_type) {
1216 lbu(object_instance_type, 1205 lbu(object_instance_type,
1217 FieldMemOperand(object_map, Map::kInstanceTypeOffset)); 1206 FieldMemOperand(object_map, Map::kInstanceTypeOffset));
1218 } 1207 }
1219 1208
1220 // Check if a map for a JSObject indicates that the object can have both smi
1221 // and HeapObject elements. Jump to the specified label if it does not.
1222 void CheckFastObjectElements(Register map,
1223 Register scratch,
1224 Label* fail);
1225
1226 // Check if a map for a JSObject indicates that the object has fast smi only
1227 // elements. Jump to the specified label if it does not.
1228 void CheckFastSmiElements(Register map,
1229 Register scratch,
1230 Label* fail);
1231
1232 // Check to see if maybe_number can be stored as a double in
1233 // FastDoubleElements. If it can, store it at the index specified by key in
1234 // the FastDoubleElements array elements. Otherwise jump to fail.
1235 void StoreNumberToDoubleElements(Register value_reg,
1236 Register key_reg,
1237 Register elements_reg,
1238 Register scratch1,
1239 Register scratch2,
1240 Label* fail,
1241 int elements_offset = 0);
1242
1243 // Compare an object's map with the specified map and its transitioned 1209 // Compare an object's map with the specified map and its transitioned
1244 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Jumps to 1210 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Jumps to
1245 // "branch_to" if the result of the comparison is "cond". If multiple map 1211 // "branch_to" if the result of the comparison is "cond". If multiple map
1246 // compares are required, the compare sequences branches to early_success. 1212 // compares are required, the compare sequences branches to early_success.
1247 void CompareMapAndBranch(Register obj, 1213 void CompareMapAndBranch(Register obj,
1248 Register scratch, 1214 Register scratch,
1249 Handle<Map> map, 1215 Handle<Map> map,
1250 Label* early_success, 1216 Label* early_success,
1251 Condition cond, 1217 Condition cond,
1252 Label* branch_to); 1218 Label* branch_to);
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 And(scratch, value, Operand(kSmiTagMask)); 1665 And(scratch, value, Operand(kSmiTagMask));
1700 } 1666 }
1701 inline void NonNegativeSmiTst(Register value, Register scratch) { 1667 inline void NonNegativeSmiTst(Register value, Register scratch) {
1702 And(scratch, value, Operand(kSmiTagMask | kSmiSignMask)); 1668 And(scratch, value, Operand(kSmiTagMask | kSmiSignMask));
1703 } 1669 }
1704 1670
1705 // Untag the source value into destination and jump if source is a smi. 1671 // Untag the source value into destination and jump if source is a smi.
1706 // Source and destination can be the same register. 1672 // Source and destination can be the same register.
1707 void UntagAndJumpIfSmi(Register dst, Register src, Label* smi_case); 1673 void UntagAndJumpIfSmi(Register dst, Register src, Label* smi_case);
1708 1674
1709 // Untag the source value into destination and jump if source is not a smi.
1710 // Source and destination can be the same register.
1711 void UntagAndJumpIfNotSmi(Register dst, Register src, Label* non_smi_case);
1712
1713 // Jump the register contains a smi. 1675 // Jump the register contains a smi.
1714 void JumpIfSmi(Register value, 1676 void JumpIfSmi(Register value,
1715 Label* smi_label, 1677 Label* smi_label,
1716 Register scratch = at, 1678 Register scratch = at,
1717 BranchDelaySlot bd = PROTECT); 1679 BranchDelaySlot bd = PROTECT);
1718 1680
1719 // Jump if the register contains a non-smi. 1681 // Jump if the register contains a non-smi.
1720 void JumpIfNotSmi(Register value, 1682 void JumpIfNotSmi(Register value,
1721 Label* not_smi_label, 1683 Label* not_smi_label,
1722 Register scratch = at, 1684 Register scratch = at,
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1864 1826
1865 // AllocationMemento support. Arrays may have an associated AllocationMemento 1827 // AllocationMemento support. Arrays may have an associated AllocationMemento
1866 // object that can be checked for in order to pretransition to another type. 1828 // object that can be checked for in order to pretransition to another type.
1867 // On entry, receiver_reg should point to the array object. scratch_reg gets 1829 // On entry, receiver_reg should point to the array object. scratch_reg gets
1868 // clobbered. If no info is present jump to no_memento_found, otherwise fall 1830 // clobbered. If no info is present jump to no_memento_found, otherwise fall
1869 // through. 1831 // through.
1870 void TestJSArrayForAllocationMemento(Register receiver_reg, 1832 void TestJSArrayForAllocationMemento(Register receiver_reg,
1871 Register scratch_reg, 1833 Register scratch_reg,
1872 Label* no_memento_found); 1834 Label* no_memento_found);
1873 1835
1874 void JumpIfJSArrayHasAllocationMemento(Register receiver_reg,
1875 Register scratch_reg,
1876 Label* memento_found) {
1877 Label no_memento_found;
1878 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1879 &no_memento_found);
1880 Branch(memento_found);
1881 bind(&no_memento_found);
1882 }
1883
1884 // Jumps to found label if a prototype map has dictionary elements.
1885 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0,
1886 Register scratch1, Label* found);
1887
1888 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; } 1836 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; }
1889 1837
1890 private: 1838 private:
1891 void CallCFunctionHelper(Register function, 1839 void CallCFunctionHelper(Register function,
1892 int num_reg_arguments, 1840 int num_reg_arguments,
1893 int num_double_arguments); 1841 int num_double_arguments);
1894 1842
1895 inline Register GetRtAsRegisterHelper(const Operand& rt, Register scratch); 1843 inline Register GetRtAsRegisterHelper(const Operand& rt, Register scratch);
1896 inline int32_t GetOffset(int32_t offset, Label* L, OffsetSize bits); 1844 inline int32_t GetOffset(int32_t offset, Label* L, OffsetSize bits);
1897 void BranchShortHelperR6(int32_t offset, Label* L); 1845 void BranchShortHelperR6(int32_t offset, Label* L);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
2040 dd(GetLabelFunction(index)); 1988 dd(GetLabelFunction(index));
2041 } 1989 }
2042 } 1990 }
2043 1991
2044 #define ACCESS_MASM(masm) masm-> 1992 #define ACCESS_MASM(masm) masm->
2045 1993
2046 } // namespace internal 1994 } // namespace internal
2047 } // namespace v8 1995 } // namespace v8
2048 1996
2049 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1997 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips64/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