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 2219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2230 LInstruction* DefineAsSpilled(LTemplateInstruction<1, I, T>* instr, | 2230 LInstruction* DefineAsSpilled(LTemplateInstruction<1, I, T>* instr, |
2231 int index); | 2231 int index); |
2232 template<int I, int T> | 2232 template<int I, int T> |
2233 LInstruction* DefineSameAsFirst(LTemplateInstruction<1, I, T>* instr); | 2233 LInstruction* DefineSameAsFirst(LTemplateInstruction<1, I, T>* instr); |
2234 template<int I, int T> | 2234 template<int I, int T> |
2235 LInstruction* DefineFixed(LTemplateInstruction<1, I, T>* instr, | 2235 LInstruction* DefineFixed(LTemplateInstruction<1, I, T>* instr, |
2236 Register reg); | 2236 Register reg); |
2237 template<int I, int T> | 2237 template<int I, int T> |
2238 LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr, | 2238 LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr, |
2239 XMMRegister reg); | 2239 XMMRegister reg); |
| 2240 // Assigns an environment to an instruction. An instruction which can |
| 2241 // deoptimize must have an environment. |
2240 LInstruction* AssignEnvironment(LInstruction* instr); | 2242 LInstruction* AssignEnvironment(LInstruction* instr); |
| 2243 // Assigns a pointer map to an instruction. An instruction which can |
| 2244 // trigger a GC or a lazy deoptimization must have a pointer map. |
2241 LInstruction* AssignPointerMap(LInstruction* instr); | 2245 LInstruction* AssignPointerMap(LInstruction* instr); |
2242 | 2246 |
2243 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; | 2247 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; |
2244 | 2248 |
2245 // By default we assume that instruction sequences generated for calls | 2249 // Marks a call for the register allocator. Assigns a pointer map to |
2246 // cannot deoptimize eagerly and we do not attach environment to this | 2250 // support GC and lazy deoptimization. Assigns an environment to support |
2247 // instruction. | 2251 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. |
2248 LInstruction* MarkAsCall( | 2252 LInstruction* MarkAsCall( |
2249 LInstruction* instr, | 2253 LInstruction* instr, |
2250 HInstruction* hinstr, | 2254 HInstruction* hinstr, |
2251 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); | 2255 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); |
2252 LInstruction* MarkAsSaveDoubles(LInstruction* instr); | 2256 LInstruction* MarkAsSaveDoubles(LInstruction* instr); |
2253 | 2257 |
2254 LInstruction* SetInstructionPendingDeoptimizationEnvironment( | 2258 LInstruction* SetInstructionPendingDeoptimizationEnvironment( |
2255 LInstruction* instr, int ast_id); | 2259 LInstruction* instr, int ast_id); |
2256 void ClearInstructionPendingDeoptimizationEnvironment(); | 2260 void ClearInstructionPendingDeoptimizationEnvironment(); |
2257 | 2261 |
(...skipping 24 matching lines...) Expand all Loading... |
2282 | 2286 |
2283 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2287 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2284 }; | 2288 }; |
2285 | 2289 |
2286 #undef DECLARE_HYDROGEN_ACCESSOR | 2290 #undef DECLARE_HYDROGEN_ACCESSOR |
2287 #undef DECLARE_CONCRETE_INSTRUCTION | 2291 #undef DECLARE_CONCRETE_INSTRUCTION |
2288 | 2292 |
2289 } } // namespace v8::internal | 2293 } } // namespace v8::internal |
2290 | 2294 |
2291 #endif // V8_IA32_LITHIUM_IA32_H_ | 2295 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |