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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 class LInstructionGap: public LGap { | 360 class LInstructionGap: public LGap { |
361 public: | 361 public: |
362 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } | 362 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } |
363 | 363 |
364 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") | 364 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") |
365 }; | 365 }; |
366 | 366 |
367 | 367 |
368 class LGoto: public LTemplateInstruction<0, 0, 0> { | 368 class LGoto: public LTemplateInstruction<0, 0, 0> { |
369 public: | 369 public: |
370 LGoto(int block_id, bool include_stack_check = false) | 370 explicit LGoto(int block_id) : block_id_(block_id) { } |
371 : block_id_(block_id), include_stack_check_(include_stack_check) { } | |
372 | 371 |
373 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") | 372 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") |
374 virtual void PrintDataTo(StringStream* stream); | 373 virtual void PrintDataTo(StringStream* stream); |
375 virtual bool IsControl() const { return true; } | 374 virtual bool IsControl() const { return true; } |
376 | 375 |
377 int block_id() const { return block_id_; } | 376 int block_id() const { return block_id_; } |
378 bool include_stack_check() const { return include_stack_check_; } | |
379 | 377 |
380 private: | 378 private: |
381 int block_id_; | 379 int block_id_; |
382 bool include_stack_check_; | |
383 }; | 380 }; |
384 | 381 |
385 | 382 |
386 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { | 383 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { |
387 public: | 384 public: |
388 LLazyBailout() : gap_instructions_size_(0) { } | 385 LLazyBailout() : gap_instructions_size_(0) { } |
389 | 386 |
390 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") | 387 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") |
391 | 388 |
392 void set_gap_instructions_size(int gap_instructions_size) { | 389 void set_gap_instructions_size(int gap_instructions_size) { |
(...skipping 1733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2126 // NULL if the register has no assigned spill slot. Indexed by allocation | 2123 // NULL if the register has no assigned spill slot. Indexed by allocation |
2127 // index. | 2124 // index. |
2128 LOperand* register_spills_[Register::kNumAllocatableRegisters]; | 2125 LOperand* register_spills_[Register::kNumAllocatableRegisters]; |
2129 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; | 2126 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; |
2130 }; | 2127 }; |
2131 | 2128 |
2132 | 2129 |
2133 class LStackCheck: public LTemplateInstruction<0, 0, 0> { | 2130 class LStackCheck: public LTemplateInstruction<0, 0, 0> { |
2134 public: | 2131 public: |
2135 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") | 2132 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") |
| 2133 DECLARE_HYDROGEN_ACCESSOR(StackCheck) |
| 2134 |
| 2135 Label* done_label() { return &done_label_; } |
| 2136 |
| 2137 private: |
| 2138 Label done_label_; |
2136 }; | 2139 }; |
2137 | 2140 |
2138 | 2141 |
2139 class LIn: public LTemplateInstruction<1, 2, 0> { | 2142 class LIn: public LTemplateInstruction<1, 2, 0> { |
2140 public: | 2143 public: |
2141 LIn(LOperand* key, LOperand* object) { | 2144 LIn(LOperand* key, LOperand* object) { |
2142 inputs_[0] = key; | 2145 inputs_[0] = key; |
2143 inputs_[1] = object; | 2146 inputs_[1] = object; |
2144 } | 2147 } |
2145 | 2148 |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2371 | 2374 |
2372 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2375 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2373 }; | 2376 }; |
2374 | 2377 |
2375 #undef DECLARE_HYDROGEN_ACCESSOR | 2378 #undef DECLARE_HYDROGEN_ACCESSOR |
2376 #undef DECLARE_CONCRETE_INSTRUCTION | 2379 #undef DECLARE_CONCRETE_INSTRUCTION |
2377 | 2380 |
2378 } } // namespace v8::internal | 2381 } } // namespace v8::internal |
2379 | 2382 |
2380 #endif // V8_IA32_LITHIUM_IA32_H_ | 2383 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |