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 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 class LInstructionGap: public LGap { | 366 class LInstructionGap: public LGap { |
367 public: | 367 public: |
368 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } | 368 explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } |
369 | 369 |
370 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") | 370 DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap") |
371 }; | 371 }; |
372 | 372 |
373 | 373 |
374 class LGoto: public LTemplateInstruction<0, 0, 0> { | 374 class LGoto: public LTemplateInstruction<0, 0, 0> { |
375 public: | 375 public: |
376 LGoto(int block_id, bool include_stack_check = false) | 376 explicit LGoto(int block_id) : block_id_(block_id) { } |
377 : block_id_(block_id), include_stack_check_(include_stack_check) { } | |
378 | 377 |
379 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") | 378 DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") |
380 virtual void PrintDataTo(StringStream* stream); | 379 virtual void PrintDataTo(StringStream* stream); |
381 virtual bool IsControl() const { return true; } | 380 virtual bool IsControl() const { return true; } |
382 | 381 |
383 int block_id() const { return block_id_; } | 382 int block_id() const { return block_id_; } |
384 bool include_stack_check() const { return include_stack_check_; } | |
385 | 383 |
386 private: | 384 private: |
387 int block_id_; | 385 int block_id_; |
388 bool include_stack_check_; | |
389 }; | 386 }; |
390 | 387 |
391 | 388 |
392 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { | 389 class LLazyBailout: public LTemplateInstruction<0, 0, 0> { |
393 public: | 390 public: |
394 LLazyBailout() : gap_instructions_size_(0) { } | 391 LLazyBailout() : gap_instructions_size_(0) { } |
395 | 392 |
396 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") | 393 DECLARE_CONCRETE_INSTRUCTION(LazyBailout, "lazy-bailout") |
397 | 394 |
398 void set_gap_instructions_size(int gap_instructions_size) { | 395 void set_gap_instructions_size(int gap_instructions_size) { |
(...skipping 1688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2087 // NULL if the register has no assigned spill slot. Indexed by allocation | 2084 // NULL if the register has no assigned spill slot. Indexed by allocation |
2088 // index. | 2085 // index. |
2089 LOperand* register_spills_[Register::kNumAllocatableRegisters]; | 2086 LOperand* register_spills_[Register::kNumAllocatableRegisters]; |
2090 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; | 2087 LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters]; |
2091 }; | 2088 }; |
2092 | 2089 |
2093 | 2090 |
2094 class LStackCheck: public LTemplateInstruction<0, 0, 0> { | 2091 class LStackCheck: public LTemplateInstruction<0, 0, 0> { |
2095 public: | 2092 public: |
2096 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") | 2093 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") |
| 2094 DECLARE_HYDROGEN_ACCESSOR(StackCheck) |
| 2095 |
| 2096 Label* done_label() { return &done_label_; } |
| 2097 |
| 2098 private: |
| 2099 Label done_label_; |
2097 }; | 2100 }; |
2098 | 2101 |
2099 | 2102 |
2100 class LIn: public LTemplateInstruction<1, 2, 0> { | 2103 class LIn: public LTemplateInstruction<1, 2, 0> { |
2101 public: | 2104 public: |
2102 LIn(LOperand* key, LOperand* object) { | 2105 LIn(LOperand* key, LOperand* object) { |
2103 inputs_[0] = key; | 2106 inputs_[0] = key; |
2104 inputs_[1] = object; | 2107 inputs_[1] = object; |
2105 } | 2108 } |
2106 | 2109 |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2326 | 2329 |
2327 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2330 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2328 }; | 2331 }; |
2329 | 2332 |
2330 #undef DECLARE_HYDROGEN_ACCESSOR | 2333 #undef DECLARE_HYDROGEN_ACCESSOR |
2331 #undef DECLARE_CONCRETE_INSTRUCTION | 2334 #undef DECLARE_CONCRETE_INSTRUCTION |
2332 | 2335 |
2333 } } // namespace v8::internal | 2336 } } // namespace v8::internal |
2334 | 2337 |
2335 #endif // V8_ARM_LITHIUM_ARM_H_ | 2338 #endif // V8_ARM_LITHIUM_ARM_H_ |
OLD | NEW |