| Index: src/x87/macro-assembler-x87.cc
|
| diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
|
| index 7b56eedb14b1bf946e9956cc0136ed4d80663126..8c929e497f358ada238af19bb4b79bd837460e95 100644
|
| --- a/src/x87/macro-assembler-x87.cc
|
| +++ b/src/x87/macro-assembler-x87.cc
|
| @@ -254,53 +254,6 @@ void MacroAssembler::TruncateHeapNumberToI(Register result_reg,
|
| }
|
|
|
|
|
| -void MacroAssembler::TaggedToI(Register result_reg,
|
| - Register input_reg,
|
| - MinusZeroMode minus_zero_mode,
|
| - Label* lost_precision) {
|
| - Label done;
|
| -
|
| - cmp(FieldOperand(input_reg, HeapObject::kMapOffset),
|
| - isolate()->factory()->heap_number_map());
|
| - j(not_equal, lost_precision, Label::kNear);
|
| -
|
| - // TODO(olivf) Converting a number on the fpu is actually quite slow. We
|
| - // should first try a fast conversion and then bailout to this slow case.
|
| - Label lost_precision_pop, zero_check;
|
| - Label* lost_precision_int = (minus_zero_mode == FAIL_ON_MINUS_ZERO)
|
| - ? &lost_precision_pop : lost_precision;
|
| - sub(esp, Immediate(kPointerSize));
|
| - fld_d(FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| - if (minus_zero_mode == FAIL_ON_MINUS_ZERO) fld(0);
|
| - fist_s(MemOperand(esp, 0));
|
| - fild_s(MemOperand(esp, 0));
|
| - FCmp();
|
| - pop(result_reg);
|
| - j(not_equal, lost_precision_int, Label::kNear);
|
| - j(parity_even, lost_precision_int, Label::kNear); // NaN.
|
| - if (minus_zero_mode == FAIL_ON_MINUS_ZERO) {
|
| - test(result_reg, Operand(result_reg));
|
| - j(zero, &zero_check, Label::kNear);
|
| - fstp(0);
|
| - jmp(&done, Label::kNear);
|
| - bind(&zero_check);
|
| - // To check for minus zero, we load the value again as float, and check
|
| - // if that is still 0.
|
| - sub(esp, Immediate(kPointerSize));
|
| - fstp_s(Operand(esp, 0));
|
| - pop(result_reg);
|
| - test(result_reg, Operand(result_reg));
|
| - j(zero, &done, Label::kNear);
|
| - jmp(lost_precision, Label::kNear);
|
| -
|
| - bind(&lost_precision_pop);
|
| - fstp(0);
|
| - jmp(lost_precision, Label::kNear);
|
| - }
|
| - bind(&done);
|
| -}
|
| -
|
| -
|
| void MacroAssembler::LoadUint32NoSSE2(Register src) {
|
| Label done;
|
| push(src);
|
|
|