Changeset 291339 in webkit for trunk/Source/JavaScriptCore/assembler
- Timestamp:
- Mar 16, 2022, 5:05:08 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r291217 r291339 79 79 static constexpr unsigned numFPRs = std::initializer_list<int>({ FOR_EACH_FP_REGISTER(DUMMY_REGISTER_VALUE) }).size(); 80 80 #undef DUMMY_REGISTER_VALUE 81 static constexpr RegisterID scratchRegister() { return addressTempRegister; } 81 static constexpr RegisterID s_scratchRegister = addressTempRegister; 82 RegisterID scratchRegister() 83 { 84 RELEASE_ASSERT(m_allowScratchRegister); 85 return s_scratchRegister; 86 } 82 87 83 88 MacroAssemblerARMv7() … … 680 685 { 681 686 if (dest == addressTempRegister) 682 cachedAddressTempRegister().invalidate();687 invalidateCachedAddressTempRegister(); 683 688 else if (dest == dataTempRegister) 684 689 cachedDataTempRegister().invalidate(); … … 699 704 { 700 705 if (dest == addressTempRegister) 701 cachedAddressTempRegister().invalidate();706 invalidateCachedAddressTempRegister(); 702 707 else if (dest == dataTempRegister) 703 708 cachedDataTempRegister().invalidate(); … … 719 724 ASSERT(address.type == ArmAddress::HasIndex); 720 725 if (dest == addressTempRegister) 721 cachedAddressTempRegister().invalidate();726 invalidateCachedAddressTempRegister(); 722 727 else if (dest == dataTempRegister) 723 728 cachedDataTempRegister().invalidate(); … … 729 734 { 730 735 if (dest == addressTempRegister) 731 cachedAddressTempRegister().invalidate();736 invalidateCachedAddressTempRegister(); 732 737 else if (dest == dataTempRegister) 733 738 cachedDataTempRegister().invalidate(); … … 749 754 ASSERT(address.type == ArmAddress::HasIndex); 750 755 if (dest == addressTempRegister) 751 cachedAddressTempRegister().invalidate();756 invalidateCachedAddressTempRegister(); 752 757 else if (dest == dataTempRegister) 753 758 cachedDataTempRegister().invalidate(); … … 934 939 if (!(absOffset & ~0x3fc)) { 935 940 if ((dest1 == addressTempRegister) || (dest2 == addressTempRegister)) 936 cachedAddressTempRegister().invalidate();941 invalidateCachedAddressTempRegister(); 937 942 if ((dest1 == dataTempRegister) || (dest2 == dataTempRegister)) 938 943 cachedDataTempRegister().invalidate(); … … 1666 1671 cachedDataTempRegister().invalidate(); 1667 1672 else if (dest == addressTempRegister) 1668 cachedAddressTempRegister().invalidate();1673 invalidateCachedAddressTempRegister(); 1669 1674 } 1670 1675 … … 2055 2060 { 2056 2061 cachedDataTempRegister().invalidate(); 2057 cachedAddressTempRegister().invalidate();2062 invalidateCachedAddressTempRegister(); 2058 2063 m_assembler.bx(target); 2059 2064 } … … 2063 2068 move(target, addressTempRegister); 2064 2069 cachedDataTempRegister().invalidate(); 2065 cachedAddressTempRegister().invalidate();2070 invalidateCachedAddressTempRegister(); 2066 2071 m_assembler.bx(addressTempRegister); 2067 2072 } … … 2530 2535 } else { 2531 2536 move(TrustedImm32(address.offset), addressTempRegister); 2537 m_assembler.add(addressTempRegister, addressTempRegister, address.base); 2532 2538 cachedAddressTempRegister().invalidate(); 2533 m_assembler.add(addressTempRegister, addressTempRegister, address.base);2534 2539 } 2535 2540 … … 2621 2626 } 2622 2627 2628 ALWAYS_INLINE void invalidateCachedAddressTempRegister() 2629 { 2630 // This function is intended for when we are explicitly using 2631 // addressTempRegister (because the caller supplied it), so it can 2632 // ignore m_allowScratchRegister. 2633 m_cachedAddressTempRegister.invalidate(); 2634 } 2635 2623 2636 ALWAYS_INLINE CachedTempRegister& cachedAddressTempRegister() 2624 2637 {
Note:
See TracChangeset
for help on using the changeset viewer.