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 2106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2117 LInstruction* DefineAsSpilled(LTemplateInstruction<1, I, T>* instr, | 2117 LInstruction* DefineAsSpilled(LTemplateInstruction<1, I, T>* instr, |
2118 int index); | 2118 int index); |
2119 template<int I, int T> | 2119 template<int I, int T> |
2120 LInstruction* DefineSameAsFirst(LTemplateInstruction<1, I, T>* instr); | 2120 LInstruction* DefineSameAsFirst(LTemplateInstruction<1, I, T>* instr); |
2121 template<int I, int T> | 2121 template<int I, int T> |
2122 LInstruction* DefineFixed(LTemplateInstruction<1, I, T>* instr, | 2122 LInstruction* DefineFixed(LTemplateInstruction<1, I, T>* instr, |
2123 Register reg); | 2123 Register reg); |
2124 template<int I, int T> | 2124 template<int I, int T> |
2125 LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr, | 2125 LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr, |
2126 XMMRegister reg); | 2126 XMMRegister reg); |
| 2127 // Assigns an environment to an instruction. An instruction which can |
| 2128 // deoptimize must have an environment. |
2127 LInstruction* AssignEnvironment(LInstruction* instr); | 2129 LInstruction* AssignEnvironment(LInstruction* instr); |
| 2130 // Assigns a pointer map to an instruction. An instruction which can |
| 2131 // trigger a GC or a lazy deoptimization must have a pointer map. |
2128 LInstruction* AssignPointerMap(LInstruction* instr); | 2132 LInstruction* AssignPointerMap(LInstruction* instr); |
2129 | 2133 |
2130 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; | 2134 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; |
2131 | 2135 |
2132 // By default we assume that instruction sequences generated for calls | 2136 // Marks a call for the register allocator. Assigns a pointer map to |
2133 // cannot deoptimize eagerly and we do not attach environment to this | 2137 // support GC and lazy deoptimization. Assigns an environment to support |
2134 // instruction. | 2138 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. |
2135 LInstruction* MarkAsCall( | 2139 LInstruction* MarkAsCall( |
2136 LInstruction* instr, | 2140 LInstruction* instr, |
2137 HInstruction* hinstr, | 2141 HInstruction* hinstr, |
2138 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); | 2142 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); |
2139 LInstruction* MarkAsSaveDoubles(LInstruction* instr); | 2143 LInstruction* MarkAsSaveDoubles(LInstruction* instr); |
2140 | 2144 |
2141 LInstruction* SetInstructionPendingDeoptimizationEnvironment( | 2145 LInstruction* SetInstructionPendingDeoptimizationEnvironment( |
2142 LInstruction* instr, int ast_id); | 2146 LInstruction* instr, int ast_id); |
2143 void ClearInstructionPendingDeoptimizationEnvironment(); | 2147 void ClearInstructionPendingDeoptimizationEnvironment(); |
2144 | 2148 |
(...skipping 24 matching lines...) Expand all Loading... |
2169 | 2173 |
2170 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2174 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2171 }; | 2175 }; |
2172 | 2176 |
2173 #undef DECLARE_HYDROGEN_ACCESSOR | 2177 #undef DECLARE_HYDROGEN_ACCESSOR |
2174 #undef DECLARE_CONCRETE_INSTRUCTION | 2178 #undef DECLARE_CONCRETE_INSTRUCTION |
2175 | 2179 |
2176 } } // namespace v8::int | 2180 } } // namespace v8::int |
2177 | 2181 |
2178 #endif // V8_X64_LITHIUM_X64_H_ | 2182 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |