Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index 3f17d03b92773ef035b037a006d7d651df76126a..8fbc7dd70d903cf2fa350d80a47dabd5f3f0513c 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -4782,6 +4782,11 @@ void StringAddStub::Generate(MacroAssembler* masm) { |
// r9: second instance type. |
__ testb(rcx, Immediate(kAsciiDataHintMask)); |
__ j(not_zero, &ascii_data); |
+ __ xor_(r8, r9); |
+ STATIC_ASSERT(kOneByteStringTag != 0 && kAsciiDataHintTag != 0); |
+ __ andb(r8, Immediate(kOneByteStringTag | kAsciiDataHintTag)); |
+ __ cmpb(r8, Immediate(kOneByteStringTag | kAsciiDataHintTag)); |
+ __ j(equal, &ascii_data); |
// Allocate a two byte cons string. |
__ AllocateTwoByteConsString(rcx, rdi, no_reg, &call_runtime); |
__ jmp(&allocated); |