summaryrefslogtreecommitdiff
path: root/deps/v8/src/arm64/macro-assembler-arm64-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/arm64/macro-assembler-arm64-inl.h')
-rw-r--r--deps/v8/src/arm64/macro-assembler-arm64-inl.h36
1 files changed, 23 insertions, 13 deletions
diff --git a/deps/v8/src/arm64/macro-assembler-arm64-inl.h b/deps/v8/src/arm64/macro-assembler-arm64-inl.h
index c9da9d12d0..9bef2b378b 100644
--- a/deps/v8/src/arm64/macro-assembler-arm64-inl.h
+++ b/deps/v8/src/arm64/macro-assembler-arm64-inl.h
@@ -1045,7 +1045,7 @@ void TurboAssembler::Uxtw(const Register& rd, const Register& rn) {
void MacroAssembler::AlignAndSetCSPForFrame() {
int sp_alignment = ActivationFrameAlignment();
// AAPCS64 mandates at least 16-byte alignment.
- DCHECK(sp_alignment >= 16);
+ DCHECK_GE(sp_alignment, 16);
DCHECK(base::bits::IsPowerOfTwo(sp_alignment));
Bic(csp, StackPointer(), sp_alignment - 1);
SetStackPointer(csp);
@@ -1173,7 +1173,7 @@ void TurboAssembler::JumpIfSmi(Register value, Label* smi_label,
void MacroAssembler::JumpIfNotSmi(Register value, Label* not_smi_label) {
- JumpIfSmi(value, NULL, not_smi_label);
+ JumpIfSmi(value, nullptr, not_smi_label);
}
@@ -1206,14 +1206,14 @@ void MacroAssembler::JumpIfEitherSmi(Register value1,
void MacroAssembler::JumpIfEitherNotSmi(Register value1,
Register value2,
Label* not_smi_label) {
- JumpIfBothSmi(value1, value2, NULL, not_smi_label);
+ JumpIfBothSmi(value1, value2, nullptr, not_smi_label);
}
void MacroAssembler::JumpIfBothNotSmi(Register value1,
Register value2,
Label* not_smi_label) {
- JumpIfEitherSmi(value1, value2, NULL, not_smi_label);
+ JumpIfEitherSmi(value1, value2, nullptr, not_smi_label);
}
@@ -1257,7 +1257,7 @@ void TurboAssembler::Push(Smi* smi) {
}
void TurboAssembler::Claim(int64_t count, uint64_t unit_size) {
- DCHECK(count >= 0);
+ DCHECK_GE(count, 0);
uint64_t size = count * unit_size;
if (size == 0) {
@@ -1265,7 +1265,7 @@ void TurboAssembler::Claim(int64_t count, uint64_t unit_size) {
}
if (csp.Is(StackPointer())) {
- DCHECK(size % 16 == 0);
+ DCHECK_EQ(size % 16, 0);
} else {
BumpSystemStackPointer(size);
}
@@ -1312,7 +1312,7 @@ void MacroAssembler::ClaimBySMI(const Register& count_smi, uint64_t unit_size) {
}
void TurboAssembler::Drop(int64_t count, uint64_t unit_size) {
- DCHECK(count >= 0);
+ DCHECK_GE(count, 0);
uint64_t size = count * unit_size;
if (size == 0) {
@@ -1322,7 +1322,7 @@ void TurboAssembler::Drop(int64_t count, uint64_t unit_size) {
Add(StackPointer(), StackPointer(), size);
if (csp.Is(StackPointer())) {
- DCHECK(size % 16 == 0);
+ DCHECK_EQ(size % 16, 0);
} else if (emit_debug_code()) {
// It is safe to leave csp where it is when unwinding the JavaScript stack,
// but if we keep it matching StackPointer, the simulator can detect memory
@@ -1353,14 +1353,24 @@ void TurboAssembler::Drop(const Register& count, uint64_t unit_size) {
}
}
-void TurboAssembler::DropArguments(const Register& count, uint64_t unit_size) {
- Drop(count, unit_size);
+void TurboAssembler::DropArguments(const Register& count,
+ ArgumentsCountMode mode) {
+ if (mode == kCountExcludesReceiver) {
+ UseScratchRegisterScope temps(this);
+ Register tmp = temps.AcquireX();
+ Add(tmp, count, 1);
+ Drop(tmp);
+ } else {
+ Drop(count);
+ }
}
void TurboAssembler::DropSlots(int64_t count, uint64_t unit_size) {
Drop(count, unit_size);
}
+void TurboAssembler::PushArgument(const Register& arg) { Push(arg); }
+
void MacroAssembler::DropBySMI(const Register& count_smi, uint64_t unit_size) {
DCHECK(unit_size == 0 || base::bits::IsPowerOfTwo(unit_size));
const int shift = CountTrailingZeros(unit_size, kXRegSizeInBits) - kSmiShift;
@@ -1404,7 +1414,7 @@ void TurboAssembler::TestAndBranchIfAnySet(const Register& reg,
const uint64_t bit_pattern,
Label* label) {
int bits = reg.SizeInBits();
- DCHECK(CountSetBits(bit_pattern, bits) > 0);
+ DCHECK_GT(CountSetBits(bit_pattern, bits), 0);
if (CountSetBits(bit_pattern, bits) == 1) {
Tbnz(reg, MaskToBit(bit_pattern), label);
} else {
@@ -1417,7 +1427,7 @@ void TurboAssembler::TestAndBranchIfAllClear(const Register& reg,
const uint64_t bit_pattern,
Label* label) {
int bits = reg.SizeInBits();
- DCHECK(CountSetBits(bit_pattern, bits) > 0);
+ DCHECK_GT(CountSetBits(bit_pattern, bits), 0);
if (CountSetBits(bit_pattern, bits) == 1) {
Tbz(reg, MaskToBit(bit_pattern), label);
} else {
@@ -1447,7 +1457,7 @@ void MacroAssembler::DisableInstrumentation() {
void MacroAssembler::AnnotateInstrumentation(const char* marker_name) {
- DCHECK(strlen(marker_name) == 2);
+ DCHECK_EQ(strlen(marker_name), 2);
// We allow only printable characters in the marker names. Unprintable
// characters are reserved for controlling features of the instrumentation.