Changeset 115141 in webkit for trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
- Timestamp:
- Apr 24, 2012, 5:06:04 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r114809 r115141 46 46 47 47 public: 48 MacroAssemblerARMv7() 49 : m_makeJumpPatchable(false) 50 { 51 } 52 48 53 typedef ARMv7Assembler::LinkRecord LinkRecord; 49 54 typedef ARMv7Assembler::JumpType JumpType; … … 1600 1605 } 1601 1606 1607 PatchableJump patchableBranchPtrWithPatch(RelationalCondition cond, Address left, DataLabelPtr& dataLabel, TrustedImmPtr initialRightValue = TrustedImmPtr(0)) 1608 { 1609 m_makeJumpPatchable = true; 1610 Jump result = branchPtrWithPatch(cond, left, dataLabel, initialRightValue); 1611 m_makeJumpPatchable = false; 1612 return PatchableJump(result); 1613 } 1614 1615 PatchableJump patchableJump() 1616 { 1617 m_makeJumpPatchable = true; 1618 Jump result = jump(); 1619 m_makeJumpPatchable = false; 1620 return PatchableJump(result); 1621 } 1622 1602 1623 ALWAYS_INLINE DataLabelPtr storePtrWithPatch(TrustedImmPtr initialValue, ImplicitAddress address) 1603 1624 { … … 1634 1655 1635 1656 protected: 1636 1637 1657 ALWAYS_INLINE Jump jump() 1638 1658 { 1639 1659 moveFixedWidthEncoding(TrustedImm32(0), dataTempRegister); 1640 return Jump(m_assembler.bx(dataTempRegister), inUninterruptedSequence()? ARMv7Assembler::JumpNoConditionFixedSize : ARMv7Assembler::JumpNoCondition);1660 return Jump(m_assembler.bx(dataTempRegister), m_makeJumpPatchable ? ARMv7Assembler::JumpNoConditionFixedSize : ARMv7Assembler::JumpNoCondition); 1641 1661 } 1642 1662 … … 1645 1665 m_assembler.it(cond, true, true); 1646 1666 moveFixedWidthEncoding(TrustedImm32(0), dataTempRegister); 1647 return Jump(m_assembler.bx(dataTempRegister), inUninterruptedSequence()? ARMv7Assembler::JumpConditionFixedSize : ARMv7Assembler::JumpCondition, cond);1667 return Jump(m_assembler.bx(dataTempRegister), m_makeJumpPatchable ? ARMv7Assembler::JumpConditionFixedSize : ARMv7Assembler::JumpCondition, cond); 1648 1668 } 1649 1669 ALWAYS_INLINE Jump makeBranch(RelationalCondition cond) { return makeBranch(armV7Condition(cond)); } … … 1742 1762 } 1743 1763 1764 bool m_makeJumpPatchable; 1744 1765 }; 1745 1766
Note:
See TracChangeset
for help on using the changeset viewer.