summaryrefslogtreecommitdiff
path: root/deps/v8/src/assembler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/assembler.cc')
-rw-r--r--deps/v8/src/assembler.cc49
1 files changed, 15 insertions, 34 deletions
diff --git a/deps/v8/src/assembler.cc b/deps/v8/src/assembler.cc
index 83dbbe8134..b44bc06ba3 100644
--- a/deps/v8/src/assembler.cc
+++ b/deps/v8/src/assembler.cc
@@ -120,7 +120,7 @@ double min_int;
double one_half;
double minus_one_half;
double negative_infinity;
-double the_hole_nan;
+uint64_t the_hole_nan;
double uint32_bias;
};
@@ -190,6 +190,7 @@ void AssemblerBase::FlushICache(Isolate* isolate, void* start, size_t size) {
if (size == 0) return;
#if defined(USE_SIMULATOR)
+ base::LockGuard<base::Mutex> lock_guard(isolate->simulator_i_cache_mutex());
Simulator::FlushICache(isolate->simulator_i_cache(), start, size);
#else
CpuFeatures::FlushICache(start, size);
@@ -233,22 +234,14 @@ PredictableCodeSizeScope::~PredictableCodeSizeScope() {
// Implementation of CpuFeatureScope
#ifdef DEBUG
-CpuFeatureScope::CpuFeatureScope(AssemblerBase* assembler, CpuFeature f)
+CpuFeatureScope::CpuFeatureScope(AssemblerBase* assembler, CpuFeature f,
+ CheckPolicy check)
: assembler_(assembler) {
- DCHECK(CpuFeatures::IsSupported(f));
+ DCHECK_IMPLIES(check == kCheckSupported, CpuFeatures::IsSupported(f));
old_enabled_ = assembler_->enabled_cpu_features();
- uint64_t mask = static_cast<uint64_t>(1) << f;
- // TODO(svenpanne) This special case below doesn't belong here!
-#if V8_TARGET_ARCH_ARM
- // ARMv7 is implied by VFP3.
- if (f == VFP3) {
- mask |= static_cast<uint64_t>(1) << ARMv7;
- }
-#endif
- assembler_->set_enabled_cpu_features(old_enabled_ | mask);
+ assembler_->EnableCpuFeature(f);
}
-
CpuFeatureScope::~CpuFeatureScope() {
assembler_->set_enabled_cpu_features(old_enabled_);
}
@@ -350,19 +343,18 @@ void RelocInfo::update_wasm_memory_reference(
DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
if (IsWasmMemoryReference(rmode_)) {
Address updated_reference;
- DCHECK(old_size == 0 || Memory::IsAddressInRange(
- old_base, wasm_memory_reference(), old_size));
+ DCHECK_GE(wasm_memory_reference(), old_base);
updated_reference = new_base + (wasm_memory_reference() - old_base);
- DCHECK(new_size == 0 ||
- Memory::IsAddressInRange(new_base, updated_reference, new_size));
+ // The reference is not checked here but at runtime. Validity of references
+ // may change over time.
unchecked_update_wasm_memory_reference(updated_reference,
icache_flush_mode);
} else if (IsWasmMemorySizeReference(rmode_)) {
- uint32_t updated_size_reference;
- DCHECK(old_size == 0 || wasm_memory_size_reference() <= old_size);
- updated_size_reference =
- new_size + (wasm_memory_size_reference() - old_size);
- DCHECK(updated_size_reference <= new_size);
+ uint32_t current_size_reference = wasm_memory_size_reference();
+ DCHECK(old_size == 0 || current_size_reference <= old_size);
+ uint32_t offset = old_size - current_size_reference;
+ DCHECK_GE(new_size, offset);
+ uint32_t updated_size_reference = new_size - offset;
unchecked_update_wasm_memory_size(updated_size_reference,
icache_flush_mode);
} else {
@@ -930,7 +922,7 @@ void ExternalReference::SetUp() {
double_constants.min_int = kMinInt;
double_constants.one_half = 0.5;
double_constants.minus_one_half = -0.5;
- double_constants.the_hole_nan = bit_cast<double>(kHoleNanInt64);
+ double_constants.the_hole_nan = kHoleNanInt64;
double_constants.negative_infinity = -V8_INFINITY;
double_constants.uint32_bias =
static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1;
@@ -1601,17 +1593,6 @@ ExternalReference ExternalReference::debug_after_break_target_address(
}
-ExternalReference ExternalReference::virtual_handler_register(
- Isolate* isolate) {
- return ExternalReference(isolate->virtual_handler_register_address());
-}
-
-
-ExternalReference ExternalReference::virtual_slot_register(Isolate* isolate) {
- return ExternalReference(isolate->virtual_slot_register_address());
-}
-
-
ExternalReference ExternalReference::runtime_function_table_address(
Isolate* isolate) {
return ExternalReference(