Version 4.3.61.35 (cherry-pick)
Merged 3f7b797c1e066cd2a86508a051599624134f597a
MIPS: Fix Assembler::dd(Label*) implementation.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1224623018.
Cr-Commit-Position: refs/branch-heads/4.3@{#40}
Cr-Branched-From: f5c0a23a505616796a628d64f4ffe377d1fc4bcf-refs/heads/4.3.61@{#1}
Cr-Branched-From: 0a7d4f496a554028de0ab5a963c3a004e693b4cb-refs/heads/master@{#27508}
diff --git a/include/v8-version.h b/include/v8-version.h
index 1d470d9..6e286ca 100644
--- a/include/v8-version.h
+++ b/include/v8-version.h
@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 4
#define V8_MINOR_VERSION 3
#define V8_BUILD_NUMBER 61
-#define V8_PATCH_LEVEL 34
+#define V8_PATCH_LEVEL 35
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc
index d114a96..0ce0302 100644
--- a/src/mips/assembler-mips.cc
+++ b/src/mips/assembler-mips.cc
@@ -2447,15 +2447,15 @@
void Assembler::dd(Label* label) {
CheckBuffer();
RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE);
+ uint32_t data;
if (label->is_bound()) {
- uint32_t data = reinterpret_cast<uint32_t>(buffer_ + label->pos());
- *reinterpret_cast<uint32_t*>(pc_) = data;
- pc_ += sizeof(uint32_t);
+ data = reinterpret_cast<uint32_t>(buffer_ + label->pos());
} else {
- uint32_t target_pos = jump_address(label);
- emit(target_pos);
+ data = jump_address(label);
internal_reference_positions_.insert(label->pos());
}
+ *reinterpret_cast<uint32_t*>(pc_) = data;
+ pc_ += sizeof(uint32_t);
}
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc
index 68573d7..dd63ec2 100644
--- a/src/mips64/assembler-mips64.cc
+++ b/src/mips64/assembler-mips64.cc
@@ -2691,15 +2691,15 @@
void Assembler::dd(Label* label) {
CheckBuffer();
RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE);
+ uint64_t data;
if (label->is_bound()) {
- uint64_t data = reinterpret_cast<uint64_t>(buffer_ + label->pos());
- *reinterpret_cast<uint64_t*>(pc_) = data;
- pc_ += sizeof(uint64_t);
+ data = reinterpret_cast<uint64_t>(buffer_ + label->pos());
} else {
- uint64_t target_pos = jump_address(label);
- emit(target_pos);
+ data = jump_address(label);
internal_reference_positions_.insert(label->pos());
}
+ *reinterpret_cast<uint64_t*>(pc_) = data;
+ pc_ += sizeof(uint64_t);
}