Revision f230a1cf deps/v8/src/x64/assembler-x64-inl.h
deps/v8/src/x64/assembler-x64-inl.h | ||
---|---|---|
43 | 43 |
|
44 | 44 |
|
45 | 45 |
static const byte kCallOpcode = 0xE8; |
46 |
static const int kNoCodeAgeSequenceLength = 6; |
|
46 | 47 |
|
47 | 48 |
|
48 | 49 |
void Assembler::emitl(uint32_t x) { |
... | ... | |
61 | 62 |
} |
62 | 63 |
|
63 | 64 |
|
64 |
void Assembler::emitq(uint64_t x, RelocInfo::Mode rmode) {
|
|
65 |
void Assembler::emitq(uint64_t x) { |
|
65 | 66 |
Memory::uint64_at(pc_) = x; |
66 |
if (!RelocInfo::IsNone(rmode)) { |
|
67 |
RecordRelocInfo(rmode, x); |
|
68 |
} |
|
69 | 67 |
pc_ += sizeof(uint64_t); |
70 | 68 |
} |
71 | 69 |
|
... | ... | |
79 | 77 |
void Assembler::emit_code_target(Handle<Code> target, |
80 | 78 |
RelocInfo::Mode rmode, |
81 | 79 |
TypeFeedbackId ast_id) { |
82 |
ASSERT(RelocInfo::IsCodeTarget(rmode)); |
|
80 |
ASSERT(RelocInfo::IsCodeTarget(rmode) || |
|
81 |
rmode == RelocInfo::CODE_AGE_SEQUENCE); |
|
83 | 82 |
if (rmode == RelocInfo::CODE_TARGET && !ast_id.IsNone()) { |
84 | 83 |
RecordRelocInfo(RelocInfo::CODE_TARGET_WITH_ID, ast_id.ToInt()); |
85 | 84 |
} else { |
... | ... | |
392 | 391 |
} |
393 | 392 |
|
394 | 393 |
|
394 |
Handle<Object> RelocInfo::code_age_stub_handle(Assembler* origin) { |
|
395 |
ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE); |
|
396 |
ASSERT(*pc_ == kCallOpcode); |
|
397 |
return origin->code_target_object_handle_at(pc_ + 1); |
|
398 |
} |
|
399 |
|
|
400 |
|
|
395 | 401 |
Code* RelocInfo::code_age_stub() { |
396 | 402 |
ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE); |
397 | 403 |
ASSERT(*pc_ == kCallOpcode); |
Also available in: Unified diff