Changeset 215565 in webkit for trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
- Timestamp:
- Apr 20, 2017, 10:55:44 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r214384 r215565 3509 3509 } 3510 3510 3511 void atomicStrongCAS8(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3511 template<typename AddressType> 3512 void atomicStrongCAS8(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3512 3513 { 3513 3514 atomicStrongCAS<8>(cond, expectedAndResult, newValue, address, result); 3514 3515 } 3515 3516 3516 void atomicStrongCAS16(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3517 template<typename AddressType> 3518 void atomicStrongCAS16(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3517 3519 { 3518 3520 atomicStrongCAS<16>(cond, expectedAndResult, newValue, address, result); 3519 3521 } 3520 3522 3521 void atomicStrongCAS32(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3523 template<typename AddressType> 3524 void atomicStrongCAS32(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3522 3525 { 3523 3526 atomicStrongCAS<32>(cond, expectedAndResult, newValue, address, result); 3524 3527 } 3525 3528 3526 void atomicStrongCAS64(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3529 template<typename AddressType> 3530 void atomicStrongCAS64(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3527 3531 { 3528 3532 atomicStrongCAS<64>(cond, expectedAndResult, newValue, address, result); 3529 3533 } 3530 3534 3531 void atomicRelaxedStrongCAS8(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3535 template<typename AddressType> 3536 void atomicRelaxedStrongCAS8(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3532 3537 { 3533 3538 atomicRelaxedStrongCAS<8>(cond, expectedAndResult, newValue, address, result); 3534 3539 } 3535 3540 3536 void atomicRelaxedStrongCAS16(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3541 template<typename AddressType> 3542 void atomicRelaxedStrongCAS16(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3537 3543 { 3538 3544 atomicRelaxedStrongCAS<16>(cond, expectedAndResult, newValue, address, result); 3539 3545 } 3540 3546 3541 void atomicRelaxedStrongCAS32(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3547 template<typename AddressType> 3548 void atomicRelaxedStrongCAS32(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3542 3549 { 3543 3550 atomicRelaxedStrongCAS<32>(cond, expectedAndResult, newValue, address, result); 3544 3551 } 3545 3552 3546 void atomicRelaxedStrongCAS64(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result) 3553 template<typename AddressType> 3554 void atomicRelaxedStrongCAS64(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 3547 3555 { 3548 3556 atomicRelaxedStrongCAS<64>(cond, expectedAndResult, newValue, address, result); 3549 3557 } 3550 3558 3551 JumpList branchAtomicWeakCAS8(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3559 template<typename AddressType> 3560 JumpList branchAtomicWeakCAS8(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3552 3561 { 3553 3562 return branchAtomicWeakCAS<8>(cond, expectedAndClobbered, newValue, address); 3554 3563 } 3555 3564 3556 JumpList branchAtomicWeakCAS16(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3565 template<typename AddressType> 3566 JumpList branchAtomicWeakCAS16(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3557 3567 { 3558 3568 return branchAtomicWeakCAS<16>(cond, expectedAndClobbered, newValue, address); 3559 3569 } 3560 3570 3561 JumpList branchAtomicWeakCAS32(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3571 template<typename AddressType> 3572 JumpList branchAtomicWeakCAS32(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3562 3573 { 3563 3574 return branchAtomicWeakCAS<32>(cond, expectedAndClobbered, newValue, address); 3564 3575 } 3565 3576 3566 JumpList branchAtomicWeakCAS64(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3577 template<typename AddressType> 3578 JumpList branchAtomicWeakCAS64(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3567 3579 { 3568 3580 return branchAtomicWeakCAS<64>(cond, expectedAndClobbered, newValue, address); 3569 3581 } 3570 3582 3571 JumpList branchAtomicRelaxedWeakCAS8(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3583 template<typename AddressType> 3584 JumpList branchAtomicRelaxedWeakCAS8(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3572 3585 { 3573 3586 return branchAtomicRelaxedWeakCAS<8>(cond, expectedAndClobbered, newValue, address); 3574 3587 } 3575 3588 3576 JumpList branchAtomicRelaxedWeakCAS16(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3589 template<typename AddressType> 3590 JumpList branchAtomicRelaxedWeakCAS16(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3577 3591 { 3578 3592 return branchAtomicRelaxedWeakCAS<16>(cond, expectedAndClobbered, newValue, address); 3579 3593 } 3580 3594 3581 JumpList branchAtomicRelaxedWeakCAS32(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3595 template<typename AddressType> 3596 JumpList branchAtomicRelaxedWeakCAS32(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3582 3597 { 3583 3598 return branchAtomicRelaxedWeakCAS<32>(cond, expectedAndClobbered, newValue, address); 3584 3599 } 3585 3600 3586 JumpList branchAtomicRelaxedWeakCAS64(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address) 3601 template<typename AddressType> 3602 JumpList branchAtomicRelaxedWeakCAS64(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 3587 3603 { 3588 3604 return branchAtomicRelaxedWeakCAS<64>(cond, expectedAndClobbered, newValue, address); … … 4173 4189 void storeCondRel(RegisterID src, RegisterID dest, RegisterID result) 4174 4190 { 4175 m_assembler.stlxr<datasize>( src, dest, result);4191 m_assembler.stlxr<datasize>(result, src, dest); 4176 4192 } 4177 4193 … … 4214 4230 } 4215 4231 4216 template<int datasize >4217 void atomicRelaxedStrongCAS(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, Address address, RegisterID result)4232 template<int datasize, typename AddressType> 4233 void atomicRelaxedStrongCAS(StatusCondition cond, RegisterID expectedAndResult, RegisterID newValue, AddressType address, RegisterID result) 4218 4234 { 4219 4235 signExtend<datasize>(expectedAndResult, expectedAndResult); … … 4238 4254 } 4239 4255 4240 template<int datasize >4241 JumpList branchAtomicWeakCAS(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address)4256 template<int datasize, typename AddressType> 4257 JumpList branchAtomicWeakCAS(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 4242 4258 { 4243 4259 signExtend<datasize>(expectedAndClobbered, expectedAndClobbered); … … 4266 4282 } 4267 4283 4268 template<int datasize >4269 JumpList branchAtomicRelaxedWeakCAS(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, Address address)4284 template<int datasize, typename AddressType> 4285 JumpList branchAtomicRelaxedWeakCAS(StatusCondition cond, RegisterID expectedAndClobbered, RegisterID newValue, AddressType address) 4270 4286 { 4271 4287 signExtend<datasize>(expectedAndClobbered, expectedAndClobbered); … … 4304 4320 } 4305 4321 4322 // This uses both the memory and data temp, but only returns the memorty temp. So you can use the 4323 // data temp after this finishes. 4324 RegisterID extractSimpleAddress(BaseIndex address) 4325 { 4326 RegisterID result = getCachedMemoryTempRegisterIDAndInvalidate(); 4327 lshift64(address.index, TrustedImm32(address.scale), result); 4328 add64(address.base, result); 4329 add64(TrustedImm32(address.offset), result); 4330 return result; 4331 } 4332 4306 4333 Jump jumpAfterFloatingPointCompare(DoubleCondition cond) 4307 4334 {
Note:
See TracChangeset
for help on using the changeset viewer.