| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 exponent, | 595 exponent, |
| 596 Operand(source_, LSR, 32 - HeapNumber::kMantissaBitsInTopWord)); | 596 Operand(source_, LSR, 32 - HeapNumber::kMantissaBitsInTopWord)); |
| 597 __ Ret(); | 597 __ Ret(); |
| 598 } | 598 } |
| 599 | 599 |
| 600 | 600 |
| 601 void DoubleToIStub::Generate(MacroAssembler* masm) { | 601 void DoubleToIStub::Generate(MacroAssembler* masm) { |
| 602 Label out_of_range, only_low, negate, done; | 602 Label out_of_range, only_low, negate, done; |
| 603 Register input_reg = source(); | 603 Register input_reg = source(); |
| 604 Register result_reg = destination(); | 604 Register result_reg = destination(); |
| 605 ASSERT(is_truncating()); |
| 605 | 606 |
| 606 int double_offset = offset(); | 607 int double_offset = offset(); |
| 607 // Account for saved regs if input is sp. | 608 // Account for saved regs if input is sp. |
| 608 if (input_reg.is(sp)) double_offset += 3 * kPointerSize; | 609 if (input_reg.is(sp)) double_offset += 3 * kPointerSize; |
| 609 | 610 |
| 610 Register scratch = GetRegisterThatIsNotOneOf(input_reg, result_reg); | 611 Register scratch = GetRegisterThatIsNotOneOf(input_reg, result_reg); |
| 611 Register scratch_low = | 612 Register scratch_low = |
| 612 GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch); | 613 GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch); |
| 613 Register scratch_high = | 614 Register scratch_high = |
| 614 GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch, scratch_low); | 615 GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch, scratch_low); |
| (...skipping 4959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5574 MemOperand(fp, 6 * kPointerSize), | 5575 MemOperand(fp, 6 * kPointerSize), |
| 5575 NULL); | 5576 NULL); |
| 5576 } | 5577 } |
| 5577 | 5578 |
| 5578 | 5579 |
| 5579 #undef __ | 5580 #undef __ |
| 5580 | 5581 |
| 5581 } } // namespace v8::internal | 5582 } } // namespace v8::internal |
| 5582 | 5583 |
| 5583 #endif // V8_TARGET_ARCH_ARM | 5584 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |