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 1023 matching lines...) Loading... |
1034 // Machine code version of Map::GetConstructor(). | 1034 // Machine code version of Map::GetConstructor(). |
1035 // |temp| holds |result|'s map when done, and |temp2| its instance type. | 1035 // |temp| holds |result|'s map when done, and |temp2| its instance type. |
1036 void GetMapConstructor(Register result, Register map, Register temp, | 1036 void GetMapConstructor(Register result, Register map, Register temp, |
1037 Register temp2); | 1037 Register temp2); |
1038 | 1038 |
1039 // Try to get function prototype of a function and puts the value in | 1039 // Try to get function prototype of a function and puts the value in |
1040 // the result register. Checks that the function really is a | 1040 // the result register. Checks that the function really is a |
1041 // function and jumps to the miss label if the fast checks fail. The | 1041 // function and jumps to the miss label if the fast checks fail. The |
1042 // function register will be untouched; the other registers may be | 1042 // function register will be untouched; the other registers may be |
1043 // clobbered. | 1043 // clobbered. |
1044 void TryGetFunctionPrototype(Register function, | 1044 void TryGetFunctionPrototype(Register function, Register result, |
1045 Register result, | 1045 Register scratch, Label* miss); |
1046 Register scratch, | |
1047 Label* miss, | |
1048 bool miss_on_bound_function = false); | |
1049 | 1046 |
1050 void GetObjectType(Register function, | 1047 void GetObjectType(Register function, |
1051 Register map, | 1048 Register map, |
1052 Register type_reg); | 1049 Register type_reg); |
1053 | 1050 |
1054 // Check if a map for a JSObject indicates that the object has fast elements. | 1051 // Check if a map for a JSObject indicates that the object has fast elements. |
1055 // Jump to the specified label if it does not. | 1052 // Jump to the specified label if it does not. |
1056 void CheckFastElements(Register map, | 1053 void CheckFastElements(Register map, |
1057 Register scratch, | 1054 Register scratch, |
1058 Label* fail); | 1055 Label* fail); |
(...skipping 532 matching lines...) Loading... |
1591 | 1588 |
1592 // Generates function and stub prologue code. | 1589 // Generates function and stub prologue code. |
1593 void StubPrologue(); | 1590 void StubPrologue(); |
1594 void Prologue(bool code_pre_aging); | 1591 void Prologue(bool code_pre_aging); |
1595 | 1592 |
1596 // Activation support. | 1593 // Activation support. |
1597 void EnterFrame(StackFrame::Type type); | 1594 void EnterFrame(StackFrame::Type type); |
1598 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); | 1595 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); |
1599 void LeaveFrame(StackFrame::Type type); | 1596 void LeaveFrame(StackFrame::Type type); |
1600 | 1597 |
1601 // Patch the relocated value (lui/ori pair). | |
1602 void PatchRelocatedValue(Register li_location, | |
1603 Register scratch, | |
1604 Register new_value); | |
1605 // Get the relocatad value (loaded data) from the lui/ori pair. | |
1606 void GetRelocatedValue(Register li_location, | |
1607 Register value, | |
1608 Register scratch); | |
1609 | |
1610 // Expects object in a0 and returns map with validated enum cache | 1598 // Expects object in a0 and returns map with validated enum cache |
1611 // in a0. Assumes that any other register can be used as a scratch. | 1599 // in a0. Assumes that any other register can be used as a scratch. |
1612 void CheckEnumCache(Register null_value, Label* call_runtime); | 1600 void CheckEnumCache(Register null_value, Label* call_runtime); |
1613 | 1601 |
1614 // AllocationMemento support. Arrays may have an associated | 1602 // AllocationMemento support. Arrays may have an associated |
1615 // AllocationMemento object that can be checked for in order to pretransition | 1603 // AllocationMemento object that can be checked for in order to pretransition |
1616 // to another type. | 1604 // to another type. |
1617 // On entry, receiver_reg should point to the array object. | 1605 // On entry, receiver_reg should point to the array object. |
1618 // scratch_reg gets clobbered. | 1606 // scratch_reg gets clobbered. |
1619 // If allocation info is present, jump to allocation_memento_present. | 1607 // If allocation info is present, jump to allocation_memento_present. |
(...skipping 136 matching lines...) Loading... |
1756 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1744 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1757 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1745 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1758 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1746 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1759 #else | 1747 #else |
1760 #define ACCESS_MASM(masm) masm-> | 1748 #define ACCESS_MASM(masm) masm-> |
1761 #endif | 1749 #endif |
1762 | 1750 |
1763 } } // namespace v8::internal | 1751 } } // namespace v8::internal |
1764 | 1752 |
1765 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1753 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |