| 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 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1130 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(Variable* var, | 1130 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(Variable* var, | 
| 1131                                                       TypeofState typeof_state, | 1131                                                       TypeofState typeof_state, | 
| 1132                                                       Label* slow) { | 1132                                                       Label* slow) { | 
| 1133   Register current = cp; | 1133   Register current = cp; | 
| 1134   Register next = a1; | 1134   Register next = a1; | 
| 1135   Register temp = a2; | 1135   Register temp = a2; | 
| 1136 | 1136 | 
| 1137   Scope* s = scope(); | 1137   Scope* s = scope(); | 
| 1138   while (s != NULL) { | 1138   while (s != NULL) { | 
| 1139     if (s->num_heap_slots() > 0) { | 1139     if (s->num_heap_slots() > 0) { | 
| 1140       if (s->calls_eval()) { | 1140       if (s->calls_non_strict_eval()) { | 
| 1141         // Check that extension is NULL. | 1141         // Check that extension is NULL. | 
| 1142         __ lw(temp, ContextOperand(current, Context::EXTENSION_INDEX)); | 1142         __ lw(temp, ContextOperand(current, Context::EXTENSION_INDEX)); | 
| 1143         __ Branch(slow, ne, temp, Operand(zero_reg)); | 1143         __ Branch(slow, ne, temp, Operand(zero_reg)); | 
| 1144       } | 1144       } | 
| 1145       // Load next context in chain. | 1145       // Load next context in chain. | 
| 1146       __ lw(next, ContextOperand(current, Context::PREVIOUS_INDEX)); | 1146       __ lw(next, ContextOperand(current, Context::PREVIOUS_INDEX)); | 
| 1147       // Walk the rest of the chain without clobbering cp. | 1147       // Walk the rest of the chain without clobbering cp. | 
| 1148       current = next; | 1148       current = next; | 
| 1149     } | 1149     } | 
| 1150     // If no outer scope calls eval, we do not need to check more | 1150     // If no outer scope calls eval, we do not need to check more | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1184 | 1184 | 
| 1185 MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions(Variable* var, | 1185 MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions(Variable* var, | 
| 1186                                                                 Label* slow) { | 1186                                                                 Label* slow) { | 
| 1187   ASSERT(var->IsContextSlot()); | 1187   ASSERT(var->IsContextSlot()); | 
| 1188   Register context = cp; | 1188   Register context = cp; | 
| 1189   Register next = a3; | 1189   Register next = a3; | 
| 1190   Register temp = t0; | 1190   Register temp = t0; | 
| 1191 | 1191 | 
| 1192   for (Scope* s = scope(); s != var->scope(); s = s->outer_scope()) { | 1192   for (Scope* s = scope(); s != var->scope(); s = s->outer_scope()) { | 
| 1193     if (s->num_heap_slots() > 0) { | 1193     if (s->num_heap_slots() > 0) { | 
| 1194       if (s->calls_eval()) { | 1194       if (s->calls_non_strict_eval()) { | 
| 1195         // Check that extension is NULL. | 1195         // Check that extension is NULL. | 
| 1196         __ lw(temp, ContextOperand(context, Context::EXTENSION_INDEX)); | 1196         __ lw(temp, ContextOperand(context, Context::EXTENSION_INDEX)); | 
| 1197         __ Branch(slow, ne, temp, Operand(zero_reg)); | 1197         __ Branch(slow, ne, temp, Operand(zero_reg)); | 
| 1198       } | 1198       } | 
| 1199       __ lw(next, ContextOperand(context, Context::PREVIOUS_INDEX)); | 1199       __ lw(next, ContextOperand(context, Context::PREVIOUS_INDEX)); | 
| 1200       // Walk the rest of the chain without clobbering cp. | 1200       // Walk the rest of the chain without clobbering cp. | 
| 1201       context = next; | 1201       context = next; | 
| 1202     } | 1202     } | 
| 1203   } | 1203   } | 
| 1204   // Check that last extension is NULL. | 1204   // Check that last extension is NULL. | 
| (...skipping 3092 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4297   *context_length = 0; | 4297   *context_length = 0; | 
| 4298   return previous_; | 4298   return previous_; | 
| 4299 } | 4299 } | 
| 4300 | 4300 | 
| 4301 | 4301 | 
| 4302 #undef __ | 4302 #undef __ | 
| 4303 | 4303 | 
| 4304 } }  // namespace v8::internal | 4304 } }  // namespace v8::internal | 
| 4305 | 4305 | 
| 4306 #endif  // V8_TARGET_ARCH_MIPS | 4306 #endif  // V8_TARGET_ARCH_MIPS | 
| OLD | NEW | 
|---|