| 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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 501 | 501 | 
| 502   // Check that the key is a smi. | 502   // Check that the key is a smi. | 
| 503   __ JumpIfNotSmi(rax, &check_string); | 503   __ JumpIfNotSmi(rax, &check_string); | 
| 504   __ bind(&index_smi); | 504   __ bind(&index_smi); | 
| 505   // Now the key is known to be a smi. This place is also jumped to from below | 505   // Now the key is known to be a smi. This place is also jumped to from below | 
| 506   // where a numeric string is converted to a smi. | 506   // where a numeric string is converted to a smi. | 
| 507 | 507 | 
| 508   GenerateKeyedLoadReceiverCheck( | 508   GenerateKeyedLoadReceiverCheck( | 
| 509       masm, rdx, rcx, Map::kHasIndexedInterceptor, &slow); | 509       masm, rdx, rcx, Map::kHasIndexedInterceptor, &slow); | 
| 510 | 510 | 
| 511   // Check the "has fast elements" bit in the receiver's map which is | 511   // Check the receiver's map to see if it has fast elements. | 
| 512   // now in rcx. | 512   __ CheckFastElements(rcx, &check_number_dictionary); | 
| 513   __ testb(FieldOperand(rcx, Map::kBitField2Offset), |  | 
| 514            Immediate(1 << Map::kHasFastElements)); |  | 
| 515   __ j(zero, &check_number_dictionary); |  | 
| 516 | 513 | 
| 517   GenerateFastArrayLoad(masm, | 514   GenerateFastArrayLoad(masm, | 
| 518                         rdx, | 515                         rdx, | 
| 519                         rax, | 516                         rax, | 
| 520                         rcx, | 517                         rcx, | 
| 521                         rbx, | 518                         rbx, | 
| 522                         rax, | 519                         rax, | 
| 523                         NULL, | 520                         NULL, | 
| 524                         &slow); | 521                         &slow); | 
| 525   Counters* counters = masm->isolate()->counters(); | 522   Counters* counters = masm->isolate()->counters(); | 
| (...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1604   Condition cc = *jmp_address == Assembler::kJncShortOpcode | 1601   Condition cc = *jmp_address == Assembler::kJncShortOpcode | 
| 1605       ? not_zero | 1602       ? not_zero | 
| 1606       : zero; | 1603       : zero; | 
| 1607   *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); | 1604   *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); | 
| 1608 } | 1605 } | 
| 1609 | 1606 | 
| 1610 | 1607 | 
| 1611 } }  // namespace v8::internal | 1608 } }  // namespace v8::internal | 
| 1612 | 1609 | 
| 1613 #endif  // V8_TARGET_ARCH_X64 | 1610 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|