| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   261  |   261  | 
|   262   // Interface to the register allocator and iterators. |   262   // Interface to the register allocator and iterators. | 
|   263   bool ClobbersTemps() const { return is_call_; } |   263   bool ClobbersTemps() const { return is_call_; } | 
|   264   bool ClobbersRegisters() const { return is_call_; } |   264   bool ClobbersRegisters() const { return is_call_; } | 
|   265   bool ClobbersDoubleRegisters() const { return is_call_; } |   265   bool ClobbersDoubleRegisters() const { return is_call_; } | 
|   266  |   266  | 
|   267   // Interface to the register allocator and iterators. |   267   // Interface to the register allocator and iterators. | 
|   268   bool IsMarkedAsCall() const { return is_call_; } |   268   bool IsMarkedAsCall() const { return is_call_; } | 
|   269  |   269  | 
|   270   virtual bool HasResult() const = 0; |   270   virtual bool HasResult() const = 0; | 
|   271   virtual LOperand* result() = 0; |   271   virtual LOperand* result() const = 0; | 
|   272  |   272  | 
|   273   LOperand* FirstInput() { return InputAt(0); } |   273   LOperand* FirstInput() { return InputAt(0); } | 
|   274   LOperand* Output() { return HasResult() ? result() : NULL; } |   274   LOperand* Output() { return HasResult() ? result() : NULL; } | 
|   275  |   275  | 
|   276   virtual bool HasInterestingComment(LCodeGen* gen) const { return true; } |   276   virtual bool HasInterestingComment(LCodeGen* gen) const { return true; } | 
|   277  |   277  | 
|   278 #ifdef DEBUG |   278 #ifdef DEBUG | 
|   279   void VerifyCall(); |   279   void VerifyCall(); | 
|   280 #endif |   280 #endif | 
|   281  |   281  | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
|   297  |   297  | 
|   298  |   298  | 
|   299 // R = number of result operands (0 or 1). |   299 // R = number of result operands (0 or 1). | 
|   300 // I = number of input operands. |   300 // I = number of input operands. | 
|   301 // T = number of temporary operands. |   301 // T = number of temporary operands. | 
|   302 template<int R, int I, int T> |   302 template<int R, int I, int T> | 
|   303 class LTemplateInstruction: public LInstruction { |   303 class LTemplateInstruction: public LInstruction { | 
|   304  public: |   304  public: | 
|   305   // Allow 0 or 1 output operands. |   305   // Allow 0 or 1 output operands. | 
|   306   STATIC_ASSERT(R == 0 || R == 1); |   306   STATIC_ASSERT(R == 0 || R == 1); | 
|   307   virtual bool HasResult() const { return R != 0; } |   307   virtual bool HasResult() const { return R != 0 && result() != NULL; } | 
|   308   void set_result(LOperand* operand) { results_[0] = operand; } |   308   void set_result(LOperand* operand) { results_[0] = operand; } | 
|   309   LOperand* result() { return results_[0]; } |   309   LOperand* result() const { return results_[0]; } | 
|   310  |   310  | 
|   311  protected: |   311  protected: | 
|   312   EmbeddedContainer<LOperand*, R> results_; |   312   EmbeddedContainer<LOperand*, R> results_; | 
|   313   EmbeddedContainer<LOperand*, I> inputs_; |   313   EmbeddedContainer<LOperand*, I> inputs_; | 
|   314   EmbeddedContainer<LOperand*, T> temps_; |   314   EmbeddedContainer<LOperand*, T> temps_; | 
|   315  |   315  | 
|   316  private: |   316  private: | 
|   317   virtual int InputCount() { return I; } |   317   virtual int InputCount() { return I; } | 
|   318   virtual LOperand* InputAt(int i) { return inputs_[i]; } |   318   virtual LOperand* InputAt(int i) { return inputs_[i]; } | 
|   319  |   319  | 
| (...skipping 2479 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2799  |  2799  | 
|  2800   DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |  2800   DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 
|  2801 }; |  2801 }; | 
|  2802  |  2802  | 
|  2803 #undef DECLARE_HYDROGEN_ACCESSOR |  2803 #undef DECLARE_HYDROGEN_ACCESSOR | 
|  2804 #undef DECLARE_CONCRETE_INSTRUCTION |  2804 #undef DECLARE_CONCRETE_INSTRUCTION | 
|  2805  |  2805  | 
|  2806 } }  // namespace v8::internal |  2806 } }  // namespace v8::internal | 
|  2807  |  2807  | 
|  2808 #endif  // V8_ARM_LITHIUM_ARM_H_ |  2808 #endif  // V8_ARM_LITHIUM_ARM_H_ | 
| OLD | NEW |