Commit 285dc86e authored by Yu Yin's avatar Yu Yin Committed by Commit Bot

[MIPS][Deserialize] Fix deserialize off heap target.

Change-Id: I3be3dc8815015c0215d3e3d655394850d85db871
Reviewed-on: https://chromium-review.googlesource.com/c/1490812Reviewed-by: 's avatarPredrag Rudic <prudic@wavecomp.com>
Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Commit-Queue: Yu Yin <xwafish@gmail.com>
Cr-Commit-Position: refs/heads/master@{#59997}
parent 131f4a30
......@@ -123,16 +123,8 @@ Address Assembler::target_address_from_return_address(Address pc) {
void Assembler::deserialization_set_special_target_at(
Address instruction_payload, Code code, Address target) {
if (IsMipsArchVariant(kMips32r6)) {
// On R6 the address location is shifted by one instruction
set_target_address_at(
instruction_payload - (kInstructionsFor32BitConstant - 1) * kInstrSize,
!code.is_null() ? code->constant_pool() : kNullAddress, target);
} else {
set_target_address_at(
instruction_payload - kInstructionsFor32BitConstant * kInstrSize,
!code.is_null() ? code->constant_pool() : kNullAddress, target);
}
set_target_address_at(instruction_payload,
!code.is_null() ? code->constant_pool() : kNullAddress, target);
}
int Assembler::deserialization_special_target_size(
......
......@@ -113,8 +113,7 @@ Address Assembler::target_address_from_return_address(Address pc) {
void Assembler::deserialization_set_special_target_at(
Address instruction_payload, Code code, Address target) {
set_target_address_at(
instruction_payload - kInstructionsFor64BitConstant * kInstrSize,
set_target_address_at(instruction_payload,
!code.is_null() ? code->constant_pool() : kNullAddress, target);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment