summaryrefslogtreecommitdiff
path: root/deps/v8/src/arm/macro-assembler-arm.cc
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2018-05-31 11:11:57 +0200
committerMyles Borins <mylesborins@google.com>2018-06-01 16:43:54 +0200
commitda8ad4aba95a183700ef52bb9e3b92a12ec8e3c3 (patch)
tree38923d29d373872e5da2484ba877b1194004f6ad /deps/v8/src/arm/macro-assembler-arm.cc
parentea81d42ddc0c4afec692ebca7b3754fb8479a4a3 (diff)
downloadnode-new-da8ad4aba95a183700ef52bb9e3b92a12ec8e3c3.tar.gz
deps: update V8 to 6.7.288.43
PR-URL: https://github.com/nodejs/node/pull/19989 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matheus Marchini <matheus@sthima.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/src/arm/macro-assembler-arm.cc')
-rw-r--r--deps/v8/src/arm/macro-assembler-arm.cc47
1 files changed, 27 insertions, 20 deletions
diff --git a/deps/v8/src/arm/macro-assembler-arm.cc b/deps/v8/src/arm/macro-assembler-arm.cc
index 3a96b640a2..e363e0ecfe 100644
--- a/deps/v8/src/arm/macro-assembler-arm.cc
+++ b/deps/v8/src/arm/macro-assembler-arm.cc
@@ -1370,30 +1370,15 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
void MacroAssembler::CheckDebugHook(Register fun, Register new_target,
const ParameterCount& expected,
const ParameterCount& actual) {
- Label skip_hook, call_hook;
-
- ExternalReference debug_is_active =
- ExternalReference::debug_is_active_address(isolate());
- mov(r4, Operand(debug_is_active));
- ldrsb(r4, MemOperand(r4));
- cmp(r4, Operand(0));
- b(eq, &skip_hook);
+ Label skip_hook;
ExternalReference debug_hook_avtive =
ExternalReference::debug_hook_on_function_call_address(isolate());
mov(r4, Operand(debug_hook_avtive));
ldrsb(r4, MemOperand(r4));
cmp(r4, Operand(0));
- b(ne, &call_hook);
-
- ldr(r4, FieldMemOperand(fun, JSFunction::kSharedFunctionInfoOffset));
- ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kDebugInfoOffset));
- JumpIfSmi(r4, &skip_hook);
- ldr(r4, FieldMemOperand(r4, DebugInfo::kFlagsOffset));
- tst(r4, Operand(Smi::FromInt(DebugInfo::kBreakAtEntry)));
b(eq, &skip_hook);
- bind(&call_hook);
{
FrameScope frame(this,
has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -1730,12 +1715,20 @@ void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin,
Jump(stub.GetCode(), RelocInfo::CODE_TARGET);
}
-void MacroAssembler::JumpToInstructionStream(const InstructionStream* stream) {
- int32_t bytes_address = reinterpret_cast<int32_t>(stream->bytes());
- mov(kOffHeapTrampolineRegister, Operand(bytes_address, RelocInfo::NONE));
+void MacroAssembler::JumpToInstructionStream(Address entry) {
+ mov(kOffHeapTrampolineRegister,
+ Operand(reinterpret_cast<int32_t>(entry), RelocInfo::OFF_HEAP_TARGET));
Jump(kOffHeapTrampolineRegister);
}
+void MacroAssembler::LoadWeakValue(Register out, Register in,
+ Label* target_if_cleared) {
+ cmp(in, Operand(kClearedWeakHeapObject));
+ b(eq, target_if_cleared);
+
+ and_(out, in, Operand(~kWeakHeapObjectMask));
+}
+
void MacroAssembler::IncrementCounter(StatsCounter* counter, int value,
Register scratch1, Register scratch2) {
DCHECK_GT(value, 0);
@@ -1892,6 +1885,20 @@ void MacroAssembler::AssertFixedArray(Register object) {
}
}
+void MacroAssembler::AssertConstructor(Register object) {
+ if (emit_debug_code()) {
+ STATIC_ASSERT(kSmiTag == 0);
+ tst(object, Operand(kSmiTagMask));
+ Check(ne, AbortReason::kOperandIsASmiAndNotAConstructor);
+ push(object);
+ ldr(object, FieldMemOperand(object, HeapObject::kMapOffset));
+ ldrb(object, FieldMemOperand(object, Map::kBitFieldOffset));
+ tst(object, Operand(Map::IsConstructorBit::kMask));
+ pop(object);
+ Check(ne, AbortReason::kOperandIsNotAConstructor);
+ }
+}
+
void MacroAssembler::AssertFunction(Register object) {
if (emit_debug_code()) {
STATIC_ASSERT(kSmiTag == 0);
@@ -1958,7 +1965,7 @@ void MacroAssembler::AssertUndefinedOrAllocationSite(Register object,
void TurboAssembler::CheckFor32DRegs(Register scratch) {
- mov(scratch, Operand(ExternalReference::cpu_features()));
+ mov(scratch, Operand(ExternalReference::cpu_features(isolate())));
ldr(scratch, MemOperand(scratch));
tst(scratch, Operand(1u << VFP32DREGS));
}