Index: src/mips/assembler-mips-inl.h |
diff --git a/src/mips/assembler-mips-inl.h b/src/mips/assembler-mips-inl.h |
index 963ed4acc90fc4cfcad73443947fed6a288f155b..bb64460f209579a66e050ca3604576a1823c5cc8 100644 |
--- a/src/mips/assembler-mips-inl.h |
+++ b/src/mips/assembler-mips-inl.h |
@@ -139,7 +139,13 @@ int RelocInfo::target_address_size() { |
Address Assembler::target_address_from_return_address(Address pc) { |
- return pc - kCallTargetAddressOffset; |
+ if (IsMipsArchVariant(kMips32r6)) { |
+ // We use another optimization that reduces one operation, this covers uses |
+ // calling this function. |
+ return pc - kCallTargetAddressOffset + kInstrSize; |
+ } else { |
+ return pc - kCallTargetAddressOffset; |
+ } |
} |