| 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/mips/assembler-mips.h" | 10 #include "src/mips/assembler-mips.h" |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 | 497 |
| 498 // Generate code for checking access rights - used for security checks | 498 // Generate code for checking access rights - used for security checks |
| 499 // on access to global objects across environments. The holder register | 499 // on access to global objects across environments. The holder register |
| 500 // is left untouched, whereas both scratch registers are clobbered. | 500 // is left untouched, whereas both scratch registers are clobbered. |
| 501 void CheckAccessGlobalProxy(Register holder_reg, | 501 void CheckAccessGlobalProxy(Register holder_reg, |
| 502 Register scratch, | 502 Register scratch, |
| 503 Label* miss); | 503 Label* miss); |
| 504 | 504 |
| 505 void GetNumberHash(Register reg0, Register scratch); | 505 void GetNumberHash(Register reg0, Register scratch); |
| 506 | 506 |
| 507 void LoadFromNumberDictionary(Label* miss, | |
| 508 Register elements, | |
| 509 Register key, | |
| 510 Register result, | |
| 511 Register reg0, | |
| 512 Register reg1, | |
| 513 Register reg2); | |
| 514 | |
| 515 | |
| 516 inline void MarkCode(NopMarkerTypes type) { | 507 inline void MarkCode(NopMarkerTypes type) { |
| 517 nop(type); | 508 nop(type); |
| 518 } | 509 } |
| 519 | 510 |
| 520 // Check if the given instruction is a 'type' marker. | 511 // Check if the given instruction is a 'type' marker. |
| 521 // i.e. check if it is a sll zero_reg, zero_reg, <type> (referenced as | 512 // i.e. check if it is a sll zero_reg, zero_reg, <type> (referenced as |
| 522 // nop(type)). These instructions are generated to mark special location in | 513 // nop(type)). These instructions are generated to mark special location in |
| 523 // the code, like some special IC code. | 514 // the code, like some special IC code. |
| 524 static inline bool IsMarkedCode(Instr instr, int type) { | 515 static inline bool IsMarkedCode(Instr instr, int type) { |
| 525 DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)); | 516 DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)); |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1173 | 1164 |
| 1174 void GetObjectType(Register function, | 1165 void GetObjectType(Register function, |
| 1175 Register map, | 1166 Register map, |
| 1176 Register type_reg); | 1167 Register type_reg); |
| 1177 | 1168 |
| 1178 void GetInstanceType(Register object_map, Register object_instance_type) { | 1169 void GetInstanceType(Register object_map, Register object_instance_type) { |
| 1179 lbu(object_instance_type, | 1170 lbu(object_instance_type, |
| 1180 FieldMemOperand(object_map, Map::kInstanceTypeOffset)); | 1171 FieldMemOperand(object_map, Map::kInstanceTypeOffset)); |
| 1181 } | 1172 } |
| 1182 | 1173 |
| 1183 // Check if a map for a JSObject indicates that the object has fast elements. | |
| 1184 // Jump to the specified label if it does not. | |
| 1185 void CheckFastElements(Register map, | |
| 1186 Register scratch, | |
| 1187 Label* fail); | |
| 1188 | |
| 1189 // Check if a map for a JSObject indicates that the object can have both smi | 1174 // Check if a map for a JSObject indicates that the object can have both smi |
| 1190 // and HeapObject elements. Jump to the specified label if it does not. | 1175 // and HeapObject elements. Jump to the specified label if it does not. |
| 1191 void CheckFastObjectElements(Register map, | 1176 void CheckFastObjectElements(Register map, |
| 1192 Register scratch, | 1177 Register scratch, |
| 1193 Label* fail); | 1178 Label* fail); |
| 1194 | 1179 |
| 1195 // Check if a map for a JSObject indicates that the object has fast smi only | 1180 // Check if a map for a JSObject indicates that the object has fast smi only |
| 1196 // elements. Jump to the specified label if it does not. | 1181 // elements. Jump to the specified label if it does not. |
| 1197 void CheckFastSmiElements(Register map, | 1182 void CheckFastSmiElements(Register map, |
| 1198 Register scratch, | 1183 Register scratch, |
| (...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1927 dd(GetLabelFunction(index)); | 1912 dd(GetLabelFunction(index)); |
| 1928 } | 1913 } |
| 1929 } | 1914 } |
| 1930 | 1915 |
| 1931 #define ACCESS_MASM(masm) masm-> | 1916 #define ACCESS_MASM(masm) masm-> |
| 1932 | 1917 |
| 1933 } // namespace internal | 1918 } // namespace internal |
| 1934 } // namespace v8 | 1919 } // namespace v8 |
| 1935 | 1920 |
| 1936 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1921 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| OLD | NEW |