Changeset 94981 in webkit for trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
- Timestamp:
- Sep 12, 2011, 3:17:53 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
r90687 r94981 497 497 } 498 498 499 void load8(BaseIndex address, RegisterID dest) 500 { 501 if (address.offset >= -32768 && address.offset <= 32767 502 && !m_fixedWidth) { 503 /* 504 sll addrTemp, address.index, address.scale 505 addu addrTemp, addrTemp, address.base 506 lbu dest, address.offset(addrTemp) 507 */ 508 m_assembler.sll(addrTempRegister, address.index, address.scale); 509 m_assembler.addu(addrTempRegister, addrTempRegister, address.base); 510 m_assembler.lbu(dest, addrTempRegister, address.offset); 511 } else { 512 /* 513 sll addrTemp, address.index, address.scale 514 addu addrTemp, addrTemp, address.base 515 lui immTemp, (address.offset + 0x8000) >> 16 516 addu addrTemp, addrTemp, immTemp 517 lbu dest, (address.offset & 0xffff)(at) 518 */ 519 m_assembler.sll(addrTempRegister, address.index, address.scale); 520 m_assembler.addu(addrTempRegister, addrTempRegister, address.base); 521 m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16); 522 m_assembler.addu(addrTempRegister, addrTempRegister, 523 immTempRegister); 524 m_assembler.lbu(dest, addrTempRegister, address.offset); 525 } 526 } 527 499 528 void load32(ImplicitAddress address, RegisterID dest) 500 529 { … … 933 962 } 934 963 964 Jump branch8(RelationalCondition cond, BaseIndex left, TrustedImm32 right) 965 { 966 ASSERT(!(right.m_value & 0xFFFFFF00)); 967 load8(left, dataTempRegister); 968 // Be careful that the previous load8() uses immTempRegister. 969 // So, we need to put move() after load8(). 970 move(right, immTempRegister); 971 return branch32(cond, dataTempRegister, immTempRegister); 972 } 973 935 974 Jump branch32(RelationalCondition cond, RegisterID left, RegisterID right) 936 975 { … … 1031 1070 move(right, immTempRegister); 1032 1071 return branch32(cond, dataTempRegister, immTempRegister); 1072 } 1073 1074 Jump branch16(RelationalCondition cond, RegisterID left, TrustedImm32 right) 1075 { 1076 // Make sure the immediate value is unsigned 16 bits. 1077 ASSERT(!(right.m_value & 0xFFFF0000)); 1078 m_assembler.andi(immTempRegister, left, 0xffff); 1079 return branch32(cond, immTempRegister, right); 1033 1080 } 1034 1081
Note:
See TracChangeset
for help on using the changeset viewer.