Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index 9c9a266ac53cbef1eed6ac7a4dc238412ef9ffe9..a8e52e99d306d0cedb44ab9f4ef74eedd10d85c0 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -4765,6 +4765,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); |