| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 2090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2101 DeferredCheckMaps* deferred = NULL; | 2101 DeferredCheckMaps* deferred = NULL; |
| 2102 if (instr->hydrogen()->has_migration_target()) { | 2102 if (instr->hydrogen()->has_migration_target()) { |
| 2103 deferred = new(zone()) DeferredCheckMaps(this, instr, object); | 2103 deferred = new(zone()) DeferredCheckMaps(this, instr, object); |
| 2104 __ Bind(deferred->check_maps()); | 2104 __ Bind(deferred->check_maps()); |
| 2105 } | 2105 } |
| 2106 | 2106 |
| 2107 UniqueSet<Map> map_set = instr->hydrogen()->map_set(); | 2107 UniqueSet<Map> map_set = instr->hydrogen()->map_set(); |
| 2108 Label success; | 2108 Label success; |
| 2109 for (int i = 0; i < map_set.size(); i++) { | 2109 for (int i = 0; i < map_set.size(); i++) { |
| 2110 Handle<Map> map = map_set.at(i).handle(); | 2110 Handle<Map> map = map_set.at(i).handle(); |
| 2111 __ CompareMap(map_reg, map, &success); | 2111 __ CompareMap(map_reg, map); |
| 2112 __ B(eq, &success); | 2112 __ B(eq, &success); |
| 2113 } | 2113 } |
| 2114 | 2114 |
| 2115 // We didn't match a map. | 2115 // We didn't match a map. |
| 2116 if (instr->hydrogen()->has_migration_target()) { | 2116 if (instr->hydrogen()->has_migration_target()) { |
| 2117 __ B(deferred->entry()); | 2117 __ B(deferred->entry()); |
| 2118 } else { | 2118 } else { |
| 2119 Deoptimize(instr->environment()); | 2119 Deoptimize(instr->environment()); |
| 2120 } | 2120 } |
| 2121 | 2121 |
| (...skipping 3595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5717 __ Bind(&out_of_object); | 5717 __ Bind(&out_of_object); |
| 5718 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); | 5718 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
| 5719 // Index is equal to negated out of object property index plus 1. | 5719 // Index is equal to negated out of object property index plus 1. |
| 5720 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); | 5720 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); |
| 5721 __ Ldr(result, FieldMemOperand(result, | 5721 __ Ldr(result, FieldMemOperand(result, |
| 5722 FixedArray::kHeaderSize - kPointerSize)); | 5722 FixedArray::kHeaderSize - kPointerSize)); |
| 5723 __ Bind(&done); | 5723 __ Bind(&done); |
| 5724 } | 5724 } |
| 5725 | 5725 |
| 5726 } } // namespace v8::internal | 5726 } } // namespace v8::internal |
| OLD | NEW |