Fix for arm64 after v8:r26448

The offensive cl is https://codereview.chromium.org/874323003/

Test:
./out/arm64.debug/d8 --test --random-seed=-235865360 --turbo-deoptimization --turbo-filter=* --always-opt --debug-code --verify-heap --gc-interval=500 --stress-compaction test/mjsunit/mjsunit.js test/mjsunit/regress/regress-builtinbust-7.js --trace-deopt

BUG=452067
TBR=dcarney, svenpanne
LOG=n

Review URL: https://codereview.chromium.org/917823002

Cr-Commit-Position: refs/heads/master@{#26593}
This commit is contained in:
loislo 2015-02-11 09:11:23 -08:00 committed by Commit bot
parent 59cf171d3d
commit 65b10efea1
2 changed files with 8 additions and 3 deletions

View File

@ -311,8 +311,8 @@ void ConstPool::RecordEntry(intptr_t data,
mode != RelocInfo::STATEMENT_POSITION &&
mode != RelocInfo::CONST_POOL &&
mode != RelocInfo::VENEER_POOL &&
mode != RelocInfo::CODE_AGE_SEQUENCE);
mode != RelocInfo::CODE_AGE_SEQUENCE &&
mode != RelocInfo::DEOPT_REASON);
uint64_t raw_data = static_cast<uint64_t>(data);
int offset = assm_->pc_offset();
if (IsEmpty()) {
@ -2848,11 +2848,13 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
if (((rmode >= RelocInfo::JS_RETURN) &&
(rmode <= RelocInfo::DEBUG_BREAK_SLOT)) ||
(rmode == RelocInfo::CONST_POOL) ||
(rmode == RelocInfo::VENEER_POOL)) {
(rmode == RelocInfo::VENEER_POOL) ||
(rmode == RelocInfo::DEOPT_REASON)) {
// Adjust code for new modes.
DCHECK(RelocInfo::IsDebugBreakSlot(rmode)
|| RelocInfo::IsJSReturn(rmode)
|| RelocInfo::IsComment(rmode)
|| RelocInfo::IsDeoptReason(rmode)
|| RelocInfo::IsPosition(rmode)
|| RelocInfo::IsConstPool(rmode)
|| RelocInfo::IsVeneerPool(rmode));

View File

@ -450,6 +450,9 @@ class RelocInfo {
static inline bool IsVeneerPool(Mode mode) {
return mode == VENEER_POOL;
}
static inline bool IsDeoptReason(Mode mode) {
return mode == DEOPT_REASON;
}
static inline bool IsPosition(Mode mode) {
return mode == POSITION || mode == STATEMENT_POSITION;
}