diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2018-05-31 11:11:57 +0200 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2018-06-01 16:43:54 +0200 |
commit | da8ad4aba95a183700ef52bb9e3b92a12ec8e3c3 (patch) | |
tree | 38923d29d373872e5da2484ba877b1194004f6ad /deps/v8/src/arm/macro-assembler-arm.cc | |
parent | ea81d42ddc0c4afec692ebca7b3754fb8479a4a3 (diff) | |
download | node-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.cc | 47 |
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)); } |