| Index: src/a64/full-codegen-a64.cc
|
| diff --git a/src/a64/full-codegen-a64.cc b/src/a64/full-codegen-a64.cc
|
| index dd745848b088df669d8ae9af121731d5cbdbf606..2dca236faf482a986d45f7027bc8506c45e8b710 100644
|
| --- a/src/a64/full-codegen-a64.cc
|
| +++ b/src/a64/full-codegen-a64.cc
|
| @@ -3255,9 +3255,10 @@ void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
|
| __ Throw(kNonSmiValue);
|
| __ Throw(kNonSmiIndex);
|
| __ Bind(&both_smis);
|
| -
|
| + __ SmiUntag(index);
|
| static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
|
| - __ EmitSeqStringSetCharCheck(string, index, one_byte_seq_type);
|
| + __ EmitSeqStringSetCharCheck(string, index, scratch, one_byte_seq_type);
|
| + __ SmiTag(index);
|
| }
|
|
|
| __ Add(scratch, string, SeqOneByteString::kHeaderSize - kHeapObjectTag);
|
| @@ -3288,9 +3289,10 @@ void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
|
| __ Throw(kNonSmiValue);
|
| __ Throw(kNonSmiIndex);
|
| __ Bind(&both_smis);
|
| -
|
| + __ SmiUntag(index);
|
| static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
|
| - __ EmitSeqStringSetCharCheck(string, index, two_byte_seq_type);
|
| + __ EmitSeqStringSetCharCheck(string, index, scratch, two_byte_seq_type);
|
| + __ SmiTag(index);
|
| }
|
|
|
| __ Add(scratch, string, SeqTwoByteString::kHeaderSize - kHeapObjectTag);
|
|
|