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 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 // tag_allocated_object is true the result is tagged as as a heap object. | 557 // tag_allocated_object is true the result is tagged as as a heap object. |
558 // All registers are clobbered also when control continues at the gc_required | 558 // All registers are clobbered also when control continues at the gc_required |
559 // label. | 559 // label. |
560 void Allocate(int object_size, | 560 void Allocate(int object_size, |
561 Register result, | 561 Register result, |
562 Register scratch1, | 562 Register scratch1, |
563 Register scratch2, | 563 Register scratch2, |
564 Label* gc_required, | 564 Label* gc_required, |
565 AllocationFlags flags); | 565 AllocationFlags flags); |
566 | 566 |
567 void Allocate(Register object_size, | 567 void Allocate(Register object_size, Register result, Register result_end, |
568 Register result, | 568 Register scratch, Label* gc_required, AllocationFlags flags); |
569 Register scratch1, | |
570 Register scratch2, | |
571 Label* gc_required, | |
572 AllocationFlags flags); | |
573 | 569 |
574 void AllocateTwoByteString(Register result, | 570 void AllocateTwoByteString(Register result, |
575 Register length, | 571 Register length, |
576 Register scratch1, | 572 Register scratch1, |
577 Register scratch2, | 573 Register scratch2, |
578 Register scratch3, | 574 Register scratch3, |
579 Label* gc_required); | 575 Label* gc_required); |
580 void AllocateOneByteString(Register result, Register length, | 576 void AllocateOneByteString(Register result, Register length, |
581 Register scratch1, Register scratch2, | 577 Register scratch1, Register scratch2, |
582 Register scratch3, Label* gc_required); | 578 Register scratch3, Label* gc_required); |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 void CopyFields(Register dst, Register src, RegList temps, int field_count); | 1068 void CopyFields(Register dst, Register src, RegList temps, int field_count); |
1073 | 1069 |
1074 // Copies a number of bytes from src to dst. All registers are clobbered. On | 1070 // Copies a number of bytes from src to dst. All registers are clobbered. On |
1075 // exit src and dst will point to the place just after where the last byte was | 1071 // exit src and dst will point to the place just after where the last byte was |
1076 // read or written and length will be zero. | 1072 // read or written and length will be zero. |
1077 void CopyBytes(Register src, | 1073 void CopyBytes(Register src, |
1078 Register dst, | 1074 Register dst, |
1079 Register length, | 1075 Register length, |
1080 Register scratch); | 1076 Register scratch); |
1081 | 1077 |
1082 // Initialize fields with filler values. Fields starting at |start_offset| | 1078 // Initialize fields with filler values. Fields starting at |current_address| |
1083 // not including end_offset are overwritten with the value in |filler|. At | 1079 // not including |end_address| are overwritten with the value in |filler|. At |
1084 // the end the loop, |start_offset| takes the value of |end_offset|. | 1080 // the end the loop, |current_address| takes the value of |end_address|. |
1085 void InitializeFieldsWithFiller(Register start_offset, | 1081 void InitializeFieldsWithFiller(Register current_address, |
1086 Register end_offset, | 1082 Register end_address, Register filler); |
1087 Register filler); | |
1088 | 1083 |
1089 // ------------------------------------------------------------------------- | 1084 // ------------------------------------------------------------------------- |
1090 // Support functions. | 1085 // Support functions. |
1091 | 1086 |
1092 // Machine code version of Map::GetConstructor(). | 1087 // Machine code version of Map::GetConstructor(). |
1093 // |temp| holds |result|'s map when done, and |temp2| its instance type. | 1088 // |temp| holds |result|'s map when done, and |temp2| its instance type. |
1094 void GetMapConstructor(Register result, Register map, Register temp, | 1089 void GetMapConstructor(Register result, Register map, Register temp, |
1095 Register temp2); | 1090 Register temp2); |
1096 | 1091 |
1097 // Try to get function prototype of a function and puts the value in | 1092 // Try to get function prototype of a function and puts the value in |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1849 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1844 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1850 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1845 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1851 #else | 1846 #else |
1852 #define ACCESS_MASM(masm) masm-> | 1847 #define ACCESS_MASM(masm) masm-> |
1853 #endif | 1848 #endif |
1854 | 1849 |
1855 } // namespace internal | 1850 } // namespace internal |
1856 } // namespace v8 | 1851 } // namespace v8 |
1857 | 1852 |
1858 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1853 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |