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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 class LInstructionGap: public LGap { | 367 class LInstructionGap: public LGap { |
368 public: | 368 public: |
369 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } | 369 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } |
370 | 370 |
371 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") | 371 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") |
372 }; | 372 }; |
373 | 373 |
374 | 374 |
375 class LGoto: public LTemplateInstruction<0, 0, 0> { | 375 class LGoto: public LTemplateInstruction<0, 0, 0> { |
376 public: | 376 public: |
377 LGoto(int block_id, bool include_stack_check = false) | 377 explicit LGoto(int block_id) : block_id_(block_id) { } |
378 : block_id_(block_id), include_stack_check_(include_stack_check) { } | |
379 | 378 |
380 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") | 379 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") |
381 virtual void PrintDataTo(StringStream* stream); | 380 virtual void PrintDataTo(StringStream* stream); |
382 virtual bool IsControl() const { return true; } | 381 virtual bool IsControl() const { return true; } |
383 | 382 |
384 int block_id() const { return block_id_; } | 383 int block_id() const { return block_id_; } |
385 bool include_stack_check() const { return include_stack_check_; } | |
386 | 384 |
387 private: | 385 private: |
388 int block_id_; | 386 int block_id_; |
389 bool include_stack_check_; | |
390 }; | 387 }; |
391 | 388 |
392 | 389 |
393 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { | 390 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { |
394 public: | 391 public: |
395 LLazyBailout() : gap_instructions_size_(0) { } | 392 LLazyBailout() : gap_instructions_size_(0) { } |
396 | 393 |
397 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") | 394 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") |
398 | 395 |
399 void set_gap_instructions_size(int gap_instructions_size) { | 396 void set_gap_instructions_size(int gap_instructions_size) { |
(...skipping 1680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2080 // NULL if the register has no assigned spill slot. Indexed by allocation | 2077 // NULL if the register has no assigned spill slot. Indexed by allocation |
2081 // index. | 2078 // index. |
2082 LOperand* register_spills_[Register::kNumAllocatableRegisters]; | 2079 LOperand* register_spills_[Register::kNumAllocatableRegisters]; |
2083 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; | 2080 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; |
2084 }; | 2081 }; |
2085 | 2082 |
2086 | 2083 |
2087 class LStackCheck: public LTemplateInstruction<0, 0, 0> { | 2084 class LStackCheck: public LTemplateInstruction<0, 0, 0> { |
2088 public: | 2085 public: |
2089 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") | 2086 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") |
| 2087 DECLARE_HYDROGEN_ACCESSOR(StackCheck) |
| 2088 |
| 2089 Label* done_label() { return &done_label_; } |
| 2090 |
| 2091 private: |
| 2092 Label done_label_; |
2090 }; | 2093 }; |
2091 | 2094 |
2092 | 2095 |
2093 class LChunkBuilder; | 2096 class LChunkBuilder; |
2094 class LChunk: public ZoneObject { | 2097 class LChunk: public ZoneObject { |
2095 public: | 2098 public: |
2096 explicit LChunk(CompilationInfo* info, HGraph* graph) | 2099 explicit LChunk(CompilationInfo* info, HGraph* graph) |
2097 : spill_slot_count_(0), | 2100 : spill_slot_count_(0), |
2098 info_(info), | 2101 info_(info), |
2099 graph_(graph), | 2102 graph_(graph), |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2311 | 2314 |
2312 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2315 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2313 }; | 2316 }; |
2314 | 2317 |
2315 #undef DECLARE_HYDROGEN_ACCESSOR | 2318 #undef DECLARE_HYDROGEN_ACCESSOR |
2316 #undef DECLARE_CONCRETE_INSTRUCTION | 2319 #undef DECLARE_CONCRETE_INSTRUCTION |
2317 | 2320 |
2318 } } // namespace v8::int | 2321 } } // namespace v8::int |
2319 | 2322 |
2320 #endif // V8_X64_LITHIUM_X64_H_ | 2323 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |