| Index: src/ia32/code-stubs-ia32.cc
|
| ===================================================================
|
| --- src/ia32/code-stubs-ia32.cc (revision 8716)
|
| +++ src/ia32/code-stubs-ia32.cc (working copy)
|
| @@ -259,7 +259,6 @@
|
| CheckOddball(masm, NULL_TYPE, factory->null_value(), false, &patch);
|
|
|
| bool need_map =
|
| - types_.Contains(UNDETECTABLE) |
|
| types_.Contains(SPEC_OBJECT) |
|
| types_.Contains(STRING) |
|
| types_.Contains(HEAP_NUMBER) |
|
| @@ -286,17 +285,12 @@
|
| // Everything with a map could be undetectable, so check this now.
|
| __ test_b(FieldOperand(map, Map::kBitFieldOffset),
|
| 1 << Map::kIsUndetectable);
|
| - if (types_.Contains(UNDETECTABLE)) {
|
| - // Undetectable -> false.
|
| - Label not_undetectable;
|
| - __ j(zero, ¬_undetectable, Label::kNear);
|
| - __ Set(tos_, Immediate(0));
|
| - __ ret(1 * kPointerSize);
|
| - __ bind(¬_undetectable);
|
| - } else {
|
| - // We've seen an undetectable value for the first time -> patch.
|
| - __ j(not_zero, &patch, Label::kNear);
|
| - }
|
| + // Undetectable -> false.
|
| + Label not_undetectable;
|
| + __ j(zero, ¬_undetectable, Label::kNear);
|
| + __ Set(tos_, Immediate(0));
|
| + __ ret(1 * kPointerSize);
|
| + __ bind(¬_undetectable);
|
| }
|
|
|
| if (types_.Contains(SPEC_OBJECT)) {
|
| @@ -385,7 +379,7 @@
|
| void ToBooleanStub::GenerateTypeTransition(MacroAssembler* masm) {
|
| __ pop(ecx); // Get return address, operand is now on top of stack.
|
| __ push(Immediate(Smi::FromInt(tos_.code())));
|
| - __ push(Immediate(Smi::FromInt(types_.ToInt())));
|
| + __ push(Immediate(Smi::FromInt(types_.ToByte())));
|
| __ push(ecx); // Push return address.
|
| // Patch the caller to an appropriate specialized stub and return the
|
| // operation result to the caller of the stub.
|
|
|