OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <memory> | 9 #include <memory> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 13876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13887 SKIP_ICACHE_FLUSH); | 13887 SKIP_ICACHE_FLUSH); |
13888 } else if (mode == RelocInfo::CELL) { | 13888 } else if (mode == RelocInfo::CELL) { |
13889 Handle<Cell> cell = it.rinfo()->target_cell_handle(); | 13889 Handle<Cell> cell = it.rinfo()->target_cell_handle(); |
13890 it.rinfo()->set_target_cell(*cell, UPDATE_WRITE_BARRIER, | 13890 it.rinfo()->set_target_cell(*cell, UPDATE_WRITE_BARRIER, |
13891 SKIP_ICACHE_FLUSH); | 13891 SKIP_ICACHE_FLUSH); |
13892 } else if (RelocInfo::IsCodeTarget(mode)) { | 13892 } else if (RelocInfo::IsCodeTarget(mode)) { |
13893 // rewrite code handles in inline cache targets to direct | 13893 // rewrite code handles in inline cache targets to direct |
13894 // pointers to the first instruction in the code object | 13894 // pointers to the first instruction in the code object |
13895 Handle<Object> p = it.rinfo()->target_object_handle(origin); | 13895 Handle<Object> p = it.rinfo()->target_object_handle(origin); |
13896 Code* code = Code::cast(*p); | 13896 Code* code = Code::cast(*p); |
13897 it.rinfo()->set_target_address(code->instruction_start(), | 13897 it.rinfo()->set_target_address(GetIsolate(), code->instruction_start(), |
13898 UPDATE_WRITE_BARRIER, SKIP_ICACHE_FLUSH); | 13898 UPDATE_WRITE_BARRIER, SKIP_ICACHE_FLUSH); |
13899 } else if (RelocInfo::IsRuntimeEntry(mode)) { | 13899 } else if (RelocInfo::IsRuntimeEntry(mode)) { |
13900 Address p = it.rinfo()->target_runtime_entry(origin); | 13900 Address p = it.rinfo()->target_runtime_entry(origin); |
13901 it.rinfo()->set_target_runtime_entry(p, UPDATE_WRITE_BARRIER, | 13901 it.rinfo()->set_target_runtime_entry( |
13902 SKIP_ICACHE_FLUSH); | 13902 GetIsolate(), p, UPDATE_WRITE_BARRIER, SKIP_ICACHE_FLUSH); |
13903 } else if (mode == RelocInfo::CODE_AGE_SEQUENCE) { | 13903 } else if (mode == RelocInfo::CODE_AGE_SEQUENCE) { |
13904 Handle<Object> p = it.rinfo()->code_age_stub_handle(origin); | 13904 Handle<Object> p = it.rinfo()->code_age_stub_handle(origin); |
13905 Code* code = Code::cast(*p); | 13905 Code* code = Code::cast(*p); |
13906 it.rinfo()->set_code_age_stub(code, SKIP_ICACHE_FLUSH); | 13906 it.rinfo()->set_code_age_stub(code, SKIP_ICACHE_FLUSH); |
13907 } else { | 13907 } else { |
13908 it.rinfo()->apply(delta); | 13908 it.rinfo()->apply(delta); |
13909 } | 13909 } |
13910 } | 13910 } |
13911 Assembler::FlushICache(GetIsolate(), instruction_start(), instruction_size()); | 13911 Assembler::FlushICache(GetIsolate(), instruction_start(), instruction_size()); |
13912 } | 13912 } |
(...skipping 6348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20261 // depend on this. | 20261 // depend on this. |
20262 return DICTIONARY_ELEMENTS; | 20262 return DICTIONARY_ELEMENTS; |
20263 } | 20263 } |
20264 DCHECK_LE(kind, LAST_ELEMENTS_KIND); | 20264 DCHECK_LE(kind, LAST_ELEMENTS_KIND); |
20265 return kind; | 20265 return kind; |
20266 } | 20266 } |
20267 } | 20267 } |
20268 | 20268 |
20269 } // namespace internal | 20269 } // namespace internal |
20270 } // namespace v8 | 20270 } // namespace v8 |
OLD | NEW |