| 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 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 | 529 |
| 530 // Generate code for checking access rights - used for security checks | 530 // Generate code for checking access rights - used for security checks |
| 531 // on access to global objects across environments. The holder register | 531 // on access to global objects across environments. The holder register |
| 532 // is left untouched, whereas both scratch registers are clobbered. | 532 // is left untouched, whereas both scratch registers are clobbered. |
| 533 void CheckAccessGlobalProxy(Register holder_reg, | 533 void CheckAccessGlobalProxy(Register holder_reg, |
| 534 Register scratch, | 534 Register scratch, |
| 535 Label* miss); | 535 Label* miss); |
| 536 | 536 |
| 537 void GetNumberHash(Register reg0, Register scratch); | 537 void GetNumberHash(Register reg0, Register scratch); |
| 538 | 538 |
| 539 void LoadFromNumberDictionary(Label* miss, | |
| 540 Register elements, | |
| 541 Register key, | |
| 542 Register result, | |
| 543 Register reg0, | |
| 544 Register reg1, | |
| 545 Register reg2); | |
| 546 | |
| 547 | |
| 548 inline void MarkCode(NopMarkerTypes type) { | 539 inline void MarkCode(NopMarkerTypes type) { |
| 549 nop(type); | 540 nop(type); |
| 550 } | 541 } |
| 551 | 542 |
| 552 // Check if the given instruction is a 'type' marker. | 543 // Check if the given instruction is a 'type' marker. |
| 553 // i.e. check if it is a sll zero_reg, zero_reg, <type> (referenced as | 544 // i.e. check if it is a sll zero_reg, zero_reg, <type> (referenced as |
| 554 // nop(type)). These instructions are generated to mark special location in | 545 // nop(type)). These instructions are generated to mark special location in |
| 555 // the code, like some special IC code. | 546 // the code, like some special IC code. |
| 556 static inline bool IsMarkedCode(Instr instr, int type) { | 547 static inline bool IsMarkedCode(Instr instr, int type) { |
| 557 DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)); | 548 DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)); |
| (...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1231 | 1222 |
| 1232 void GetObjectType(Register function, | 1223 void GetObjectType(Register function, |
| 1233 Register map, | 1224 Register map, |
| 1234 Register type_reg); | 1225 Register type_reg); |
| 1235 | 1226 |
| 1236 void GetInstanceType(Register object_map, Register object_instance_type) { | 1227 void GetInstanceType(Register object_map, Register object_instance_type) { |
| 1237 lbu(object_instance_type, | 1228 lbu(object_instance_type, |
| 1238 FieldMemOperand(object_map, Map::kInstanceTypeOffset)); | 1229 FieldMemOperand(object_map, Map::kInstanceTypeOffset)); |
| 1239 } | 1230 } |
| 1240 | 1231 |
| 1241 // Check if a map for a JSObject indicates that the object has fast elements. | |
| 1242 // Jump to the specified label if it does not. | |
| 1243 void CheckFastElements(Register map, | |
| 1244 Register scratch, | |
| 1245 Label* fail); | |
| 1246 | |
| 1247 // Check if a map for a JSObject indicates that the object can have both smi | 1232 // Check if a map for a JSObject indicates that the object can have both smi |
| 1248 // and HeapObject elements. Jump to the specified label if it does not. | 1233 // and HeapObject elements. Jump to the specified label if it does not. |
| 1249 void CheckFastObjectElements(Register map, | 1234 void CheckFastObjectElements(Register map, |
| 1250 Register scratch, | 1235 Register scratch, |
| 1251 Label* fail); | 1236 Label* fail); |
| 1252 | 1237 |
| 1253 // Check if a map for a JSObject indicates that the object has fast smi only | 1238 // Check if a map for a JSObject indicates that the object has fast smi only |
| 1254 // elements. Jump to the specified label if it does not. | 1239 // elements. Jump to the specified label if it does not. |
| 1255 void CheckFastSmiElements(Register map, | 1240 void CheckFastSmiElements(Register map, |
| 1256 Register scratch, | 1241 Register scratch, |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2074 dd(GetLabelFunction(index)); | 2059 dd(GetLabelFunction(index)); |
| 2075 } | 2060 } |
| 2076 } | 2061 } |
| 2077 | 2062 |
| 2078 #define ACCESS_MASM(masm) masm-> | 2063 #define ACCESS_MASM(masm) masm-> |
| 2079 | 2064 |
| 2080 } // namespace internal | 2065 } // namespace internal |
| 2081 } // namespace v8 | 2066 } // namespace v8 |
| 2082 | 2067 |
| 2083 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 2068 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| OLD | NEW |