Commit 1a138034 authored by jarin@chromium.org's avatar jarin@chromium.org

Fix LStoreCodeEntry to treat the code_object parameter as input.

The bug seems to trigger only with array_index_dehoisting off in
the snapshot, so it is hard to test for (ideas?).

R=mvstanton@chromium.org
BUG=

Review URL: https://codereview.chromium.org/347523002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b5c716bb
...@@ -1771,15 +1771,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> { ...@@ -1771,15 +1771,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
}; };
class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 1, 1> { class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 0> {
public: public:
LStoreCodeEntry(LOperand* function, LOperand* code_object) { LStoreCodeEntry(LOperand* function, LOperand* code_object) {
inputs_[0] = function; inputs_[0] = function;
temps_[0] = code_object; inputs_[1] = code_object;
} }
LOperand* function() { return inputs_[0]; } LOperand* function() { return inputs_[0]; }
LOperand* code_object() { return temps_[0]; } LOperand* code_object() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream); virtual void PrintDataTo(StringStream* stream);
......
...@@ -1784,15 +1784,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> { ...@@ -1784,15 +1784,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
}; };
class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 1, 1> { class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 0> {
public: public:
LStoreCodeEntry(LOperand* function, LOperand* code_object) { LStoreCodeEntry(LOperand* function, LOperand* code_object) {
inputs_[0] = function; inputs_[0] = function;
temps_[0] = code_object; inputs_[1] = code_object;
} }
LOperand* function() { return inputs_[0]; } LOperand* function() { return inputs_[0]; }
LOperand* code_object() { return temps_[0]; } LOperand* code_object() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream); virtual void PrintDataTo(StringStream* stream);
......
...@@ -1732,15 +1732,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> { ...@@ -1732,15 +1732,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
}; };
class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 1, 1> { class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 0> {
public: public:
LStoreCodeEntry(LOperand* function, LOperand* code_object) { LStoreCodeEntry(LOperand* function, LOperand* code_object) {
inputs_[0] = function; inputs_[0] = function;
temps_[0] = code_object; inputs_[1] = code_object;
} }
LOperand* function() { return inputs_[0]; } LOperand* function() { return inputs_[0]; }
LOperand* code_object() { return temps_[0]; } LOperand* code_object() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream); virtual void PrintDataTo(StringStream* stream);
......
...@@ -1771,15 +1771,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> { ...@@ -1771,15 +1771,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
}; };
class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 1, 1> { class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 0> {
public: public:
LStoreCodeEntry(LOperand* function, LOperand* code_object) { LStoreCodeEntry(LOperand* function, LOperand* code_object) {
inputs_[0] = function; inputs_[0] = function;
temps_[0] = code_object; inputs_[1] = code_object;
} }
LOperand* function() { return inputs_[0]; } LOperand* function() { return inputs_[0]; }
LOperand* code_object() { return temps_[0]; } LOperand* code_object() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream); virtual void PrintDataTo(StringStream* stream);
......
...@@ -1799,15 +1799,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> { ...@@ -1799,15 +1799,15 @@ class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
}; };
class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 1, 1> { class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 0> {
public: public:
LStoreCodeEntry(LOperand* function, LOperand* code_object) { LStoreCodeEntry(LOperand* function, LOperand* code_object) {
inputs_[0] = function; inputs_[0] = function;
temps_[0] = code_object; inputs_[1] = code_object;
} }
LOperand* function() { return inputs_[0]; } LOperand* function() { return inputs_[0]; }
LOperand* code_object() { return temps_[0]; } LOperand* code_object() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream); virtual void PrintDataTo(StringStream* stream);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment