Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: src/x64/lithium-x64.h

Issue 10443052: Fix missing write barrier in store field stub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed missing write barrier in optimized code. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 1617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1628 1628
1629 DECLARE_CONCRETE_INSTRUCTION(SmiUntag, "smi-untag") 1629 DECLARE_CONCRETE_INSTRUCTION(SmiUntag, "smi-untag")
1630 1630
1631 bool needs_check() const { return needs_check_; } 1631 bool needs_check() const { return needs_check_; }
1632 1632
1633 private: 1633 private:
1634 bool needs_check_; 1634 bool needs_check_;
1635 }; 1635 };
1636 1636
1637 1637
1638 class LStoreNamedField: public LTemplateInstruction<0, 2, 1> { 1638 class LStoreNamedField: public LTemplateInstruction<0, 2, 2> {
1639 public: 1639 public:
1640 LStoreNamedField(LOperand* object, LOperand* value, LOperand* temp) { 1640 LStoreNamedField(LOperand* object,
1641 LOperand* value,
1642 LOperand* temp,
1643 LOperand* temp_map) {
1641 inputs_[0] = object; 1644 inputs_[0] = object;
1642 inputs_[1] = value; 1645 inputs_[1] = value;
1643 temps_[0] = temp; 1646 temps_[0] = temp;
1647 temps_[1] = temp_map;
1644 } 1648 }
1645 1649
1646 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") 1650 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field")
1647 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) 1651 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField)
1648 1652
1649 virtual void PrintDataTo(StringStream* stream); 1653 virtual void PrintDataTo(StringStream* stream);
1650 1654
1651 LOperand* object() { return inputs_[0]; } 1655 LOperand* object() { return inputs_[0]; }
1652 LOperand* value() { return inputs_[1]; } 1656 LOperand* value() { return inputs_[1]; }
1653 1657
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
2378 2382
2379 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2383 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2380 }; 2384 };
2381 2385
2382 #undef DECLARE_HYDROGEN_ACCESSOR 2386 #undef DECLARE_HYDROGEN_ACCESSOR
2383 #undef DECLARE_CONCRETE_INSTRUCTION 2387 #undef DECLARE_CONCRETE_INSTRUCTION
2384 2388
2385 } } // namespace v8::int 2389 } } // namespace v8::int
2386 2390
2387 #endif // V8_X64_LITHIUM_X64_H_ 2391 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698