Index: src/mips64/assembler-mips64.cc |
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc |
index 09a19169d677454b241592a05424405c46729680..e26fc604244f2888be60908ae60e6b8a8611f48f 100644 |
--- a/src/mips64/assembler-mips64.cc |
+++ b/src/mips64/assembler-mips64.cc |
@@ -1965,8 +1965,12 @@ int32_t Assembler::LoadRegPlusUpperOffsetPartToAt(const MemOperand& src) { |
hi += 1; |
} |
- lui(at, hi); |
- daddu(at, at, src.rm()); |
+ if (kArchVariant == kMips64r6) { |
+ daui(at, src.rm(), hi); |
+ } else { |
+ lui(at, hi); |
+ daddu(at, at, src.rm()); |
+ } |
return (src.offset_ & kImm16Mask); |
} |