| Index: src/arm64/macro-assembler-arm64.cc
|
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
|
| index c04cc83bfdaaa8100aa6282efbc9607229807283..3c42194e0102fd4ee38a3b1cf46126557243f3d9 100644
|
| --- a/src/arm64/macro-assembler-arm64.cc
|
| +++ b/src/arm64/macro-assembler-arm64.cc
|
| @@ -1877,24 +1877,31 @@ void MacroAssembler::Jump(Register target) {
|
| }
|
|
|
|
|
| -void MacroAssembler::Jump(intptr_t target, RelocInfo::Mode rmode) {
|
| +void MacroAssembler::Jump(intptr_t target, RelocInfo::Mode rmode,
|
| + Condition cond) {
|
| + if (cond == nv) return;
|
| UseScratchRegisterScope temps(this);
|
| Register temp = temps.AcquireX();
|
| + Label done;
|
| + if (cond != al) B(NegateCondition(cond), &done);
|
| Mov(temp, Operand(target, rmode));
|
| Br(temp);
|
| + Bind(&done);
|
| }
|
|
|
|
|
| -void MacroAssembler::Jump(Address target, RelocInfo::Mode rmode) {
|
| +void MacroAssembler::Jump(Address target, RelocInfo::Mode rmode,
|
| + Condition cond) {
|
| DCHECK(!RelocInfo::IsCodeTarget(rmode));
|
| - Jump(reinterpret_cast<intptr_t>(target), rmode);
|
| + Jump(reinterpret_cast<intptr_t>(target), rmode, cond);
|
| }
|
|
|
|
|
| -void MacroAssembler::Jump(Handle<Code> code, RelocInfo::Mode rmode) {
|
| +void MacroAssembler::Jump(Handle<Code> code, RelocInfo::Mode rmode,
|
| + Condition cond) {
|
| DCHECK(RelocInfo::IsCodeTarget(rmode));
|
| AllowDeferredHandleDereference embedding_raw_address;
|
| - Jump(reinterpret_cast<intptr_t>(code.location()), rmode);
|
| + Jump(reinterpret_cast<intptr_t>(code.location()), rmode, cond);
|
| }
|
|
|
|
|
|
|