Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index e5c1c3ebd8a068356f9f0bf33d1346a5c0c48d9f..32173008a3cd209b04025b6945043777ba07f42b 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -6607,6 +6607,11 @@ void StringAddStub::Generate(MacroAssembler* masm) { |
__ tst(r4, Operand(kAsciiDataHintMask)); |
__ tst(r5, Operand(kAsciiDataHintMask), ne); |
__ b(ne, &ascii_data); |
+ __ eor(r4, r4, Operand(r5)); |
+ STATIC_ASSERT(kOneByteStringTag != 0 && kAsciiDataHintTag != 0); |
+ __ and_(r4, r4, Operand(kOneByteStringTag | kAsciiDataHintTag)); |
+ __ cmp(r4, Operand(kOneByteStringTag | kAsciiDataHintTag)); |
+ __ b(eq, &ascii_data); |
// Allocate a two byte cons string. |
__ AllocateTwoByteConsString(r7, r6, r4, r5, &call_runtime); |