OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 12 matching lines...) Expand all Loading... |
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | 27 |
28 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 28 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
29 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 29 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
30 | 30 |
31 #include "assembler.h" | 31 #include "assembler.h" |
32 #include "mips/assembler-mips.h" | 32 #include "mips/assembler-mips.h" |
| 33 #include "v8globals.h" |
33 | 34 |
34 namespace v8 { | 35 namespace v8 { |
35 namespace internal { | 36 namespace internal { |
36 | 37 |
37 // Forward declaration. | 38 // Forward declaration. |
38 class JumpTarget; | 39 class JumpTarget; |
39 | 40 |
40 // Reserved Register Usage Summary. | 41 // Reserved Register Usage Summary. |
41 // | 42 // |
42 // Registers t8, t9, and at are reserved for use by the MacroAssembler. | 43 // Registers t8, t9, and at are reserved for use by the MacroAssembler. |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 Register type_reg); | 704 Register type_reg); |
704 | 705 |
705 // Check if the map of an object is equal to a specified map (either | 706 // Check if the map of an object is equal to a specified map (either |
706 // given directly or as an index into the root list) and branch to | 707 // given directly or as an index into the root list) and branch to |
707 // label if not. Skip the smi check if not required (object is known | 708 // label if not. Skip the smi check if not required (object is known |
708 // to be a heap object). | 709 // to be a heap object). |
709 void CheckMap(Register obj, | 710 void CheckMap(Register obj, |
710 Register scratch, | 711 Register scratch, |
711 Handle<Map> map, | 712 Handle<Map> map, |
712 Label* fail, | 713 Label* fail, |
713 bool is_heap_object); | 714 SmiCheckType smi_check_type); |
714 | 715 |
715 void CheckMap(Register obj, | 716 void CheckMap(Register obj, |
716 Register scratch, | 717 Register scratch, |
717 Heap::RootListIndex index, | 718 Heap::RootListIndex index, |
718 Label* fail, | 719 Label* fail, |
719 bool is_heap_object); | 720 SmiCheckType smi_check_type); |
| 721 |
| 722 // Check if the map of an object is equal to a specified map and branch to a |
| 723 // specified target if equal. Skip the smi check if not required (object is |
| 724 // known to be a heap object) |
| 725 void DispatchMap(Register obj, |
| 726 Register scratch, |
| 727 Handle<Map> map, |
| 728 Handle<Code> success, |
| 729 SmiCheckType smi_check_type); |
720 | 730 |
721 // Generates code for reporting that an illegal operation has | 731 // Generates code for reporting that an illegal operation has |
722 // occurred. | 732 // occurred. |
723 void IllegalOperation(int num_arguments); | 733 void IllegalOperation(int num_arguments); |
724 | 734 |
725 // Picks out an array index from the hash field. | 735 // Picks out an array index from the hash field. |
726 // Register use: | 736 // Register use: |
727 // hash - holds the index's hash. Clobbered. | 737 // hash - holds the index's hash. Clobbered. |
728 // index - holds the overwritten index on exit. | 738 // index - holds the overwritten index on exit. |
729 void IndexFromHash(Register hash, Register index); | 739 void IndexFromHash(Register hash, Register index); |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1165 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1175 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1166 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1176 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1167 #else | 1177 #else |
1168 #define ACCESS_MASM(masm) masm-> | 1178 #define ACCESS_MASM(masm) masm-> |
1169 #endif | 1179 #endif |
1170 | 1180 |
1171 } } // namespace v8::internal | 1181 } } // namespace v8::internal |
1172 | 1182 |
1173 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1183 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
1174 | 1184 |
OLD | NEW |