| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #if V8_TARGET_ARCH_X87 | 7 #if V8_TARGET_ARCH_X87 | 
| 8 | 8 | 
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" | 
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" | 
| (...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1372     __ j(equal, &generic_heap_number_comparison, Label::kNear); | 1372     __ j(equal, &generic_heap_number_comparison, Label::kNear); | 
| 1373     if (cc != equal) { | 1373     if (cc != equal) { | 
| 1374       __ mov(ecx, FieldOperand(eax, HeapObject::kMapOffset)); | 1374       __ mov(ecx, FieldOperand(eax, HeapObject::kMapOffset)); | 
| 1375       __ movzx_b(ecx, FieldOperand(ecx, Map::kInstanceTypeOffset)); | 1375       __ movzx_b(ecx, FieldOperand(ecx, Map::kInstanceTypeOffset)); | 
| 1376       // Call runtime on identical JSObjects.  Otherwise return equal. | 1376       // Call runtime on identical JSObjects.  Otherwise return equal. | 
| 1377       __ cmpb(ecx, static_cast<uint8_t>(FIRST_SPEC_OBJECT_TYPE)); | 1377       __ cmpb(ecx, static_cast<uint8_t>(FIRST_SPEC_OBJECT_TYPE)); | 
| 1378       __ j(above_equal, &runtime_call, Label::kFar); | 1378       __ j(above_equal, &runtime_call, Label::kFar); | 
| 1379       // Call runtime on identical symbols since we need to throw a TypeError. | 1379       // Call runtime on identical symbols since we need to throw a TypeError. | 
| 1380       __ cmpb(ecx, static_cast<uint8_t>(SYMBOL_TYPE)); | 1380       __ cmpb(ecx, static_cast<uint8_t>(SYMBOL_TYPE)); | 
| 1381       __ j(equal, &runtime_call, Label::kFar); | 1381       __ j(equal, &runtime_call, Label::kFar); | 
|  | 1382       // Call runtime on identical SIMD values since we must throw a TypeError. | 
|  | 1383       __ cmpb(ecx, static_cast<uint8_t>(FLOAT32X4_TYPE)); | 
|  | 1384       __ j(equal, &runtime_call, Label::kFar); | 
| 1382       if (is_strong(strength())) { | 1385       if (is_strong(strength())) { | 
| 1383         // We have already tested for smis and heap numbers, so if both | 1386         // We have already tested for smis and heap numbers, so if both | 
| 1384         // arguments are not strings we must proceed to the slow case. | 1387         // arguments are not strings we must proceed to the slow case. | 
| 1385         __ test(ecx, Immediate(kIsNotStringMask)); | 1388         __ test(ecx, Immediate(kIsNotStringMask)); | 
| 1386         __ j(not_zero, &runtime_call, Label::kFar); | 1389         __ j(not_zero, &runtime_call, Label::kFar); | 
| 1387       } | 1390       } | 
| 1388     } | 1391     } | 
| 1389     __ Move(eax, Immediate(Smi::FromInt(EQUAL))); | 1392     __ Move(eax, Immediate(Smi::FromInt(EQUAL))); | 
| 1390     __ ret(0); | 1393     __ ret(0); | 
| 1391 | 1394 | 
| (...skipping 3750 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5142                            Operand(ebp, 7 * kPointerSize), NULL); | 5145                            Operand(ebp, 7 * kPointerSize), NULL); | 
| 5143 } | 5146 } | 
| 5144 | 5147 | 
| 5145 | 5148 | 
| 5146 #undef __ | 5149 #undef __ | 
| 5147 | 5150 | 
| 5148 }  // namespace internal | 5151 }  // namespace internal | 
| 5149 }  // namespace v8 | 5152 }  // namespace v8 | 
| 5150 | 5153 | 
| 5151 #endif  // V8_TARGET_ARCH_X87 | 5154 #endif  // V8_TARGET_ARCH_X87 | 
| OLD | NEW | 
|---|