| OLD | NEW | 
|---|
| 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 
| 2 // All Rights Reserved. | 2 // All Rights Reserved. | 
| 3 // | 3 // | 
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without | 
| 5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions | 
| 6 // are met: | 6 // are met: | 
| 7 // | 7 // | 
| 8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, | 
| 9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. | 
| 10 // | 10 // | 
| (...skipping 3510 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3521   // Instruction details available in ARM DDI 0406C.b, A8-864. | 3521   // Instruction details available in ARM DDI 0406C.b, A8-864. | 
| 3522   // cond(31-28) | 11101(27-23)| D(22) | 11(21-20) | 0101(19-16) | | 3522   // cond(31-28) | 11101(27-23)| D(22) | 11(21-20) | 0101(19-16) | | 
| 3523   // Vd(15-12) | 101(11-9) | sz=0(8) | E=0(7) | 1(6) | 0(5) | 0(4) | 0000(3-0) | 3523   // Vd(15-12) | 101(11-9) | sz=0(8) | E=0(7) | 1(6) | 0(5) | 0(4) | 0000(3-0) | 
| 3524   DCHECK(src2 == 0.0); | 3524   DCHECK(src2 == 0.0); | 
| 3525   int vd, d; | 3525   int vd, d; | 
| 3526   src1.split_code(&vd, &d); | 3526   src1.split_code(&vd, &d); | 
| 3527   emit(cond | 0x1D * B23 | d * B22 | 0x3 * B20 | 0x5 * B16 | vd * B12 | | 3527   emit(cond | 0x1D * B23 | d * B22 | 0x3 * B20 | 0x5 * B16 | vd * B12 | | 
| 3528        0x5 * B9 | B6); | 3528        0x5 * B9 | B6); | 
| 3529 } | 3529 } | 
| 3530 | 3530 | 
|  | 3531 void Assembler::vmaxnm(const DwVfpRegister dst, const DwVfpRegister src1, | 
|  | 3532                        const DwVfpRegister src2) { | 
|  | 3533   // kSpecialCondition(31-28) | 11101(27-23) | D(22) | 00(21-20) | Vn(19-16) | | 
|  | 3534   // Vd(15-12) | 101(11-9) | sz=1(8) | N(7) | 0(6) | M(5) | 0(4) | Vm(3-0) | 
|  | 3535   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 
|  | 3536   int vd, d; | 
|  | 3537   dst.split_code(&vd, &d); | 
|  | 3538   int vn, n; | 
|  | 3539   src1.split_code(&vn, &n); | 
|  | 3540   int vm, m; | 
|  | 3541   src2.split_code(&vm, &m); | 
|  | 3542 | 
|  | 3543   emit(kSpecialCondition | 0x1D * B23 | d * B22 | vn * B16 | vd * B12 | | 
|  | 3544        0x5 * B9 | B8 | n * B7 | m * B5 | vm); | 
|  | 3545 } | 
|  | 3546 | 
|  | 3547 void Assembler::vmaxnm(const SwVfpRegister dst, const SwVfpRegister src1, | 
|  | 3548                        const SwVfpRegister src2) { | 
|  | 3549   // kSpecialCondition(31-28) | 11101(27-23) | D(22) | 00(21-20) | Vn(19-16) | | 
|  | 3550   // Vd(15-12) | 101(11-9) | sz=0(8) | N(7) | 0(6) | M(5) | 0(4) | Vm(3-0) | 
|  | 3551   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 
|  | 3552   int vd, d; | 
|  | 3553   dst.split_code(&vd, &d); | 
|  | 3554   int vn, n; | 
|  | 3555   src1.split_code(&vn, &n); | 
|  | 3556   int vm, m; | 
|  | 3557   src2.split_code(&vm, &m); | 
|  | 3558 | 
|  | 3559   emit(kSpecialCondition | 0x1D * B23 | d * B22 | vn * B16 | vd * B12 | | 
|  | 3560        0x5 * B9 | n * B7 | m * B5 | vm); | 
|  | 3561 } | 
|  | 3562 | 
|  | 3563 void Assembler::vminnm(const DwVfpRegister dst, const DwVfpRegister src1, | 
|  | 3564                        const DwVfpRegister src2) { | 
|  | 3565   // kSpecialCondition(31-28) | 11101(27-23) | D(22) | 00(21-20) | Vn(19-16) | | 
|  | 3566   // Vd(15-12) | 101(11-9) | sz=1(8) | N(7) | 1(6) | M(5) | 0(4) | Vm(3-0) | 
|  | 3567   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 
|  | 3568   int vd, d; | 
|  | 3569   dst.split_code(&vd, &d); | 
|  | 3570   int vn, n; | 
|  | 3571   src1.split_code(&vn, &n); | 
|  | 3572   int vm, m; | 
|  | 3573   src2.split_code(&vm, &m); | 
|  | 3574 | 
|  | 3575   emit(kSpecialCondition | 0x1D * B23 | d * B22 | vn * B16 | vd * B12 | | 
|  | 3576        0x5 * B9 | B8 | n * B7 | B6 | m * B5 | vm); | 
|  | 3577 } | 
|  | 3578 | 
|  | 3579 void Assembler::vminnm(const SwVfpRegister dst, const SwVfpRegister src1, | 
|  | 3580                        const SwVfpRegister src2) { | 
|  | 3581   // kSpecialCondition(31-28) | 11101(27-23) | D(22) | 00(21-20) | Vn(19-16) | | 
|  | 3582   // Vd(15-12) | 101(11-9) | sz=0(8) | N(7) | 1(6) | M(5) | 0(4) | Vm(3-0) | 
|  | 3583   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 
|  | 3584   int vd, d; | 
|  | 3585   dst.split_code(&vd, &d); | 
|  | 3586   int vn, n; | 
|  | 3587   src1.split_code(&vn, &n); | 
|  | 3588   int vm, m; | 
|  | 3589   src2.split_code(&vm, &m); | 
|  | 3590 | 
|  | 3591   emit(kSpecialCondition | 0x1D * B23 | d * B22 | vn * B16 | vd * B12 | | 
|  | 3592        0x5 * B9 | n * B7 | B6 | m * B5 | vm); | 
|  | 3593 } | 
|  | 3594 | 
| 3531 void Assembler::vsel(Condition cond, const DwVfpRegister dst, | 3595 void Assembler::vsel(Condition cond, const DwVfpRegister dst, | 
| 3532                      const DwVfpRegister src1, const DwVfpRegister src2) { | 3596                      const DwVfpRegister src1, const DwVfpRegister src2) { | 
| 3533   // cond=kSpecialCondition(31-28) | 11100(27-23) | D(22) | | 3597   // cond=kSpecialCondition(31-28) | 11100(27-23) | D(22) | | 
| 3534   // vsel_cond=XX(21-20) | Vn(19-16) | Vd(15-12) | 101(11-9) | sz=1(8) | N(7) | | 3598   // vsel_cond=XX(21-20) | Vn(19-16) | Vd(15-12) | 101(11-9) | sz=1(8) | N(7) | | 
| 3535   // 0(6) | M(5) | 0(4) | Vm(3-0) | 3599   // 0(6) | M(5) | 0(4) | Vm(3-0) | 
| 3536   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 3600   DCHECK(CpuFeatures::IsSupported(ARMv8)); | 
| 3537   int vd, d; | 3601   int vd, d; | 
| 3538   dst.split_code(&vd, &d); | 3602   dst.split_code(&vd, &d); | 
| 3539   int vn, n; | 3603   int vn, n; | 
| 3540   src1.split_code(&vn, &n); | 3604   src1.split_code(&vn, &n); | 
| (...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4366     DCHECK(is_uint12(offset)); | 4430     DCHECK(is_uint12(offset)); | 
| 4367     instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); | 4431     instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); | 
| 4368   } | 4432   } | 
| 4369 } | 4433 } | 
| 4370 | 4434 | 
| 4371 | 4435 | 
| 4372 }  // namespace internal | 4436 }  // namespace internal | 
| 4373 }  // namespace v8 | 4437 }  // namespace v8 | 
| 4374 | 4438 | 
| 4375 #endif  // V8_TARGET_ARCH_ARM | 4439 #endif  // V8_TARGET_ARCH_ARM | 
| OLD | NEW | 
|---|