Changeset 44514 in webkit for trunk/JavaScriptCore/assembler/AbstractMacroAssembler.h
- Timestamp:
- Jun 8, 2009, 6:40:59 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/AbstractMacroAssembler.h
r44476 r44514 182 182 explicit Imm32(int32_t value) 183 183 : m_value(value) 184 #if PLATFORM(ARM_V7) 185 , m_isPointer(false) 186 #endif 184 187 { 185 188 } … … 188 191 explicit Imm32(ImmPtr ptr) 189 192 : m_value(ptr.asIntptr()) 190 { 191 }193 #if PLATFORM(ARM_V7) 194 , m_isPointer(true) 192 195 #endif 196 { 197 } 198 #endif 193 199 194 200 int32_t m_value; 201 #if PLATFORM(ARM_V7) 202 // We rely on being able to regenerate code to recover exception handling 203 // information. Since ARMv7 supports 16-bit immediates there is a danger 204 // that if pointer values change the layout of the generated code will change. 205 // To avoid this problem, always generate pointers (and thus Imm32s constructed 206 // from ImmPtrs) with a code sequence that is able to represent any pointer 207 // value - don't use a more compact form in these cases. 208 bool m_isPointer; 209 #endif 195 210 }; 196 211 … … 529 544 void relink(CodeLocationLabel destination) 530 545 { 531 AssemblerType::relinkJump(this->dataLocation(), destination. executableAddress());546 AssemblerType::relinkJump(this->dataLocation(), destination.dataLocation()); 532 547 } 533 548 … … 787 802 void link(Jump jump, CodeLocationLabel label) 788 803 { 789 AssemblerType::linkJump(code(), jump.m_jmp, label. executableAddress());804 AssemblerType::linkJump(code(), jump.m_jmp, label.dataLocation()); 790 805 } 791 806 … … 793 808 { 794 809 for (unsigned i = 0; i < list.m_jumps.size(); ++i) 795 AssemblerType::linkJump(code(), list.m_jumps[i].m_jmp, label. executableAddress());810 AssemblerType::linkJump(code(), list.m_jumps[i].m_jmp, label.dataLocation()); 796 811 } 797 812
Note:
See TracChangeset
for help on using the changeset viewer.