| 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 8189 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  8200     // a test rax instruction here. |  8200     // a test rax instruction here. | 
|  8201     __ nop(); |  8201     __ nop(); | 
|  8202   } else { |  8202   } else { | 
|  8203     // Inline the inobject property case. |  8203     // Inline the inobject property case. | 
|  8204     Comment cmnt(masm(), "[ Inlined named property load"); |  8204     Comment cmnt(masm(), "[ Inlined named property load"); | 
|  8205     Result receiver = frame()->Pop(); |  8205     Result receiver = frame()->Pop(); | 
|  8206     receiver.ToRegister(); |  8206     receiver.ToRegister(); | 
|  8207     result = allocator()->Allocate(); |  8207     result = allocator()->Allocate(); | 
|  8208     ASSERT(result.is_valid()); |  8208     ASSERT(result.is_valid()); | 
|  8209  |  8209  | 
|  8210     // Cannot use r12 for receiver, because that changes |  8210     // r12 is now a reserved register, so it cannot be the receiver. | 
|  8211     // the distance between a call and a fixup location, |  8211     // If it was, the distance to the fixup location would not be constant. | 
|  8212     // due to a special encoding of r12 as r/m in a ModR/M byte. |  8212     ASSERT(!receiver.reg().is(r12)); | 
|  8213     if (receiver.reg().is(r12)) { |  | 
|  8214       frame()->Spill(receiver.reg());  // It will be overwritten with result. |  | 
|  8215       // Swap receiver and value. |  | 
|  8216       __ movq(result.reg(), receiver.reg()); |  | 
|  8217       Result temp = receiver; |  | 
|  8218       receiver = result; |  | 
|  8219       result = temp; |  | 
|  8220     } |  | 
|  8221  |  8213  | 
|  8222     DeferredReferenceGetNamedValue* deferred = |  8214     DeferredReferenceGetNamedValue* deferred = | 
|  8223         new DeferredReferenceGetNamedValue(result.reg(), receiver.reg(), name); |  8215         new DeferredReferenceGetNamedValue(result.reg(), receiver.reg(), name); | 
|  8224  |  8216  | 
|  8225     // Check that the receiver is a heap object. |  8217     // Check that the receiver is a heap object. | 
|  8226     __ JumpIfSmi(receiver.reg(), deferred->entry_label()); |  8218     __ JumpIfSmi(receiver.reg(), deferred->entry_label()); | 
|  8227  |  8219  | 
|  8228     __ bind(deferred->patch_site()); |  8220     __ bind(deferred->patch_site()); | 
|  8229     // This is the map check instruction that will be patched (so we can't |  8221     // This is the map check instruction that will be patched (so we can't | 
|  8230     // use the double underscore macro that may insert instructions). |  8222     // use the double underscore macro that may insert instructions). | 
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  8845 } |  8837 } | 
|  8846  |  8838  | 
|  8847 #endif |  8839 #endif | 
|  8848  |  8840  | 
|  8849  |  8841  | 
|  8850 #undef __ |  8842 #undef __ | 
|  8851  |  8843  | 
|  8852 } }  // namespace v8::internal |  8844 } }  // namespace v8::internal | 
|  8853  |  8845  | 
|  8854 #endif  // V8_TARGET_ARCH_X64 |  8846 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW |