| Index: src/ia32/codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/codegen-ia32.cc (revision 4200)
|
| +++ src/ia32/codegen-ia32.cc (working copy)
|
| @@ -11530,11 +11530,13 @@
|
|
|
|
|
| int CompareStub::MinorKey() {
|
| - // Encode the three parameters in a unique 16 bit value.
|
| + // 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_) < (1 << 14));
|
| - int nnn_value = (never_nan_nan_ ? 2 : 0);
|
| - if (cc_ != equal) nnn_value = 0; // Avoid duplicate stubs.
|
| - return (static_cast<unsigned>(cc_) << 2) | nnn_value | (strict_ ? 1 : 0);
|
| + return ConditionField::encode(static_cast<unsigned>(cc_))
|
| + | StrictField::encode(strict_)
|
| + | NeverNanNanField::encode(cc_ == equal ? never_nan_nan_ : false);
|
| }
|
|
|
|
|
|
|