Changeset 46831 in webkit for trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
- Timestamp:
- Aug 5, 2009, 10:22:42 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
r46209 r46831 244 244 void store32(Imm32 imm, ImplicitAddress address) 245 245 { 246 move(imm, ARM::S1); 246 if (imm.m_isPointer) 247 m_assembler.ldr_un_imm(ARM::S1, imm.m_value); 248 else 249 move(imm, ARM::S1); 247 250 store32(ARM::S1, address); 248 251 } … … 250 253 void store32(RegisterID src, void* address) 251 254 { 252 m_assembler. moveImm(reinterpret_cast<ARMWord>(address), ARM::S0);255 m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address)); 253 256 m_assembler.dtr_u(false, src, ARM::S0, 0); 254 257 } … … 256 259 void store32(Imm32 imm, void* address) 257 260 { 258 m_assembler.moveImm(reinterpret_cast<ARMWord>(address), ARM::S0); 259 m_assembler.moveImm(imm.m_value, ARM::S1); 261 m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address)); 262 if (imm.m_isPointer) 263 m_assembler.ldr_un_imm(ARM::S1, imm.m_value); 264 else 265 m_assembler.moveImm(imm.m_value, ARM::S1); 260 266 m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0); 261 267 } … … 285 291 void move(Imm32 imm, RegisterID dest) 286 292 { 287 m_assembler.moveImm(imm.m_value, dest); 293 if (imm.m_isPointer) 294 m_assembler.ldr_un_imm(dest, imm.m_value); 295 else 296 m_assembler.moveImm(imm.m_value, dest); 288 297 } 289 298 … … 295 304 void move(ImmPtr imm, RegisterID dest) 296 305 { 297 m _assembler.mov_r(dest, m_assembler.getImm(reinterpret_cast<ARMWord>(imm.m_value), ARM::S0));306 move(Imm32(imm), dest); 298 307 } 299 308 … … 325 334 Jump branch32(Condition cond, RegisterID left, Imm32 right) 326 335 { 327 m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARM::S0)); 336 if (right.m_isPointer) { 337 m_assembler.ldr_un_imm(ARM::S0, right.m_value); 338 m_assembler.cmp_r(left, ARM::S0); 339 } else 340 m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARM::S0)); 328 341 return Jump(m_assembler.jmp(ARMCondition(cond))); 329 342 } … … 539 552 void add32(Imm32 imm, AbsoluteAddress address) 540 553 { 541 m_assembler. moveImm(reinterpret_cast<ARMWord>(address.m_ptr), ARM::S1);554 m_assembler.ldr_un_imm(ARM::S1, reinterpret_cast<ARMWord>(address.m_ptr)); 542 555 m_assembler.dtr_u(true, ARM::S1, ARM::S1, 0); 543 556 add32(imm, ARM::S1); 544 m_assembler. moveImm(reinterpret_cast<ARMWord>(address.m_ptr), ARM::S0);557 m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address.m_ptr)); 545 558 m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0); 546 559 } … … 548 561 void sub32(Imm32 imm, AbsoluteAddress address) 549 562 { 550 m_assembler. moveImm(reinterpret_cast<ARMWord>(address.m_ptr), ARM::S1);563 m_assembler.ldr_un_imm(ARM::S1, reinterpret_cast<ARMWord>(address.m_ptr)); 551 564 m_assembler.dtr_u(true, ARM::S1, ARM::S1, 0); 552 565 sub32(imm, ARM::S1); 553 m_assembler. moveImm(reinterpret_cast<ARMWord>(address.m_ptr), ARM::S0);566 m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address.m_ptr)); 554 567 m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0); 555 568 } … … 557 570 void load32(void* address, RegisterID dest) 558 571 { 559 m_assembler. moveImm(reinterpret_cast<ARMWord>(address), ARM::S0);572 m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address)); 560 573 m_assembler.dtr_u(true, dest, ARM::S0, 0); 561 574 }
Note:
See TracChangeset
for help on using the changeset viewer.