| Index: src/arm/codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/codegen-arm.cc (revision 4200)
|
| +++ src/arm/codegen-arm.cc (working copy)
|
| @@ -7159,11 +7159,14 @@
|
|
|
|
|
| int CompareStub::MinorKey() {
|
| - // Encode the three parameters in a unique 16 bit value.
|
| - ASSERT((static_cast<unsigned>(cc_) >> 26) < (1 << 16));
|
| - int nnn_value = (never_nan_nan_ ? 2 : 0);
|
| - if (cc_ != eq) nnn_value = 0; // Avoid duplicate stubs.
|
| - return (static_cast<unsigned>(cc_) >> 26) | nnn_value | (strict_ ? 1 : 0);
|
| + // Encode the three parameters in a unique 16 bit value. To avoid duplicate
|
| + // stubs the never NaN NaN condition is only taken into account if the
|
| + // condition is equals.
|
| + ASSERT((static_cast<unsigned>(cc_) >> 28) < (1 << 14));
|
| + return ConditionField::encode(static_cast<unsigned>(cc_) >> 28)
|
| + | StrictField::encode(strict_)
|
| + | NeverNanNanField::encode(cc_ == eq ? never_nan_nan_ : false);
|
| +
|
| }
|
|
|
|
|
|
|