| 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 3372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3383 __ movss(Operand(rbx, rdi, times_4, 0), xmm0); | 3383 __ movss(Operand(rbx, rdi, times_4, 0), xmm0); |
| 3384 break; | 3384 break; |
| 3385 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 3385 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 3386 // Need to perform int-to-float conversion. | 3386 // Need to perform int-to-float conversion. |
| 3387 __ cvtlsi2sd(xmm0, rdx); | 3387 __ cvtlsi2sd(xmm0, rdx); |
| 3388 __ movsd(Operand(rbx, rdi, times_8, 0), xmm0); | 3388 __ movsd(Operand(rbx, rdi, times_8, 0), xmm0); |
| 3389 break; | 3389 break; |
| 3390 case JSObject::FAST_ELEMENTS: | 3390 case JSObject::FAST_ELEMENTS: |
| 3391 case JSObject::FAST_DOUBLE_ELEMENTS: | 3391 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3392 case JSObject::DICTIONARY_ELEMENTS: | 3392 case JSObject::DICTIONARY_ELEMENTS: |
| 3393 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3393 UNREACHABLE(); | 3394 UNREACHABLE(); |
| 3394 break; | 3395 break; |
| 3395 } | 3396 } |
| 3396 __ ret(0); | 3397 __ ret(0); |
| 3397 | 3398 |
| 3398 // TODO(danno): handle heap number -> pixel array conversion | 3399 // TODO(danno): handle heap number -> pixel array conversion |
| 3399 if (elements_kind != JSObject::EXTERNAL_PIXEL_ELEMENTS) { | 3400 if (elements_kind != JSObject::EXTERNAL_PIXEL_ELEMENTS) { |
| 3400 __ bind(&check_heap_number); | 3401 __ bind(&check_heap_number); |
| 3401 // rax: value | 3402 // rax: value |
| 3402 // rcx: key (a smi) | 3403 // rcx: key (a smi) |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3449 // 0x8000000000000000, which is zero mod 2^32. | 3450 // 0x8000000000000000, which is zero mod 2^32. |
| 3450 __ cvttsd2siq(rdx, xmm0); | 3451 __ cvttsd2siq(rdx, xmm0); |
| 3451 __ movl(Operand(rbx, rdi, times_4, 0), rdx); | 3452 __ movl(Operand(rbx, rdi, times_4, 0), rdx); |
| 3452 break; | 3453 break; |
| 3453 case JSObject::EXTERNAL_PIXEL_ELEMENTS: | 3454 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 3454 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 3455 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 3455 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 3456 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 3456 case JSObject::FAST_ELEMENTS: | 3457 case JSObject::FAST_ELEMENTS: |
| 3457 case JSObject::FAST_DOUBLE_ELEMENTS: | 3458 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3458 case JSObject::DICTIONARY_ELEMENTS: | 3459 case JSObject::DICTIONARY_ELEMENTS: |
| 3460 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3459 UNREACHABLE(); | 3461 UNREACHABLE(); |
| 3460 break; | 3462 break; |
| 3461 } | 3463 } |
| 3462 __ ret(0); | 3464 __ ret(0); |
| 3463 } | 3465 } |
| 3464 } | 3466 } |
| 3465 | 3467 |
| 3466 // Slow case: call runtime. | 3468 // Slow case: call runtime. |
| 3467 __ bind(&slow); | 3469 __ bind(&slow); |
| 3468 | 3470 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3581 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); | 3583 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); |
| 3582 __ jmp(ic_force_generic, RelocInfo::CODE_TARGET); | 3584 __ jmp(ic_force_generic, RelocInfo::CODE_TARGET); |
| 3583 } | 3585 } |
| 3584 | 3586 |
| 3585 | 3587 |
| 3586 #undef __ | 3588 #undef __ |
| 3587 | 3589 |
| 3588 } } // namespace v8::internal | 3590 } } // namespace v8::internal |
| 3589 | 3591 |
| 3590 #endif // V8_TARGET_ARCH_X64 | 3592 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |