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 1454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1465 | 1465 |
1466 bool needs_check() const { return needs_check_; } | 1466 bool needs_check() const { return needs_check_; } |
1467 | 1467 |
1468 private: | 1468 private: |
1469 bool needs_check_; | 1469 bool needs_check_; |
1470 }; | 1470 }; |
1471 | 1471 |
1472 | 1472 |
1473 class LStoreNamed: public LTemplateInstruction<0, 2, 1> { | 1473 class LStoreNamed: public LTemplateInstruction<0, 2, 1> { |
1474 public: | 1474 public: |
1475 LStoreNamed(LOperand* obj, LOperand* val) { | 1475 LStoreNamed(LOperand* object, LOperand* value) { |
1476 inputs_[0] = obj; | 1476 inputs_[0] = object; |
1477 inputs_[1] = val; | 1477 inputs_[1] = value; |
1478 } | 1478 } |
1479 | 1479 |
1480 DECLARE_INSTRUCTION(StoreNamed) | 1480 DECLARE_INSTRUCTION(StoreNamed) |
1481 DECLARE_HYDROGEN_ACCESSOR(StoreNamed) | 1481 DECLARE_HYDROGEN_ACCESSOR(StoreNamed) |
1482 | 1482 |
1483 virtual void PrintDataTo(StringStream* stream); | 1483 virtual void PrintDataTo(StringStream* stream); |
1484 | 1484 |
1485 LOperand* object() { return inputs_[0]; } | 1485 LOperand* object() { return inputs_[0]; } |
1486 LOperand* value() { return inputs_[1]; } | 1486 LOperand* value() { return inputs_[1]; } |
1487 Handle<Object> name() const { return hydrogen()->name(); } | 1487 Handle<Object> name() const { return hydrogen()->name(); } |
1488 }; | 1488 }; |
1489 | 1489 |
1490 | 1490 |
1491 class LStoreNamedField: public LStoreNamed { | 1491 class LStoreNamedField: public LStoreNamed { |
1492 public: | 1492 public: |
1493 LStoreNamedField(LOperand* obj, LOperand* val, LOperand* temp) | 1493 LStoreNamedField(LOperand* object, LOperand* value, LOperand* temp) |
1494 : LStoreNamed(obj, val) { | 1494 : LStoreNamed(object, value) { |
1495 temps_[0] = temp; | 1495 temps_[0] = temp; |
1496 } | 1496 } |
1497 | 1497 |
1498 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") | 1498 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") |
1499 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 1499 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
1500 | 1500 |
1501 bool is_in_object() { return hydrogen()->is_in_object(); } | 1501 bool is_in_object() { return hydrogen()->is_in_object(); } |
1502 int offset() { return hydrogen()->offset(); } | 1502 int offset() { return hydrogen()->offset(); } |
1503 bool needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); } | 1503 bool needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); } |
1504 Handle<Map> transition() const { return hydrogen()->transition(); } | 1504 Handle<Map> transition() const { return hydrogen()->transition(); } |
1505 }; | 1505 }; |
1506 | 1506 |
1507 | 1507 |
1508 class LStoreNamedGeneric: public LStoreNamed { | 1508 class LStoreNamedGeneric: public LStoreNamed { |
1509 public: | 1509 public: |
1510 LStoreNamedGeneric(LOperand* obj, LOperand* val) | 1510 LStoreNamedGeneric(LOperand* object, LOperand* value) |
1511 : LStoreNamed(obj, val) { } | 1511 : LStoreNamed(object, value) { } |
1512 | 1512 |
1513 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 1513 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
1514 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 1514 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
1515 }; | 1515 }; |
1516 | 1516 |
1517 | 1517 |
1518 class LStoreKeyed: public LTemplateInstruction<0, 3, 0> { | 1518 class LStoreKeyed: public LTemplateInstruction<0, 3, 0> { |
1519 public: | 1519 public: |
1520 LStoreKeyed(LOperand* obj, LOperand* key, LOperand* val) { | 1520 LStoreKeyed(LOperand* obj, LOperand* key, LOperand* val) { |
1521 inputs_[0] = obj; | 1521 inputs_[0] = obj; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1559 DECLARE_HYDROGEN_ACCESSOR(StorePixelArrayElement) | 1559 DECLARE_HYDROGEN_ACCESSOR(StorePixelArrayElement) |
1560 | 1560 |
1561 LOperand* external_pointer() { return inputs_[0]; } | 1561 LOperand* external_pointer() { return inputs_[0]; } |
1562 LOperand* key() { return inputs_[1]; } | 1562 LOperand* key() { return inputs_[1]; } |
1563 LOperand* value() { return inputs_[2]; } | 1563 LOperand* value() { return inputs_[2]; } |
1564 }; | 1564 }; |
1565 | 1565 |
1566 | 1566 |
1567 class LStoreKeyedGeneric: public LStoreKeyed { | 1567 class LStoreKeyedGeneric: public LStoreKeyed { |
1568 public: | 1568 public: |
1569 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val) | 1569 LStoreKeyedGeneric(LOperand* object, LOperand* key, LOperand* value) |
1570 : LStoreKeyed(obj, key, val) { } | 1570 : LStoreKeyed(object, key, value) { } |
1571 | 1571 |
1572 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 1572 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
1573 }; | 1573 }; |
1574 | 1574 |
1575 | 1575 |
1576 class LStringLength: public LTemplateInstruction<1, 1, 0> { | 1576 class LStringLength: public LTemplateInstruction<1, 1, 0> { |
1577 public: | 1577 public: |
1578 explicit LStringLength(LOperand* string) { | 1578 explicit LStringLength(LOperand* string) { |
1579 inputs_[0] = string; | 1579 inputs_[0] = string; |
1580 } | 1580 } |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1999 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 1999 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2000 }; | 2000 }; |
2001 | 2001 |
2002 #undef DECLARE_HYDROGEN_ACCESSOR | 2002 #undef DECLARE_HYDROGEN_ACCESSOR |
2003 #undef DECLARE_INSTRUCTION | 2003 #undef DECLARE_INSTRUCTION |
2004 #undef DECLARE_CONCRETE_INSTRUCTION | 2004 #undef DECLARE_CONCRETE_INSTRUCTION |
2005 | 2005 |
2006 } } // namespace v8::int | 2006 } } // namespace v8::int |
2007 | 2007 |
2008 #endif // V8_X64_LITHIUM_X64_H_ | 2008 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |