diff options
author | Andras Becsi <andras.becsi@digia.com> | 2014-03-18 13:16:26 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-20 15:55:39 +0100 |
commit | 3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch) | |
tree | 92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/v8/src/assembler.h | |
parent | e90d7c4b152c56919d963987e2503f9909a666d2 (diff) | |
download | qtwebengine-chromium-3f0f86b0caed75241fa71c95a5d73bc0164348c5.tar.gz |
Update to new stable branch 1750
This also includes an updated ninja and chromium dependencies
needed on Windows.
Change-Id: Icd597d80ed3fa4425933c9f1334c3c2e31291c42
Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'chromium/v8/src/assembler.h')
-rw-r--r-- | chromium/v8/src/assembler.h | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/chromium/v8/src/assembler.h b/chromium/v8/src/assembler.h index 6b399f20823..0c706c450b0 100644 --- a/chromium/v8/src/assembler.h +++ b/chromium/v8/src/assembler.h @@ -134,6 +134,18 @@ class CpuFeatureScope BASE_EMBEDDED { }; +// Enable a unsupported feature within a scope for cross-compiling for a +// different CPU. +class PlatformFeatureScope BASE_EMBEDDED { + public: + explicit PlatformFeatureScope(CpuFeature f); + ~PlatformFeatureScope(); + + private: + uint64_t old_cross_compile_; +}; + + // ----------------------------------------------------------------------------- // Labels represent pc locations; they are typically jump or call targets. // After declaration, a label can be freely used to denote known or (yet) @@ -360,6 +372,9 @@ class RelocInfo BASE_EMBEDDED { Mode rmode() const { return rmode_; } intptr_t data() const { return data_; } double data64() const { return data64_; } + uint64_t raw_data64() { + return BitCast<uint64_t>(data64_); + } Code* host() const { return host_; } // Apply a relocation by delta bytes @@ -378,7 +393,6 @@ class RelocInfo BASE_EMBEDDED { WriteBarrierMode mode = UPDATE_WRITE_BARRIER)); INLINE(Object* target_object()); INLINE(Handle<Object> target_object_handle(Assembler* origin)); - INLINE(Object** target_object_address()); INLINE(void set_target_object(Object* target, WriteBarrierMode mode = UPDATE_WRITE_BARRIER)); INLINE(Address target_runtime_entry(Assembler* origin)); @@ -389,6 +403,7 @@ class RelocInfo BASE_EMBEDDED { INLINE(Handle<Cell> target_cell_handle()); INLINE(void set_target_cell(Cell* cell, WriteBarrierMode mode = UPDATE_WRITE_BARRIER)); + INLINE(Handle<Object> code_age_stub_handle(Assembler* origin)); INLINE(Code* code_age_stub()); INLINE(void set_code_age_stub(Code* stub)); @@ -412,7 +427,7 @@ class RelocInfo BASE_EMBEDDED { // Read/modify the reference in the instruction this relocation // applies to; can only be called if rmode_ is external_reference - INLINE(Address* target_reference_address()); + INLINE(Address target_reference()); // Read/modify the address of a call instruction. This is used to relocate // the break points where straight-line code is patched with a call @@ -423,6 +438,10 @@ class RelocInfo BASE_EMBEDDED { INLINE(void set_call_object(Object* target)); INLINE(Object** call_object_address()); + // Wipe out a relocation to a fixed value, used for making snapshots + // reproducible. + INLINE(void WipeOut()); + template<typename StaticVisitor> inline void Visit(Heap* heap); inline void Visit(Isolate* isolate, ObjectVisitor* v); @@ -473,12 +492,6 @@ class RelocInfo BASE_EMBEDDED { double data64_; }; Code* host_; - // Code and Embedded Object pointers on some platforms are stored split - // across two consecutive 32-bit instructions. Heap management - // routines expect to access these pointers indirectly. The following - // location provides a place for these pointers to exist naturally - // when accessed via the Iterator. - Object* reconstructed_obj_ptr_; // External-reference pointers are also split across instruction-pairs // on some platforms, but are accessed via indirect pointers. This location // provides a place for that pointer to exist naturally. Its address @@ -705,9 +718,6 @@ class ExternalReference BASE_EMBEDDED { Isolate* isolate); static ExternalReference flush_icache_function(Isolate* isolate); static ExternalReference perform_gc_function(Isolate* isolate); - static ExternalReference fill_heap_number_with_random_function( - Isolate* isolate); - static ExternalReference random_uint32_function(Isolate* isolate); static ExternalReference transcendental_cache_array_address(Isolate* isolate); static ExternalReference delete_handle_scope_extensions(Isolate* isolate); @@ -715,6 +725,7 @@ class ExternalReference BASE_EMBEDDED { static ExternalReference date_cache_stamp(Isolate* isolate); static ExternalReference get_make_code_young_function(Isolate* isolate); + static ExternalReference get_mark_code_as_executed_function(Isolate* isolate); // Deoptimization support. static ExternalReference new_deoptimizer_function(Isolate* isolate); @@ -798,6 +809,7 @@ class ExternalReference BASE_EMBEDDED { static ExternalReference address_of_negative_infinity(); static ExternalReference address_of_canonical_non_hole_nan(); static ExternalReference address_of_the_hole_nan(); + static ExternalReference address_of_uint32_bias(); static ExternalReference math_sin_double_function(Isolate* isolate); static ExternalReference math_cos_double_function(Isolate* isolate); |