Index: src/arm64/instructions-arm64.cc |
diff --git a/src/arm64/instructions-arm64.cc b/src/arm64/instructions-arm64.cc |
index d23533d8bc7ce629cea809867d1eaa71e0179308..4b419d6dbdb152de5c344b52a817746e95cb3570 100644 |
--- a/src/arm64/instructions-arm64.cc |
+++ b/src/arm64/instructions-arm64.cc |
@@ -218,22 +218,22 @@ bool Instruction::IsTargetInImmPCOffsetRange(Instruction* target) { |
return IsValidImmPCOffset(BranchType(), DistanceTo(target)); |
} |
- |
-void Instruction::SetImmPCOffsetTarget(Isolate* isolate, Instruction* target) { |
+void Instruction::SetImmPCOffsetTarget(Assembler::IsolateData isolate_data, |
+ Instruction* target) { |
if (IsPCRelAddressing()) { |
- SetPCRelImmTarget(isolate, target); |
+ SetPCRelImmTarget(isolate_data, target); |
} else if (BranchType() != UnknownBranchType) { |
SetBranchImmTarget(target); |
} else if (IsUnresolvedInternalReference()) { |
- SetUnresolvedInternalReferenceImmTarget(isolate, target); |
+ SetUnresolvedInternalReferenceImmTarget(isolate_data, target); |
} else { |
// Load literal (offset from PC). |
SetImmLLiteral(target); |
} |
} |
- |
-void Instruction::SetPCRelImmTarget(Isolate* isolate, Instruction* target) { |
+void Instruction::SetPCRelImmTarget(Assembler::IsolateData isolate_data, |
+ Instruction* target) { |
// ADRP is not supported, so 'this' must point to an ADR instruction. |
DCHECK(IsAdr()); |
@@ -243,7 +243,7 @@ void Instruction::SetPCRelImmTarget(Isolate* isolate, Instruction* target) { |
imm = Assembler::ImmPCRelAddress(static_cast<int>(target_offset)); |
SetInstructionBits(Mask(~ImmPCRel_mask) | imm); |
} else { |
- PatchingAssembler patcher(isolate, this, |
+ PatchingAssembler patcher(isolate_data, reinterpret_cast<byte*>(this), |
PatchingAssembler::kAdrFarPatchableNInstrs); |
patcher.PatchAdrFar(target_offset); |
} |
@@ -283,9 +283,8 @@ void Instruction::SetBranchImmTarget(Instruction* target) { |
SetInstructionBits(Mask(~imm_mask) | branch_imm); |
} |
- |
-void Instruction::SetUnresolvedInternalReferenceImmTarget(Isolate* isolate, |
- Instruction* target) { |
+void Instruction::SetUnresolvedInternalReferenceImmTarget( |
+ Assembler::IsolateData isolate_data, Instruction* target) { |
DCHECK(IsUnresolvedInternalReference()); |
DCHECK(IsAligned(DistanceTo(target), kInstructionSize)); |
DCHECK(is_int32(DistanceTo(target) >> kInstructionSizeLog2)); |
@@ -294,7 +293,7 @@ void Instruction::SetUnresolvedInternalReferenceImmTarget(Isolate* isolate, |
uint32_t high16 = unsigned_bitextract_32(31, 16, target_offset); |
uint32_t low16 = unsigned_bitextract_32(15, 0, target_offset); |
- PatchingAssembler patcher(isolate, this, 2); |
+ PatchingAssembler patcher(isolate_data, reinterpret_cast<byte*>(this), 2); |
patcher.brk(high16); |
patcher.brk(low16); |
} |