aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/codegen/assembler.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2019-08-16 11:32:46 +0200
committerMichaël Zasso <targos@protonmail.com>2019-08-19 09:25:23 +0200
commite31f0a7d25668d3c1531294d2ef44a9f3bde4ef4 (patch)
tree6c6bed9804be9df6162b2483f0a56f371f66464d /deps/v8/src/codegen/assembler.cc
parentec16fdae540adaf710b1a86c620170b2880088f0 (diff)
downloadandroid-node-v8-e31f0a7d25668d3c1531294d2ef44a9f3bde4ef4.tar.gz
android-node-v8-e31f0a7d25668d3c1531294d2ef44a9f3bde4ef4.tar.bz2
android-node-v8-e31f0a7d25668d3c1531294d2ef44a9f3bde4ef4.zip
deps: update V8 to 7.7.299.4
PR-URL: https://github.com/nodejs/node/pull/28918 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/v8/src/codegen/assembler.cc')
-rw-r--r--deps/v8/src/codegen/assembler.cc36
1 files changed, 23 insertions, 13 deletions
diff --git a/deps/v8/src/codegen/assembler.cc b/deps/v8/src/codegen/assembler.cc
index 687ae98bfe..498afb0320 100644
--- a/deps/v8/src/codegen/assembler.cc
+++ b/deps/v8/src/codegen/assembler.cc
@@ -64,8 +64,8 @@ AssemblerOptions AssemblerOptions::Default(
// might be run on real hardware.
options.enable_simulator_code = !serializer;
#endif
- options.inline_offheap_trampolines =
- FLAG_embedded_builtins && !serializer && !generating_embedded_builtin;
+ options.inline_offheap_trampolines &=
+ !serializer && !generating_embedded_builtin;
#if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64
const base::AddressRegion& code_range =
isolate->heap()->memory_allocator()->code_range();
@@ -226,23 +226,33 @@ int AssemblerBase::AddCodeTarget(Handle<Code> target) {
}
}
-int AssemblerBase::AddCompressedEmbeddedObject(Handle<HeapObject> object) {
- int current = static_cast<int>(compressed_embedded_objects_.size());
- compressed_embedded_objects_.push_back(object);
- return current;
+Handle<Code> AssemblerBase::GetCodeTarget(intptr_t code_target_index) const {
+ DCHECK_LT(static_cast<size_t>(code_target_index), code_targets_.size());
+ return code_targets_[code_target_index];
}
-Handle<HeapObject> AssemblerBase::GetCompressedEmbeddedObject(
- intptr_t index) const {
- DCHECK_LT(static_cast<size_t>(index), compressed_embedded_objects_.size());
- return compressed_embedded_objects_[index];
+AssemblerBase::EmbeddedObjectIndex AssemblerBase::AddEmbeddedObject(
+ Handle<HeapObject> object) {
+ EmbeddedObjectIndex current = embedded_objects_.size();
+ // Do not deduplicate invalid handles, they are to heap object requests.
+ if (!object.is_null()) {
+ auto entry = embedded_objects_map_.find(object);
+ if (entry != embedded_objects_map_.end()) {
+ return entry->second;
+ }
+ embedded_objects_map_[object] = current;
+ }
+ embedded_objects_.push_back(object);
+ return current;
}
-Handle<Code> AssemblerBase::GetCodeTarget(intptr_t code_target_index) const {
- DCHECK_LT(static_cast<size_t>(code_target_index), code_targets_.size());
- return code_targets_[code_target_index];
+Handle<HeapObject> AssemblerBase::GetEmbeddedObject(
+ EmbeddedObjectIndex index) const {
+ DCHECK_LT(index, embedded_objects_.size());
+ return embedded_objects_[index];
}
+
int Assembler::WriteCodeComments() {
if (!FLAG_code_comments || code_comments_writer_.entry_count() == 0) return 0;
int offset = pc_offset();