Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/codegen/arm64/instructions-arm64.cc')
-rw-r--r--deps/v8/src/codegen/arm64/instructions-arm64.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/deps/v8/src/codegen/arm64/instructions-arm64.cc b/deps/v8/src/codegen/arm64/instructions-arm64.cc
index c2224ffe34a..7d986f286d9 100644
--- a/deps/v8/src/codegen/arm64/instructions-arm64.cc
+++ b/deps/v8/src/codegen/arm64/instructions-arm64.cc
@@ -343,6 +343,10 @@ void NEONFormatDecoder::SetFormatMaps(const NEONFormatMap* format0,
formats_[0] = format0;
formats_[1] = (format1 == nullptr) ? formats_[0] : format1;
formats_[2] = (format2 == nullptr) ? formats_[1] : format2;
+ // Support four parameters form (e.i. ld4r)
+ // to avoid using positional arguments in DisassemblingDecoder.
+ // See: https://crbug.com/v8/10365
+ formats_[3] = formats_[2];
}
void NEONFormatDecoder::SetFormatMap(unsigned index,
@@ -353,15 +357,18 @@ void NEONFormatDecoder::SetFormatMap(unsigned index,
}
const char* NEONFormatDecoder::SubstitutePlaceholders(const char* string) {
- return Substitute(string, kPlaceholder, kPlaceholder, kPlaceholder);
+ return Substitute(string, kPlaceholder, kPlaceholder, kPlaceholder,
+ kPlaceholder);
}
const char* NEONFormatDecoder::Substitute(const char* string,
SubstitutionMode mode0,
SubstitutionMode mode1,
- SubstitutionMode mode2) {
+ SubstitutionMode mode2,
+ SubstitutionMode mode3) {
snprintf(form_buffer_, sizeof(form_buffer_), string, GetSubstitute(0, mode0),
- GetSubstitute(1, mode1), GetSubstitute(2, mode2));
+ GetSubstitute(1, mode1), GetSubstitute(2, mode2),
+ GetSubstitute(3, mode3));
return form_buffer_;
}