Commit f995f77c authored by palfia@homejinni.com's avatar palfia@homejinni.com

MIPS: Remove extranous holder load in some prototype-chain checking cases

Port r14136 (d091bc0e)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 9fd5eb52
...@@ -5207,7 +5207,6 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) { ...@@ -5207,7 +5207,6 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) { void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) {
ASSERT(instr->temp()->Equals(instr->result()));
Register prototype_reg = ToRegister(instr->temp()); Register prototype_reg = ToRegister(instr->temp());
Register map_reg = ToRegister(instr->temp2()); Register map_reg = ToRegister(instr->temp2());
...@@ -5220,8 +5219,6 @@ void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) { ...@@ -5220,8 +5219,6 @@ void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) {
for (int i = 0; i < maps->length(); i++) { for (int i = 0; i < maps->length(); i++) {
prototype_maps_.Add(maps->at(i), info()->zone()); prototype_maps_.Add(maps->at(i), info()->zone());
} }
__ LoadHeapObject(prototype_reg,
prototypes->at(prototypes->length() - 1));
} else { } else {
for (int i = 0; i < prototypes->length(); i++) { for (int i = 0; i < prototypes->length(); i++) {
__ LoadHeapObject(prototype_reg, prototypes->at(i)); __ LoadHeapObject(prototype_reg, prototypes->at(i));
......
...@@ -1807,7 +1807,7 @@ LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) { ...@@ -1807,7 +1807,7 @@ LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) {
LUnallocated* temp1 = TempRegister(); LUnallocated* temp1 = TempRegister();
LOperand* temp2 = TempRegister(); LOperand* temp2 = TempRegister();
LCheckPrototypeMaps* result = new(zone()) LCheckPrototypeMaps(temp1, temp2); LCheckPrototypeMaps* result = new(zone()) LCheckPrototypeMaps(temp1, temp2);
return AssignEnvironment(Define(result, temp1)); return AssignEnvironment(result);
} }
......
...@@ -2184,7 +2184,7 @@ class LCheckMaps: public LTemplateInstruction<0, 1, 0> { ...@@ -2184,7 +2184,7 @@ class LCheckMaps: public LTemplateInstruction<0, 1, 0> {
}; };
class LCheckPrototypeMaps: public LTemplateInstruction<1, 0, 2> { class LCheckPrototypeMaps: public LTemplateInstruction<0, 0, 2> {
public: public:
LCheckPrototypeMaps(LOperand* temp, LOperand* temp2) { LCheckPrototypeMaps(LOperand* temp, LOperand* temp2) {
temps_[0] = temp; temps_[0] = temp;
......
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