| Index: src/s390/codegen-s390.cc
|
| diff --git a/src/s390/codegen-s390.cc b/src/s390/codegen-s390.cc
|
| index 7ab14443575beec1749cc91b8a8fe13e13fc8384..02cc8c206c704338f94cd4e4d2798af5f0718a46 100644
|
| --- a/src/s390/codegen-s390.cc
|
| +++ b/src/s390/codegen-s390.cc
|
| @@ -81,13 +81,11 @@
|
| __ beq(&check_sequential, Label::kNear /*, cr0*/);
|
|
|
| // Dispatch on the indirect string shape: slice or cons.
|
| - Label cons_string, thin_string;
|
| - __ LoadRR(ip, result);
|
| - __ nilf(ip, Operand(kStringRepresentationMask));
|
| - __ CmpP(ip, Operand(kConsStringTag));
|
| - __ beq(&cons_string);
|
| - __ CmpP(ip, Operand(kThinStringTag));
|
| - __ beq(&thin_string);
|
| + Label cons_string;
|
| + __ mov(ip, Operand(kSlicedNotConsMask));
|
| + __ LoadRR(r0, result);
|
| + __ AndP(r0, ip /*, SetRC*/); // Should be okay to remove RC
|
| + __ beq(&cons_string, Label::kNear /*, cr0*/);
|
|
|
| // Handle slices.
|
| Label indirect_string_loaded;
|
| @@ -95,11 +93,6 @@
|
| __ LoadP(string, FieldMemOperand(string, SlicedString::kParentOffset));
|
| __ SmiUntag(ip, result);
|
| __ AddP(index, ip);
|
| - __ b(&indirect_string_loaded, Label::kNear);
|
| -
|
| - // Handle thin strings.
|
| - __ bind(&thin_string);
|
| - __ LoadP(string, FieldMemOperand(string, ThinString::kActualOffset));
|
| __ b(&indirect_string_loaded, Label::kNear);
|
|
|
| // Handle cons strings.
|
|
|