| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 611ed32a9fb11c32c4db724d57f1095e64622fdc..4a127763aefe9a7d6f8d9bea18215b4167b11dbf 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -1052,6 +1052,19 @@ void MacroAssembler::Pref(int32_t hint, const MemOperand& rs) {
|
| }
|
|
|
|
|
| +void MacroAssembler::Lsa(Register rd, Register rt, Register rs, uint8_t sa,
|
| + Register scratch) {
|
| + if (IsMipsArchVariant(kMips32r6) && sa <= 4) {
|
| + lsa(rd, rt, rs, sa);
|
| + } else {
|
| + Register tmp = rd.is(rt) ? scratch : rd;
|
| + DCHECK(!tmp.is(rt));
|
| + sll(tmp, rs, sa);
|
| + Addu(rd, rt, tmp);
|
| + }
|
| +}
|
| +
|
| +
|
| // ------------Pseudo-instructions-------------
|
|
|
| void MacroAssembler::Ulw(Register rd, const MemOperand& rs) {
|
|
|