Changeset 156617 in webkit for trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
- Timestamp:
- Sep 29, 2013, 12:31:33 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
r154298 r156617 602 602 m_assembler.movb_i8m(imm.m_value, address.offset, address.base, address.index, address.scale); 603 603 } 604 604 605 static ALWAYS_INLINE RegisterID getUnusedRegister(BaseIndex address) 606 { 607 if (address.base != X86Registers::eax && address.index != X86Registers::eax) 608 return X86Registers::eax; 609 610 if (address.base != X86Registers::ebx && address.index != X86Registers::ebx) 611 return X86Registers::ebx; 612 613 ASSERT(address.base != X86Registers::ecx && address.index != X86Registers::ecx); 614 return X86Registers::ecx; 615 } 616 605 617 void store8(RegisterID src, BaseIndex address) 606 618 { … … 610 622 if (src >= 4) { 611 623 // Pick a temporary register. 612 RegisterID temp; 613 if (address.base != X86Registers::eax && address.index != X86Registers::eax) 614 temp = X86Registers::eax; 615 else if (address.base != X86Registers::ebx && address.index != X86Registers::ebx) 616 temp = X86Registers::ebx; 617 else { 618 ASSERT(address.base != X86Registers::ecx && address.index != X86Registers::ecx); 619 temp = X86Registers::ecx; 620 } 624 RegisterID temp = getUnusedRegister(address); 621 625 622 626 // Swap to the temporary register to perform the store. … … 637 641 if (src >= 4) { 638 642 // Pick a temporary register. 639 RegisterID temp; 640 if (address.base != X86Registers::eax && address.index != X86Registers::eax) 641 temp = X86Registers::eax; 642 else if (address.base != X86Registers::ebx && address.index != X86Registers::ebx) 643 temp = X86Registers::ebx; 644 else { 645 ASSERT(address.base != X86Registers::ecx && address.index != X86Registers::ecx); 646 temp = X86Registers::ecx; 647 } 648 643 RegisterID temp = getUnusedRegister(address); 644 649 645 // Swap to the temporary register to perform the store. 650 646 swap(src, temp);
Note:
See TracChangeset
for help on using the changeset viewer.