summaryrefslogtreecommitdiff
path: root/chromium/v8/src/arm64/instructions-arm64.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/arm64/instructions-arm64.cc')
-rw-r--r--chromium/v8/src/arm64/instructions-arm64.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/chromium/v8/src/arm64/instructions-arm64.cc b/chromium/v8/src/arm64/instructions-arm64.cc
index 60243d8306d..d23533d8bc7 100644
--- a/chromium/v8/src/arm64/instructions-arm64.cc
+++ b/chromium/v8/src/arm64/instructions-arm64.cc
@@ -219,13 +219,13 @@ bool Instruction::IsTargetInImmPCOffsetRange(Instruction* target) {
}
-void Instruction::SetImmPCOffsetTarget(Instruction* target) {
+void Instruction::SetImmPCOffsetTarget(Isolate* isolate, Instruction* target) {
if (IsPCRelAddressing()) {
- SetPCRelImmTarget(target);
+ SetPCRelImmTarget(isolate, target);
} else if (BranchType() != UnknownBranchType) {
SetBranchImmTarget(target);
} else if (IsUnresolvedInternalReference()) {
- SetUnresolvedInternalReferenceImmTarget(target);
+ SetUnresolvedInternalReferenceImmTarget(isolate, target);
} else {
// Load literal (offset from PC).
SetImmLLiteral(target);
@@ -233,7 +233,7 @@ void Instruction::SetImmPCOffsetTarget(Instruction* target) {
}
-void Instruction::SetPCRelImmTarget(Instruction* target) {
+void Instruction::SetPCRelImmTarget(Isolate* isolate, Instruction* target) {
// ADRP is not supported, so 'this' must point to an ADR instruction.
DCHECK(IsAdr());
@@ -243,7 +243,7 @@ void Instruction::SetPCRelImmTarget(Instruction* target) {
imm = Assembler::ImmPCRelAddress(static_cast<int>(target_offset));
SetInstructionBits(Mask(~ImmPCRel_mask) | imm);
} else {
- PatchingAssembler patcher(this,
+ PatchingAssembler patcher(isolate, this,
PatchingAssembler::kAdrFarPatchableNInstrs);
patcher.PatchAdrFar(target_offset);
}
@@ -284,7 +284,8 @@ void Instruction::SetBranchImmTarget(Instruction* target) {
}
-void Instruction::SetUnresolvedInternalReferenceImmTarget(Instruction* target) {
+void Instruction::SetUnresolvedInternalReferenceImmTarget(Isolate* isolate,
+ Instruction* target) {
DCHECK(IsUnresolvedInternalReference());
DCHECK(IsAligned(DistanceTo(target), kInstructionSize));
DCHECK(is_int32(DistanceTo(target) >> kInstructionSizeLog2));
@@ -293,7 +294,7 @@ void Instruction::SetUnresolvedInternalReferenceImmTarget(Instruction* target) {
uint32_t high16 = unsigned_bitextract_32(31, 16, target_offset);
uint32_t low16 = unsigned_bitextract_32(15, 0, target_offset);
- PatchingAssembler patcher(this, 2);
+ PatchingAssembler patcher(isolate, this, 2);
patcher.brk(high16);
patcher.brk(low16);
}